Поиск по сайту:

Как установить WordPress с Nginx и позволить зашифровать SSL на CentOS 8


На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установить сервер LEMP
  4. Настройка базы данных WordPress
  5. Загрузить WordPress
  6. Настройка Nginx для WordPress
  7. Доступ к панели управления WordPress
  8. Защитите WordPress с помощью Lets Encrypt
  9. Настройка автоматического продления Lets Encrypt
  10. Заключение

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.