Как установить WordPress с Nginx и позволить зашифровать SSL на CentOS 8
На этой странице
- Предпосылки
- Начало работы
- Установить сервер LEMP
- Настройка базы данных WordPress
- Загрузить WordPress
- Настройка Nginx для WordPress
- Доступ к панели управления WordPress
- Защитите WordPress с помощью Lets Encrypt
- Настройка автоматического продления Lets Encrypt
- Заключение
WordPress — это бесплатная система управления контентом с открытым исходным кодом, наиболее широко используемая в мире. Это очень мощная платформа для ведения блогов, которую можно использовать для размещения блога, веб-сайта портфолио и платформы электронной коммерции. WordPress использует Apache/Nginx в качестве веб-сервера, MariaDB/MySQL в качестве базы данных и обработку PHP. WordPress предоставляет огромное количество тем и плагинов, которые можно использовать для настройки его функциональности.
В этом руководстве мы объясним, как установить WordPress с Nginx на сервер CentOS 8, а затем защитим сервер с помощью бесплатного SSL-сертификата Lets Encrypt.
Предпосылки
- Сервер под управлением CentOS 8.
- На вашем сервере настроен пароль root.
- Действительное доменное имя указывает на IP-адрес вашего сервера.
Начиная
По умолчанию SELinux включен на сервере CentOS 8. Поэтому вам нужно сначала отключить его.
Вы можете сделать это, отредактировав файл /etc/selinux/config:
nano /etc/selinux/config
Внесите следующие изменения:
SELINUX=disabled
Сохраните и закройте файл. Затем перезапустите сервер, чтобы изменения вступили в силу.
Установить LEMP-сервер
Перед началом вам нужно будет установить Nginx, MariaDB, PHP и другие необходимые пакеты на ваш сервер. Вы можете установить их все, выполнив следующую команду:
yum install nginx php php-cli php-curl php-zip php-mbstring php-mysqlnd php-fpm curl unzip mariadb-server -y
После установки всех пакетов запустите службу Nginx, PHP-FPM, MariaDB и включите их запуск после перезагрузки системы:
systemctl start nginx
systemctl enable nginx
systemctl start mariadb
systemctl enable mariadb
systemctl start php-fpm
systemctl enable php-fpm
Вы также можете проверить статус службы PHP-FPM с помощью следующей команды:
systemctl status php-fpm
Вы должны получить следующий результат:
? php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-10-17 05:39:11 EDT; 4min 40s ago Main PID: 1475 (php-fpm) Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 6 (limit: 5060) Memory: 28.5M CGroup: /system.slice/php-fpm.service ??1475 php-fpm: master process (/etc/php-fpm.conf) ??1478 php-fpm: pool www ??1479 php-fpm: pool www ??1480 php-fpm: pool www ??1481 php-fpm: pool www ??1482 php-fpm: pool www Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager... Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.
Как только вы это сделаете, вы можете перейти к следующему шагу.
Настроить базу данных WordPress
По умолчанию сервер MariaDB не защищен. Так что вам нужно будет обеспечить его в первую очередь. Вы можете защитить его с помощью следующей команды:
mysql_secure_installation
Ответьте на все вопросы, как показано ниже:
Enter current password for root (enter for none): Set root password? [Y/n] n Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
После защиты вы должны получить следующий вывод:
Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Затем войдите в оболочку MariaDB с помощью следующей команды:
mysql -u root -p
При появлении запроса укажите свой пароль root, затем создайте базу данных и пользователя для WordPress с помощью следующих команд:
MariaDB [(none)]> CREATE DATABASE wpdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES on wpdb.* to 'wpuser'@'localhost' identified by 'password';
Затем сбросьте привилегии и выйдите из оболочки MariaDB с помощью следующей команды:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Как только ваша база данных настроена, вы можете перейти к следующему шагу.
Скачать WordPress
Вы можете загрузить последнюю версию WordPress с помощью следующей команды:
cd /var/www/html
wget https://wordpress.org/latest.tar.gz
После загрузки извлеките загруженный файл с помощью следующей команды:
tar -xvzf latest.tar.gz
Затем измените владельца каталога WordPress на nginx:
chown -R nginx: /var/www/html/wordpress/
Затем измените каталог на wordpress и переименуйте файл конфигурации wordpress по умолчанию:
cd /var/www/html/wordpress
cp wp-config-sample.php wp-config.php
Затем отредактируйте файл wp-config.php в вашем любимом текстовом редакторе:
nano wp-config.php
Определите информацию о базе данных, как показано ниже:
/** The name of the database for WordPress */ define( 'DB_NAME', 'wpdb' ); /** MySQL database username */ define( 'DB_USER', 'wpuser' ); /** MySQL database password */ define( 'DB_PASSWORD', 'password' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' );
Сохраните и закройте файл, когда закончите.
Настроить Nginx для WordPress
Далее вам нужно будет создать файл конфигурации виртуального хоста Nginx для обслуживания WordPress. вы можете создать его с помощью следующей команды:
nano /etc/nginx/conf.d/wordpress.conf
Добавьте следующие строки:
server { listen 80; server_name example.com; root /var/www/html/wordpress; index index.php; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires max; log_not_found off; } }
Сохраните и закройте файл. Затем проверьте nginx на наличие синтаксической ошибки с помощью следующей команды:
nginx -t
Вы должны получить следующий результат:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Наконец, перезапустите службу Nginx, чтобы применить изменения конфигурации:
systemctl restart nginx
Доступ к панели инструментов WordPress
WordPress установлен и настроен, теперь пришло время получить доступ к веб-интерфейсу.
Откройте веб-браузер и введите URL-адрес http://example.com. Вы будете перенаправлены на следующую страницу:
Укажите всю необходимую информацию, такую как имя сайта, имя пользователя администратора, пароль, адрес электронной почты администратора и нажмите кнопку «Установить WordPress». После завершения установки. Вы должны увидеть следующую страницу:
Нажмите на кнопку входа. Вы будете перенаправлены на страницу входа в WordPress:
Введите имя пользователя и пароль администратора и нажмите кнопку «Войти». Вы должны увидеть панель инструментов WordPress на следующей странице:
Защитите WordPress с помощью Lets Encrypt
Чтобы защитить свой сайт WordPress с помощью бесплатного SSL Lets Encrypt, вам необходимо установить клиент Certbot Lets Encrypt в вашей системе. По умолчанию Certbot недоступен в репозитории CentOS 8 по умолчанию. Поэтому вам нужно будет загрузить его с официального сайта Certbot.
Вы можете загрузить и установить Certbot с помощью следующих команд:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Теперь выполните следующую команду, чтобы получить и установить SSL-сертификат для вашего веб-сайта WordPress.
certbot-auto --apache -d example.com
Вам будет предложено указать адрес электронной почты и согласиться с условиями обслуживания. Вам также нужно будет выбрать, следует ли перенаправлять HTTP-трафик на HTTPS. Пожалуйста, выберите подходящий вариант и нажмите Enter. После успешного завершения установки вы должны получить следующий вывод:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-08-14. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Настройка автоматического продления Lets Encrypt
Сертификат Lets Encrypt действителен в течение 90 дней. Поэтому рекомендуется обновить сертификат до истечения срока его действия. Вы можете настроить задание Cron для автоматического обновления сертификата.
Для этого создайте crontab с помощью следующей команды:
crontab -e
Добавьте следующую строку:
0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew
Сохраните и закройте файл, когда закончите.
Заключение
В приведенном выше руководстве мы узнали, как установить и настроить WordPress с Nginx на сервере CentOS. Мы также узнали, как защитить сайт WordPress с помощью бесплатного SSL от Lets Encrypt. Я надеюсь, что теперь вы можете легко разместить свой собственный веб-сайт WordPress.