Установка WordPress на Caddy в CentOS 7

WordPress – это популярная система управления контентом (CMS), которая позволяет быстро развернуть сайт или блог. Почти все задачи по администрированию можно выполнить через веб-интерфейс.

В большинстве случаев WordPress устанавливается с помощью стека LAMP или LEMP (в которые входят веб-серверы Apache или Nginx соответственно). В этом руководстве вы узнаете, как установить и запустить WordPress с помощью Caddy. Caddy – новый веб-сервер, быстро завоевывающий популярность благодаря широкому спектру уникальных функций, таких как поддержка HTTP/2 и автоматическое шифрование TLS с помощью сертификатов бесплатного провайдера Let’s Encrypt.

Требования

1: Установка PHP

Чтобы запустить WordPress, нужен веб-сервер, база данных MySQL и язык сценариев PHP. У вас уже есть веб-сервер Caddy и база данных MySQL, поэтому осталось только установить PHP.

Обновите индекс пакетов:

sudo yum update

Установите PHP и PHP-расширения для WordPress (поддержка MySQL, curl, XML и многобайтных строк).

sudo yum install php php-fpm php-mysql php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc

Чтобы убедиться, что установка прошла успешно, запросите версию PHP:

php -v

Команда должна вернуть:

PHP 5.4.16 (cli) (built: Nov  6 2016 00:29:02)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

Теперь нужно отредактировать настройки сервиса PHP и предоставить пользователю caddy возможность запускать сервер. Конфигурация по умолчанию в CentOS предполагает, что используется веб-сервер Apache.

Откройте конфигурационный файл PHP-FPM с помощью vi или другого текстового редактора.

Читайте также: Установка и использование текстового редактора Vim

sudo vi /etc/php-fpm.d/www.conf

Найдите настройки пользователей и групп.

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache

Вместо apache укажите caddy:

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = caddy
; RPM: Keep a group allowed to write in log dir.
group = caddy

Сохраните и закройте файл. Чтобы веб-сервер Caddy мог взаимодействовать с PHP, запустите сервис:

sudo systemctl start php-fpm

2: Создание базы данных и пользователя MySQL

WordPress использует базу данных MySQL для хранения всей информации сайта. В установке MySQL по умолчанию создается только учетная запись администратора, root. Эта учетная запись не должна использоваться на постоянной основе, поскольку ее неограниченные права представляют собой угрозу безопасности. Создайте отдельного пользователя MySQL и базу данных для WordPress.

Откройте root-аккаунт MySQL.

mysql -u root -p

По запросу введите root-пароль MySQL.

Создайте новую базу данных по имени wordpress, которая будет хранить данные веб-сайта WordPress.

Примечание: Если вы хотите  использовать другое имя БД, откорректируйте последующие команды мануала.

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Затем создайте нового пользователя, у которого будет доступ к этой базе данных. Для простоты имя пользователя будет  wordpressuser для простоты, но вы можете выбрать другое имя. Не забудьте выбрать надежный пароль.

GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

Примечание: Согласно политике по умолчанию пароли должны состоять из 12 символов минимум и содержать хотя бы одну заглавную и одну строчную букву, одну цифру и один специальный символ. Если ваш пароль не соответствует этой политике, указанная выше команда не создаст пользователя, а выведет сообщение об ошибке.

Теперь нужно сбросить привилегии:

FLUSH PRIVILEGES;

Закройте MySQL.

EXIT;

Теперь у WordPress есть индивидуальная БД и пользователь для работы с ней.

3: Загрузка WordPress

Чтобы установить WordPress, нужно загрузить последнюю версию в корневой каталог веб-сайта и предоставить веб-серверу доступ к ней, а затем завершить установку через графический интерфейс WordPress. На этом этапе нужно просто загрузить последний релиз, а затем настроить веб-сервер, чтобы в дальнейшем получить доступ к графическому интерфейсу.

Перейдите в корневой каталог сайта, где хранятся все его файлы.

cd /var/www

Загрузите сюда последнюю версию WordPress в сжатом архиве.

sudo curl -O https://wordpress.org/latest.tar.gz

Примечание: Важно использовать последнюю версию, поскольку это программное обеспечение часто обновляется.

Распакуйте архив:

sudo tar zxf latest.tar.gz

Эта команда автоматически создаст новый каталог wordpress. Теперь вы можете удалить загруженный архив, поскольку он больше не нужен.

sudo rm latest.tar.gz

Последний шаг – изменить права на файлы и каталоги WordPress, чтобы у веб-сервера Caddy были права на запись во всех этих файлах. Это позволит автоматически обновлять WordPress до более новых версий.

sudo chown -R caddy:caddy wordpress

Примечание: Как правило, права доступа к файлам WordPress зависят от требований приложения и индивидуальных предпочтений администратора. Заблокировав право на запись в файлах WordPress, вы можете повысить безопасность: так злоумышленники не смогут использовать баги, которые приводят к взлому основных файлов WordPress. Но в то же время это отключит поддержку автоматических обновлений безопасности и установки плагинов через веб-интерфейс WordPress.

