WordPress - это самый простой и популярный способ создания собственного сайта или блога. Фактически, на WordPress работает более 43,3% всех веб-сайтов в Интернете. Да, более чем каждый четвертый сайт, который вы посещаете, скорее всего, работает на WordPress. В этом руководстве мы продемонстрируем, как можно установить WordPress в CentOS 8 Stream.
Установка дополнительных репозиториев
Перед установкой, необходимо установить в системе дополнительные репозитории, командами ниже
Epel
1 | yum install epel-release |
Remi
1 | yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm |
1 | yum install http://rpms.remirepo.net/enterprise/remi-release-9.rpm |
Raven
1 | yum install https://pkgs.dyn.su/el8/base/x86_64/raven-release.el8.noarch.rpm |
после этого обновите кеш
1 | dnf makecache |
Установка Apache
Для установки Apache выполните следующие команду:
1 | yum install httpd mod_ssl |
Теперь запустите и включите веб-сервер Apache.
1 2 | sudo systemctl enable httpd sudo systemctl start httpd |
Чтобы убедиться, что веб-сервер Apache запущен, подтвердите это с помощью команды:
1 | sudo systemctl status httpd |
Установка PHP
PHP - это язык веб-программирования на стороне сервера, используемый разработчиками для создания динамических веб-страниц. Мы собираемся установить PHP 8.1.
1 2 | dnf module reset php dnf module install php:remi-8.1 |
Установим дополнительные пакеты PHP необходимые для работы WordPress (это можно было сделать на прошлом шаге, но нам необходимо было активировать конкретную версию PHP)
1 2 3 | dnf install php php-cli php-common php-fpm php-gd php-intl php-mbstring php-mysqlnd / php-opcache php-pdo php-pecl-igbinary php-pecl-imagick-im6 php-pecl-msgpack / php-pecl-xmlrpc php-pecl-zip php-process php-sodium php-xml php-zip php-imagick |
и перезапустите apache
1 | sudo systemctl restart httpd |
Установка MySQL в CentOS
Последним компонентом стека является сервер баз данных, которым в данном случае будет MySQL .
Для установки MySQL выполните команду:
1 | dnf install mysql-server |
Теперь запустите сервер MySQL
1 2 | sudo systemctl enable mysqld sudo systemctl start mysqld |
При установке необходимы дополнительные шаги для обеспечения безопасности сервера баз данных. Это связано в первую очередь с тем, что настройки по умолчанию слабы и делают сервер уязвимым к нарушениям безопасности.
Во время установки устанавливается временный пароль для учетной записи root. Вы можете получить пароль из файла журнала, выполнив следующую команду:
1 | grep 'A temporary password is generated' /var/log/mysqld.log | tail -1 |
Итак, чтобы укрепить сервер, выполните команду:
1 | sudo mysql_secure_installation |
Нажмите ENTER, когда появится запрос на ввод пароля root, и нажмите 'Y', чтобы установить пароль root.
нам необходимо ответить на некоторые вопросы и ввести пароль
Создание базы данных WordPress
Подключаемся к mysql под пользователем ROOT
1 | mysql -u root -p |
Создаем базу
1 | CREATE DATABASE [DATABASE]; |
Создаем пользователя
1 | CREATE USER '[USER]'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]'; |
Добавляем права
1 | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON [DATABASE].* TO '[USER]'@'localhost'; |
Перегрузить привелегии.
1 | FLUSH PRIVILEGES; |
и выходим
1 | EXIT; |
[DATABASE] - Имя базы данных.
[USER] - Пользователь, которого мы создаем.
[PASSWORD] - Пароль пользователя.
Настройка Apache для WordPress (не обязательно)
Замените wordpress.example.com на ваш домен или IP адрес!
Создаем директорию, для хранения сертификатов
1 | mkdir -p /var/www/httpd-cert/ |
и сгенерируем сертификат
1 2 3 | openssl req -new -x509 -nodes -keyout /var/www/httpd-cert/wordpress.example.com.key -x509 \ -days 3650 -out /var/www/httpd-cert/wordpress.example.com.crt \ -subj '/C=RU/ST=RU/L=Moscow/OU=Sec/CN=wordpress.example.com' |
Дополнительно сменим владельца файлов сертифката
1 | chown -R apache:apache /var/www/httpd-cert/ |
Наконец, нам нужно настроить веб-сервер Apache для сервера веб-страниц WordPress. Для этого мы создадим файл виртуального хоста для Wodpress.
1 2 | mkdir -p /etc/httpd/sites-available/ echo "IncludeOptional sites-available/*.conf" >> /etc/httpd/conf/httpd.conf |
Создадим директорию сайта
1 | mkdir -p /var/www/wordpress |
далее, создаем файл конфигурации сайта
1 | sudo nano /etc/httpd/sites-available/wordpress.conf |
Вставьте приведенную ниже конфигурацию в файл и сохраните.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <VirtualHost *:80> ServerName wordpress.example.com ServerAdmin webmaster@example.com DocumentRoot /var/www/wordpress <Directory /var/www/wordpress> Allowoverride all </Directory> </VirtualHost> <VirtualHost *:443> ServerName wordpress.example.com ServerAdmin webmaster@example.com DocumentRoot /var/www/wordpress ServerAdmin webmaster@example.com DirectoryIndex index.php index.html AddDefaultCharset off SSLEngine on SSLCertificateFile "/var/www/httpd-cert/wordpress.example.com.crt" SSLCertificateKeyFile "/var/www/httpd-cert/wordpress.example.com.key" SSLHonorCipherOrder on SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2 +TLSv1.3 SSLCipherSuite EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4 <Directory /var/www/wordpress> Allowoverride all </Directory> </VirtualHost> |
Проверяем файл конфигурации на ошибки
1 | httpd -t |
Затем перезапустите службу веб-сервера Apache, чтобы изменения вступили в силу.
1 | sudo systemctl restart httpd |
Настройка SELinux
Изменяем настройки SELinux для директории сайта
1 2 | semanage fcontext -a -t httpd_sys_rw_content_t /var/www/wordpress restorecon -F -R -v /var/www/wordpress/ |
Если не изменить настройки, получим ошибку вида: AH00035: access to /index.php denied (filesystem path '/var/www/wordpress/index.php') because search permissions are missing on a component of the path
Так же, обязательно
1 | setsebool -P httpd_can_network_connect true |
Иначе в админке нас ожидают следующие ошибки:
- Ошибка: cURL error 7: (http_request_failed)
- Ошибка Ваш сайт не смог подключиться к WordPress.org по 198.143.164.251, и вернул ошибку: cURL error 7
Загрузка WordPress в CentOS
Чтобы загрузить последнюю версию WordPress, выполните команду wget.
1 | wget https://wordpress.org/latest.zip |
После этого распакуйте заархивированный файл WordPress
1 | sudo unzip latest.zip |
и перенесите файлы в директорию сайта
1 | mv wordpress/* /var/www/wordpress |
сменим владельца файлов
1 | chown -R apache:apache /var/www/wordpress |
Открываем порты в межсетевом экране
Для работы сайфта потребуется два порта 80 и 443
1 2 3 | firewall-cmd --add-port=80/tcp --permanent firewall-cmd --add-port=443/tcp --permanent firewall-cmd --reload |
Завершение установки WordPress в CentOS
Чтобы завершить установку Wodpress . Запустите браузер и просмотрите URL вашего сервера.
Отобразится страница ниже.
Нажимаем "Let’s go!", на данном шаге нам необходимо указать настройки для доступа к базе
Если все указано верно, WordPress создаст файл конфигурации и мы будем готовый перейти к последнему шагу
Остается указать название сайта и создать пользователя с правами администратора
на этом настройка закончена
Приятного творчества.