diff --git a/ChatGPT_create_site_wordpress.md b/ChatGPT_create_site_wordpress.md new file mode 100644 index 0000000..5b308fb --- /dev/null +++ b/ChatGPT_create_site_wordpress.md @@ -0,0 +1,879 @@ + +напиши скрипт на языке bash для развертывания на linux debian сервера для wordpress работающего на php-fpm, nginx, mysql +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php-fpm mysql-server php-mysql -y + +# Настройка PHP-FPM +sed -i 's/^listen = .*/listen = \/run\/php\/php7.3-fpm.sock/' /etc/php/7.3/fpm/pool.d/www.conf +sed -i 's/^;listen.owner = .*/listen.owner = www-data/' /etc/php/7.3/fpm/pool.d/www.conf +sed -i 's/^;listen.group = .*/listen.group = www-data/' /etc/php/7.3/fpm/pool.d/www.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/7.3/fpm/pool.d/www.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE wordpress;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name yourdomain.com; + + root /var/www/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php7.3-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Скачивание и распаковка WordPress +cd /var/www/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/wordpress/ +chown -R www-data:www-data /var/www/wordpress/ + +# Завершение установки +systemctl restart php7.3-fpm +systemctl restart nginx + +echo "WordPress installation complete!" +``` + +модифицируй полученный выше скрипт для использования php версии новее 8.0 + +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php-fpm mysql-server php-mysql -y + +# Настройка PHP-FPM +sed -i 's/^listen = .*/listen = \/run\/php\/php8.0-fpm.sock/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.owner = .*/listen.owner = www-data/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.group = .*/listen.group = www-data/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/8.0/fpm/pool.d/www.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE wordpress;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name yourdomain.com; + + root /var/www/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.0-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Скачивание и распаковка WordPress +cd /var/www/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/wordpress/ +chown -R www-data:www-data /var/www/wordpress/ + +# Завершение установки +systemctl restart php8.0-fpm +systemctl restart nginx + +echo "WordPress installation complete!" +``` + +модифицируй полученный выше скрипт с дополнительным получением сертификатов letsencrypt для домена + +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php-fpm mysql-server php-mysql certbot python3-certbot-nginx -y + +# Настройка PHP-FPM +sed -i 's/^listen = .*/listen = \/run\/php\/php8.0-fpm.sock/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.owner = .*/listen.owner = www-data/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.group = .*/listen.group = www-data/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/8.0/fpm/pool.d/www.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE wordpress;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name yourdomain.com; + return 301 https://\$server_name\$request_uri; +} + +server { + listen 443 ssl; + server_name yourdomain.com; + + ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; + + root /var/www/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.0-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Получение сертификата Let's Encrypt +certbot --nginx -d yourdomain.com -m your-email@example.com --agree-tos --non-interactive --redirect + +# Скачивание и распаковка WordPress +cd /var/www/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/wordpress/ +chown -R www-data:www-data /var/www/wordpress/ + +# Завершение установки +systemctl restart php8.0-fpm +systemctl restart nginx + +echo "WordPress installation complete!" +``` + +модифицируй полученный выше скрипт таким образом, чтобы имя пользователя базы данных, имя базы данных, пароль, домен сайта пользователь задавал в интерактивном режиме + +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php-fpm mysql-server php-mysql certbot python3-certbot-nginx -y + +# Запрос имени пользователя базы данных, имени базы данных, пароля и домена сайта +read -p "Введите имя пользователя базы данных: " db_user +read -p "Введите имя базы данных: " db_name +read -p "Введите пароль для базы данных: " db_password +read -p "Введите домен вашего сайта: " domain + +# Настройка PHP-FPM +sed -i 's/^listen = .*/listen = \/run\/php\/php8.0-fpm.sock/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.owner = .*/listen.owner = www-data/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.group = .*/listen.group = www-data/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/8.0/fpm/pool.d/www.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE $db_name;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' IDENTIFIED BY '$db_password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name $domain; + return 301 https://\$server_name\$request_uri; +} + +server { + listen 443 ssl; + server_name $domain; + + ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem; + + root /var/www/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.0-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Получение сертификата Let's Encrypt +certbot --nginx -d $domain -m your-email@example.com --agree-tos --non-interactive --redirect + +# Скачивание и распаковка WordPress +cd /var/www/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/wordpress/ +chown -R www-data:www-data /var/www/wordpress/ + +# Завершение установки +systemctl restart php8.0-fpm +systemctl restart nginx + +echo "Установка WordPress завершена!" +``` + +модифицируй выше полученный скрипт таким образом чтобы создавать отдельного системного пользователя, от имени которого будет работать сайт, и у которого будут права только на директорию в которой сайт располагается + +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php-fpm mysql-server php-mysql certbot python3-certbot-nginx -y + +# Создание системного пользователя и директории для сайта +read -p "Введите имя пользователя сайта: " site_user +mkdir /var/www/$site_user +useradd -d /var/www/$site_user -s /usr/sbin/nologin $site_user +chown -R $site_user:$site_user /var/www/$site_user + +# Запрос имени пользователя базы данных, имени базы данных, пароля и домена сайта +read -p "Введите имя пользователя базы данных: " db_user +read -p "Введите имя базы данных: " db_name +read -p "Введите пароль для базы данных: " db_password +read -p "Введите домен вашего сайта: " domain + +# Настройка PHP-FPM +sed -i 's/^listen = .*/listen = \/run\/php\/php8.0-fpm.sock/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.owner = .*/listen.owner = www-data/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.group = .*/listen.group = www-data/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/8.0/fpm/pool.d/www.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE $db_name;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' IDENTIFIED BY '$db_password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name $domain; + return 301 https://\$server_name\$request_uri; +} + +server { + listen 443 ssl; + server_name $domain; + + ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem; + + root /var/www/$site_user/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.0-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Получение сертификата Let's Encrypt +certbot --nginx -d $domain -m your-email@example.com --agree-tos --non-interactive --redirect + +# Скачивание и распаковка WordPress +cd /var/www/$site_user/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/$site_user/wordpress/ +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Завершение установки +systemctl restart php8.0-fpm +systemctl restart nginx + +echo "Установка WordPress завершена!" +``` + +модифицируй полученный выше скрипт таким образом, чтобы скрипты сайты выполнялись от имени пользователя которому они принадлежат + +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php-fpm mysql-server php-mysql certbot python3-certbot-nginx -y + +# Создание системного пользователя и директории для сайта +read -p "Введите имя пользователя сайта: " site_user +mkdir /var/www/$site_user +useradd -d /var/www/$site_user -s /usr/sbin/nologin $site_user +chown -R $site_user:$site_user /var/www/$site_user + +# Запрос имени пользователя базы данных, имени базы данных, пароля и домена сайта +read -p "Введите имя пользователя базы данных: " db_user +read -p "Введите имя базы данных: " db_name +read -p "Введите пароль для базы данных: " db_password +read -p "Введите домен вашего сайта: " domain + +# Настройка PHP-FPM +sed -i 's/^listen = .*/listen = \/run\/php\/php8.0-fpm.sock/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.owner = .*/listen.owner = www-data/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.group = .*/listen.group = www-data/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/8.0/fpm/pool.d/www.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE $db_name;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' IDENTIFIED BY '$db_password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name $domain; + return 301 https://\$server_name\$request_uri; +} + +server { + listen 443 ssl; + server_name $domain; + + ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem; + + root /var/www/$site_user/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.0-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Получение сертификата Let's Encrypt +certbot --nginx -d $domain -m your-email@example.com --agree-tos --non-interactive --redirect + +# Скачивание и распаковка WordPress +cd /var/www/$site_user/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/$site_user/wordpress/ +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Настройка прав доступа к файлам сайта +find /var/www/$site_user/wordpress/ -type d -exec chmod 755 {} \; +find /var/www/$site_user/wordpress/ -type f -exec chmod 644 {} \; +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Завершение установки +systemctl restart php8.0-fpm +systemctl restart nginx + +echo "Установка WordPress завершена!" +``` + +модифицируй полученный выше скрипт таким образом, чтобы php-fpm выполнялся от имени того пользователя который был создан + +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php-fpm mysql-server php-mysql certbot python3-certbot-nginx -y + +# Создание системного пользователя и директории для сайта +read -p "Введите имя пользователя сайта: " site_user +mkdir /var/www/$site_user +useradd -d /var/www/$site_user -s /usr/sbin/nologin $site_user +chown -R $site_user:$site_user /var/www/$site_user + +# Запрос имени пользователя базы данных, имени базы данных, пароля и домена сайта +read -p "Введите имя пользователя базы данных: " db_user +read -p "Введите имя базы данных: " db_name +read -p "Введите пароль для базы данных: " db_password +read -p "Введите домен вашего сайта: " domain + +# Настройка PHP-FPM +sed -i 's/^user = www-data/user = '$site_user'/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^group = www-data/group = '$site_user'/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^listen = .*/listen = \/run\/php\/php8.0-fpm.sock/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.owner = .*/listen.owner = '$site_user'/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.group = .*/listen.group = '$site_user'/' /etc/php/8.0/fpm/pool.d/www.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/8.0/fpm/pool.d/www.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE $db_name;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' IDENTIFIED BY '$db_password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name $domain; + return 301 https://\$server_name\$request_uri; +} + +server { + listen 443 ssl; + server_name $domain; + + ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem; + + root /var/www/$site_user/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.0-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Получение сертификата Let's Encrypt +certbot --nginx -d $domain -m your-email@example.com --agree-tos --non-interactive --redirect + +# Скачивание и распаковка WordPress +cd /var/www/$site_user/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/$site_user/wordpress/ +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Настройка прав доступа к файлам сайта +find /var/www/$site_user/wordpress/ -type d -exec chmod 755 {} \; +find /var/www/$site_user/wordpress/ -type f -exec chmod 644 {} \; +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Завершение установки +systemctl restart php8.0-fpm +systemctl restart nginx + +echo "Установка WordPress завершена!" +``` + +модифицируй полученный выше скрипт таким образом, чтобы создаваемый файл конфигурации php-fpm имел имя созданного пользователя + +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php-fpm mysql-server php-mysql certbot python3-certbot-nginx -y + +# Создание системного пользователя и директории для сайта +read -p "Введите имя пользователя сайта: " site_user +mkdir /var/www/$site_user +useradd -d /var/www/$site_user -s /usr/sbin/nologin $site_user +chown -R $site_user:$site_user /var/www/$site_user + +# Запрос имени пользователя базы данных, имени базы данных, пароля и домена сайта +read -p "Введите имя пользователя базы данных: " db_user +read -p "Введите имя базы данных: " db_name +read -p "Введите пароль для базы данных: " db_password +read -p "Введите домен вашего сайта: " domain + +# Настройка PHP-FPM +sed -i 's/^user = www-data/user = '$site_user'/' /etc/php/8.0/fpm/pool.d/$site_user.conf +sed -i 's/^group = www-data/group = '$site_user'/' /etc/php/8.0/fpm/pool.d/$site_user.conf +sed -i 's/^listen = .*/listen = \/run\/php\/php8.0-fpm.sock/' /etc/php/8.0/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.owner = .*/listen.owner = '$site_user'/' /etc/php/8.0/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.group = .*/listen.group = '$site_user'/' /etc/php/8.0/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/8.0/fpm/pool.d/$site_user.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE $db_name;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' IDENTIFIED BY '$db_password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name $domain; + return 301 https://\$server_name\$request_uri; +} + +server { + listen 443 ssl; + server_name $domain; + + ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem; + + root /var/www/$site_user/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.0-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Получение сертификата Let's Encrypt +certbot --nginx -d $domain -m your-email@example.com --agree-tos --non-interactive --redirect + +# Скачивание и распаковка WordPress +cd /var/www/$site_user/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/$site_user/wordpress/ +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Настройка прав доступа к файлам сайта +find /var/www/$site_user/wordpress/ -type d -exec chmod 755 {} \; +find /var/www/$site_user/wordpress/ -type f -exec chmod 644 {} \; +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Завершение установки +systemctl restart php8.0-fpm +systemctl restart nginx + +echo "Установка WordPress завершена!" +``` + +модифицируй полученный выше скрипт таким образом, чтобы использовать php версии не ниже 8.1 + +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php8.1-fpm mysql-server php8.1-mysql certbot python3-certbot-nginx -y + +# Создание системного пользователя и директории для сайта +read -p "Введите имя пользователя сайта: " site_user +mkdir /var/www/$site_user +useradd -d /var/www/$site_user -s /usr/sbin/nologin $site_user +chown -R $site_user:$site_user /var/www/$site_user + +# Запрос имени пользователя базы данных, имени базы данных, пароля и домена сайта +read -p "Введите имя пользователя базы данных: " db_user +read -p "Введите имя базы данных: " db_name +read -p "Введите пароль для базы данных: " db_password +read -p "Введите домен вашего сайта: " domain + +# Настройка PHP-FPM +sed -i 's/^user = www-data/user = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^group = www-data/group = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^listen = .*/listen = \/run\/php\/php8.1-fpm.sock/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.owner = .*/listen.owner = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.group = .*/listen.group = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/8.1/fpm/pool.d/$site_user.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE $db_name;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' IDENTIFIED BY '$db_password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name $domain; + return 301 https://\$server_name\$request_uri; +} + +server { + listen 443 ssl; + server_name $domain; + + ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem; + + root /var/www/$site_user/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.1-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Получение сертификата Let's Encrypt +certbot --nginx -d $domain -m your-email@example.com --agree-tos --non-interactive --redirect + +# Скачивание и распаковка WordPress +cd /var/www/$site_user/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/$site_user/wordpress/ +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Настройка прав доступа к файлам сайта +find /var/www/$site_user/wordpress/ -type d -exec chmod 755 {} \; +find /var/www/$site_user/wordpress/ -type f -exec chmod 644 {} \; +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Завершение установки +systemctl restart php8.1-fpm +systemctl restart nginx + +echo "Установка WordPress завершена!" +``` + +модифицируй полученный выше скрипт таким образом, чтобы была выполнена установка необходимых для работы wordpress модулей php + +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php8.1-fpm mysql-server php8.1-mysql certbot python3-certbot-nginx php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-xmlrpc php8.1-intl php8.1-zip -y + +# Создание системного пользователя и директории для сайта +read -p "Введите имя пользователя сайта: " site_user +mkdir /var/www/$site_user +useradd -d /var/www/$site_user -s /usr/sbin/nologin $site_user +chown -R $site_user:$site_user /var/www/$site_user + +# Запрос имени пользователя базы данных, имени базы данных, пароля и домена сайта +read -p "Введите имя пользователя базы данных: " db_user +read -p "Введите имя базы данных: " db_name +read -p "Введите пароль для базы данных: " db_password +read -p "Введите домен вашего сайта: " domain + +# Настройка PHP-FPM +sed -i 's/^user = www-data/user = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^group = www-data/group = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^listen = .*/listen = \/run\/php\/php8.1-fpm.sock/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.owner = .*/listen.owner = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.group = .*/listen.group = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/8.1/fpm/pool.d/$site_user.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE $db_name;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' IDENTIFIED BY '$db_password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name $domain; + return 301 https://\$server_name\$request_uri; +} + +server { + listen 443 ssl; + server_name $domain; + + ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem; + + root /var/www/$site_user/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.1-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Получение сертификата Let's Encrypt +certbot --nginx -d $domain -m your-email@example.com --agree-tos --non-interactive --redirect + +# Скачивание и распаковка WordPress +cd /var/www/$site_user/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/$site_user/wordpress/ +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Настройка прав доступа к файлам сайта +find /var/www/$site_user/wordpress/ -type d -exec chmod 755 {} \; +find /var/www/$site_user/wordpress/ -type f -exec chmod 644 {} \; +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Завершение установки +systemctl restart php8.1-fpm +systemctl restart nginx + +echo "Установка WordPress завершена!" +``` + +модифицируй полученный выше скрипт таким образом, чтобы перед изменением конфигурации php-fpm, файл конфигурации копировался из стандартного файла конфигурации в ту же директорию с именем созданного пользователя + +``` +#!/bin/bash + +# Установка необходимых пакетов +apt-get update +apt-get install nginx php8.1-fpm mysql-server php8.1-mysql certbot python3-certbot-nginx php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-xmlrpc php8.1-intl php8.1-zip -y + +# Создание системного пользователя и директории для сайта +read -p "Введите имя пользователя сайта: " site_user +mkdir /var/www/$site_user +useradd -d /var/www/$site_user -s /usr/sbin/nologin $site_user +chown -R $site_user:$site_user /var/www/$site_user + +# Запрос имени пользователя базы данных, имени базы данных, пароля и домена сайта +read -p "Введите имя пользователя базы данных: " db_user +read -p "Введите имя базы данных: " db_name +read -p "Введите пароль для базы данных: " db_password +read -p "Введите домен вашего сайта: " domain + +# Копирование конфигурационного файла PHP-FPM для нового пользователя +cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/$site_user.conf + +# Настройка PHP-FPM +sed -i 's/^user = www-data/user = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^group = www-data/group = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^listen = .*/listen = \/run\/php\/php8.1-fpm.sock/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.owner = .*/listen.owner = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.group = .*/listen.group = '$site_user'/' /etc/php/8.1/fpm/pool.d/$site_user.conf +sed -i 's/^;listen.mode = .*/listen.mode = 0660/' /etc/php/8.1/fpm/pool.d/$site_user.conf + +# Создание базы данных для WordPress +mysql -u root -p -e "CREATE DATABASE $db_name;" +mysql -u root -p -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_user'@'localhost' IDENTIFIED BY '$db_password';" +mysql -u root -p -e "FLUSH PRIVILEGES;" + +# Настройка Nginx +rm /etc/nginx/sites-enabled/default +touch /etc/nginx/sites-available/wordpress +echo "server { + listen 80; + server_name $domain; + return 301 https://\$server_name\$request_uri; +} + +server { + listen 443 ssl; + server_name $domain; + + ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem; + + root /var/www/$site_user/wordpress; + index index.php; + + location / { + try_files \$uri \$uri/ /index.php?\$args; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.1-fpm.sock; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + fastcgi_param PATH_INFO \$fastcgi_path_info; + } +}" > /etc/nginx/sites-available/wordpress + +ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ + +# Получение сертификата Let's Encrypt +certbot --nginx -d $domain -m your-email@example.com --agree-tos --non-interactive --redirect + +# Скачивание и распаковка WordPress +cd /var/www/$site_user/ +wget https://wordpress.org/latest.tar.gz +tar -xzvf latest.tar.gz +mv wordpress/* wordpress/.htaccess /var/www/$site_user/wordpress/ +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Настройка прав доступа к файлам сайта +find /var/www/$site_user/wordpress/ -type d -exec chmod 755 {} \; +find /var/www/$site_user/wordpress/ -type f -exec chmod 644 {} \; +chown -R $site_user:$site_user /var/www/$site_user/wordpress/ + +# Завершение установки +systemctl restart php8.1-fpm +systemctl restart nginx + +echo "Установка WordPress завершена!" + +``` \ No newline at end of file