Ubuntu 22.04 PHP version - 8.1

Шаг 1: Обновление системы

sudo apt update
sudo apt upgrade -y

Шаг 2: Установка Nginx

sudo apt install nginx -y

После установки, запустите и включите Nginx для автоматического старта при загрузке:

sudo systemctl start nginx
sudo systemctl enable nginx

Шаг 3: Установка и настройка MySQL

sudo apt install mysql-server -y

Запустите и включите MySQL:

sudo systemctl start mysql
sudo systemctl enable mysql

Настройте безопасность MySQL:

sudo mysql_secure_installation

Следуйте инструкциям, чтобы задать пароль для root и выполнить остальные настройки безопасности.

Шаг 4: Создание базы данных и пользователя для WordPress

sudo mysql -u root -p

Выполните следующие команды для создания базы данных, пользователя и предоставления ему всех необходимых прав:

CREATE DATABASE wordpress;
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Замените password на безопасный пароль.

Шаг 5: Установка PHP и необходимых модулей

sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-intl php-zip php-imagick -y

Шаг 6: Установка Apache2

Установите Apache2 с помощью следующей команды:

sudo apt install apache2 -y

Запустите и включите Apache2:

sudo systemctl start apache2
sudo systemctl enable apache2

Шаг 7: Загрузка WordPress

Скачайте последнюю версию WordPress и распакуйте её:

wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz -C /var/www/

Установите необходимые права доступа:

sudo chown -R www-data:www-data /var/www/wordpress/
sudo chmod -R 755 /var/www/wordpress/

Шаг 8: Настройка Apache2

Убедитесь, что модуль mod_proxy и mod_proxy_fcgi включены:

sudo a2enmod proxy
sudo a2enmod proxy_fcgi

Настройте виртуальный хост Apache для работы с WordPress:

sudo nano /etc/apache2/sites-available/wordpress.conf

Добавьте следующий код в файл конфигурации:

<VirtualHost *:8080>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html
    ServerName example.com

    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Замените example.com на ваше доменное имя или IP-адрес сервера. Также укажите правильный адрес электронной почты администратора.

Активируйте виртуальный хост и перезапустите Apache:

sudo a2ensite wordpress.conf
sudo systemctl restart apache2

Шаг 9: Настройка Nginx как реверс-прокси

Удалите дефолтные конфиги nginx:

rm /etc/nginx/sites-available/default
rm /etc/nginx/sites-enabled/default

Создайте конфигурационный файл для вашего сайта:

sudo nano /etc/nginx/sites-available/wordpress

Вставьте следующий конфигурационный код:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Замените example.com на ваше доменное имя или IP-адрес сервера.

Активируйте конфигурацию и перезапустите Nginx:

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo systemctl restart nginx