Nginx proxy to apache2
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