4: Настройка Caddy для поддержки WordPress

Теперь нужно откорректировать конфигурационный файл Caddyfile, чтобы сообщить Caddy, где находится установка WordPress и под каким доменным именем она должна быть доступна в интернете.

Откройте файл в текстовом редакторе:

sudo vi /etc/caddy/Caddyfile

Скопируйте и вставьте в него следующие параметры. Все настройки из предыдущих руководств можно просто удалить.

example.com {
tls admin@example.com
root /var/www/wordpress
gzip
fastcgi / 127.0.0.1:9000 php
rewrite {
if {path} not_match ^\/wp-admin
to {path} {path}/ /index.php?_url={uri}
}
}

Этот Caddyfile содержит следующие настройки:

  • В первой строке находится доменное имя, под которым будет доступен сайт (в данном примере используется условный домен example.com, замените его собственным доменным именем).
  • Значение admin@example.com в директиве tls задает адрес электронной почты, который должен использовать веб-сервер Caddy, чтобы запросить сертификат Let’s Encrypt. Если в дальнейшем вам понадобится восстановить сертификат, Let’s Encrypt будет использовать этот адрес для восстановления.
  • Директива root сообщает путь к корневому каталогу сайта, /var/www/wordpress.
  • Директива gzip включает поддержку сжатия gzip.
  • Благодаря директиве fastcgi обработчик PHP поддерживает файлы с расширением php.
  • Директива rewrite включает поддержку чистых URL-ов WordPress. Эта конфигурация автоматически предоставляется WordPress в файле .htaccess при использовании веб-сервера Apache, но на Caddy ее необходимо настроить отдельно.

Сохраните и закройте файл.

Перезапустите Caddy, чтобы обновить настройки:

sudo systemctl restart caddy

Когда веб-сервер Caddy запустится, он автоматически получит сертификат SSL от сервиса Let’s Encrypt, чтобы шифровать данные сайта с помощью TLS. Теперь вы можете получить доступ к веб-сайту WordPress с помощью Caddy, открыв домен в браузере. При этом обратите внимание на символ зеленого замочка в адресной строке: он означает, что сайт обслуживается через безопасное соединение.

5: Настройка WordPress

WordPress предоставляет мастер установки, который поможет завершить настройку, подключить БД и развернуть сайт.

Открыв WordPress в браузере, вы увидите список доступных языков. Выберите язык установки. На следующей странице мастер запросит информацию о базе данных. Нажмите «Let’s go!» и укажите данные о БД в появившейся форме:

  • Database Name: имя базы данных (в данном случае это wordpress).
  • Username: имя пользователя БД (в данном случае это wordpressuser).
  • Password: пароль пользователя.
  • Database Host и Table Prefix можно оставить по умолчанию.

Нажмите Submit. WordPress проверит полученные данные. Если вы получили сообщение об ошибке, проверьте правильность данных.

Когда WordPress успешно подключится к базе данных, вы увидите сообщение:

All right, sparky! You've made it through this part of the installation. WordPress can now communicate with your database.

Теперь вы можете нажать кнопку Run the install, чтобы начать установку. Через короткое время WordPress представит вам последнюю страницу настройки и запросит данные о сайте (название веб-сайта, имя администратора, пароль и адрес электронной почты). Мастер автоматически сгенерирует надежный пароль, но вы можете выбрать свой собственный, если хотите.

Примечание. Не используйте обычное имя администратора типа admin, поскольку многие уязвимости безопасности зависят от стандартных имен пользователей и паролей. Выберите уникальное имя пользователя и надежный пароль для учетной записи администратора, чтобы повысить безопасность сайта.

Кликнув Install WordPress, вы попадете в панель инструментов WordPress. Установка WordPress завершена, теперь вы можете использовать WordPress, чтобы развернуть сайт и создавать записи.

Заключение

Вы успешно установили WordPress на веб-сервер Caddy.

Caddy автоматически получает SSL-сертификаты от сервиса Let’s Encrypt, обслуживает сайт через безопасное соединение и использует HTTP/2 и Gzip. Вы можете больше узнать об уникальных функциях и директивах Caddy в официальной документации Caddy.

Если вы хотите использовать плагины WordPress, обратите внимание, что некоторые плагины зависят от файла .htaccess веб-сервера Apache. Сегодня WordPress часто использует другие веб-серверы, поэтому зависимых от .htaccess плагинов осталось немного. Тем не менее, такие плагины не будут работать с Caddy «из коробки», потому что не смогут найти файл .htaccess. Об этом следует помнить, если с плагинами WordPress при использовании Caddy возникают проблемы.

В основном от .htaccess зависят кеширующие плагины (например, W3 Total Cache) и модуль брандмауэра веб-приложений Wordfence, хотя последний может поддерживать разные модели конфигурации.

Tags: , ,