1 ChatGPT_create_site_wordpress
mirv edited this page 2023-03-04 05:48:31 +03:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

напиши скрипт на языке 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 завершена!"