WordPress – это открытая система управления контентом (CMS), пожалуй, самая популярная в мире. WordPress позволяет быстро запустить блог или сайт на основе СУБД MySQL и PHP (для запуска скриптов и обработки динамического контента).
OpenLiteSpeed – это оптимизированный открытый веб-сервер, с помощью которого можно управлять сайтами и обслуживать их. OpenLiteSpeed предлагает множество полезных функций: совместимые с Apache правила перезаписи, встроенный интерфейс администратора, пользовательская обработка PHP и многое другое.
Этот мануал поможет вам установить и настроить экземпляр WordPress на веб-сервере OpenLiteSpeed в Ubuntu 18.04. Поскольку и WordPress, и OpenLiteSpeed можно управлять через браузер, эта настройка идеально подходит тем пользователям, которые пока что не очень уверенно чувствуют себя при работе с командной строкой или не имеют постоянного доступа по SSH.
Требования
- Сервер Ubuntu 18.04, настроенный по этому мануалу.
- Веб-сервер OpenLiteSpeed (инструкции вы найдете в мануале Установка веб-сервера OpenLiteSpeed в Ubuntu 18.04).
- СУБД MySQL (читайте Установка MySQL в Ubuntu 18.04).
1: Создание базы данных и пользователя для WordPress
С помощью MySQL система WordPress может управлять и хранить данные сайта и пользователей. Для начала нам нужно создать базу данных и пользователя для WordPress.
Подключитесь к серверу по SSH:
ssh your-user@your_server_IP
Затем войдите в учетную запись root MySQL:
sudo mysql
Примечание: Если вы выполнили раздел 3 мануала по установке MySQL и настроили аутентификацию пользователя root с помощью плагина mysql_native_password, вам необходимо войти в систему с помощью следующей команды:
mysql -u root -p
При появлении запроса введите пароль пользователя root.
С помощью командной строки MySQL создайте базу данных. В команде нужно указать имя БД (здесь мы для простоты назовем ее wordpress, но вы можете назвать ее как хотите).
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Затем создайте пользователя и передайте ему права на базу данных, которую вы только что создали. Вы можете присвоить этому пользователю любое имя, но мы здесь назовем его wordpressuser. Обязательно укажите в команде надежный пароль.
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
Затем запустите команду FLUSH PRIVILEGES, которая сбрасывает привилегии и перезагружает таблицы, чтобы применить новые параметры:
FLUSH PRIVILEGES;
После этого вы можете закрыть командную строку MySQL:
exit
Теперь у вас есть все необходимые компоненты MySQL для работы WordPress. Далее мы установим несколько важных расширений PHP.
2: Установка расширений PHP
В мануале по установке OpenLiteSpeed вы установили пакет lsphp73. Это компиляция PHP, оптимизированная для OpenLiteSpeed, который использует LiteSpeed SAPI для связи с внешними приложениями. В зависимости от ваших потребностей, WordPress может потребовать дополнительные расширения PHP.
Чтобы установить другие расширения PHP, чаще всего используемые вместе с WordPress, выполните следующую команду:
sudo apt install lsphp73-common lsphp73-curl lsphp73-imagick lsphp73-imap lsphp73-json lsphp73-memcached lsphp73-mysql lsphp73-opcache lsphp73-redis
Примечание: Среди перечисленных в этой команде пакетов может не оказаться нужного вам расширения. Полный список расширений PHP 7.3, доступных в репозитории LiteSpeed, можно найти в вики LiteSpeed.
После этого можно перейти к установке и настройке WordPress на вашем сервере.
3: Загрузка WordPress
Теперь вы можете установить и настроить WordPress. Для безопасности рекомендуем загрузить последнюю версию WordPress с сайта проекта.
Загрузите сжатый релиз при помощи команды:
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
Извлеките сжатый файл, чтобы создать структуру каталогов WordPress:
tar xzvf latest.tar.gz
Мы скоро переместим эти файлы в корневой каталог сайта, но сначала нам нужно создать несколько файлов и каталогов, от которых будет зависеть установка WordPress.
OpenLiteSpeed поддерживает файлы .htaccess. Это важно, поскольку WordPress использует файлы .htaccess для создания постоянных ссылок и управления ими.
Добавьте фиктивный файл .htaccess, чтобы WordPress мог использовать его позже:
touch /tmp/wordpress/.htaccess
Затем скопируйте образец конфигурационного файла в файл, который WordPress действительно читает:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
Затем создайте каталог upgrade, чтобы WordPress не столкнулся с конфликтами доступа при попытке создать его самостоятельно после обновления программного обеспечения:
mkdir /tmp/wordpress/wp-content/upgrade
Затем скопируйте содержимое каталога в корневой каталог вашего сайта. OpenLiteSpeed поставляется со стандартным виртуальным хостом по имени Example, расположенным в каталоге /usr/local/lsws/. Корневым каталогом для этого виртуального хоста является подкаталог html:
sudo cp -a /tmp/wordpress/. /usr/local/lsws/Example/html/wordpress
Обратите внимание, эта команда содержит точку в пути исходного каталога – она нужна, чтобы указать, что скопировать нужно все содержимое каталога, включая скрытые файлы (например, созданный вами.htaccess).
Итак, вы успешно установили WordPress на свой веб-сервер и выполнили начальные этапы его настройки. Теперь мы рассмотрим дальнейшие изменения конфигурации, которые дадут WordPress права, необходимые ему для безопасной работы, для доступа к базе данных и к учетной записи пользователя MySQL.
4: Настройка каталога WordPress
Прежде чем перейти к настройке WordPress вбраузере, нам нужно настроить некоторые элементы в каталоге WordPress.
Начните с передачи прав собственности на все файлы в каталоге пользователю nobody и группе nogroup, с помощью которых веб-сервер OpenLiteSpeed работает по умолчанию. Следующая команда chown предоставит OpenLiteSpeed права на чтение и запись в каталоге WordPress, что позволит ему обслуживать веб-сайт и выполнять автоматические обновления:
sudo chown -R nobody:nogroup /usr/local/lsws/Example/html/wordpress
Затем запустите команду find, чтобы установить права на каталоги и файлы WordPress:
sudo find /usr/local/lsws/Example/html/wordpress/ -type d -exec chmod 750 {} \;
sudo find /usr/local/lsws/Example/html/wordpress/ -type f -exec chmod 640 {} \;
Для начала эти права вполне подойдут, но некоторым плагинам и процедурам могут потребоваться дополнительные настройки.
После этого нужно внести небольшие изменения в главный конфигурационный файл WordPress.
Когда вы откроете файл, сначала вам нужно будет настроить секретные ключи для обеспечения безопасности установки. WordPress предоставляет надежный генератор этих значений, так что вам не придется придумывать сложные значения самостоятельно. Эти ключи нужны только для внутреннего использования, их не нужно запоминать, поэтому здесь можно задать очень сложные значения.
Чтобы создать безопасные значения с помощью генератора секретных ключей WordPress, введите:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
Вы получите такие значения:
define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
Примечание: Значения ключей должны быть уникальными. Не копируйте ключи, показанные в нашем примере!
Эти строки нужно вставить прямо в конфигурационный файл. Скопируйте свой полученный результат в буфер обмена, а затем откройте файл WordPress, расположенный в корневом каталоге вашего сайта:
sudo nano /usr/local/lsws/Example/html/wordpress/wp-config.php
Найдите раздел, содержащий фиктивные значения для этих настроек. Он выглядит примерно так:
. . .
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
. . .
Удалите эти строки, а вместо них вставьте скопированные вами сгенерированные ключи:
. . .
define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
. . .
Затем измените параметры подключения к базе данных в верхней части файла. Здесь необходимо указать имя БД, пользователя и пароль, который вы настроили в MySQL.
Также вам нужно установить метод, который WordPress будет использовать для записи в файловую систему. Так как мы дали веб-серверу право на запись в необходимых файлах, мы можем явно установить метод direct. Без этого параметра и с текущими настройками WordPress будет запрашивать учетные данные FTP при выполнении определенных действий.
Этот параметр можно добавить после настроек подключения к базе данных или в любое другое место в файле:
. . .
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'wordpressuser');
/** MySQL database password */
define('DB_PASSWORD', 'password');
. . .
define('FS_METHOD', 'direct');
Сохраните и закройте файл.
На данный момент WordPress все еще настроен не полностью. Вам нужно выполнить еще несколько действий, прежде чем вы сможете начать публикацию контента. Однако для этого сначала нужно внести пару изменений в конфигурацию установки OpenLiteSpeed.
5: Настройка OpenLiteSpeed
В настоящее время на вашем сервере Ubuntu установлен WordPress, но установка OpenLiteSpeed еще не настроена для его обслуживания. Сейчас вам нужно получить доступ к административному интерфейсу OpenLiteSpeed и внести несколько изменений в конфигурацию сервера.
В веб-браузере откройте интерфейс OpenLiteSpeed. Для этого нужно ввести внешний IP-адрес сервера или его домен, а затем порт :7080.
https://server_domain_or_IP:7080
Вы увидите экран входа в систему. Введите имя пользователя и пароль, которые вы выбрали во время установки OpenLiteSpeed.
В консоли OpenLiteSpeed нажмите Server Configuration в левой боковой панели. Затем перейдите во вкладку External App, найдите строку LiteSpeed SAPI App и нажмите кнопку Edit.
Напомним, что в мануале по установке OpenLiteSpeed вы также установили пакет lsphp73, компиляцию PHP, оптимизированную для работы с OpenLiteSpeed через LiteSpeed SAPI. Однако стандартные настройки на странице External App указывают на lsphp, а не на lsphp73. Из-за этого ваша установка OpenLiteSpeed не сможет правильно выполнять сценарии PHP.
Чтобы исправить это, отредактируйте поле Name и укажите в нем lsphp73, в поле Address введите uds://tmp/lshttpd/lsphp73.sock и измените значение в поле Command на $SERVER_ROOT/lsphp73/bin/lsphp.
После внесения этих изменений нажмите Save в верхнем правом углу окна LiteSpeed SAPI App.
Затем нажмите Virtual Hosts в левом меню. На странице Virtual Hosts найдите виртуальный хост, который вы планируете использовать для обслуживания своего сайта, и нажмите View. Здесь мы будем использовать виртуальный хост по умолчанию, Example.
Перейдите во вкладку General виртуального хоста. Там найдите раздел General и нажмите кнопку Edit.
OpenLiteSpeed просматривает содержимое поля Document Root, чтобы понимать, какой контент обслуживать. Поскольку весь контенти файлы WordPress хранятся в ранее созданном каталоге wordpress, обновите поле Document Root, чтобы указать на этот каталог. Все, что нужно для этого сделать, это добавить секцию wordpress/ в конец значения по умолчанию. Оно будет выглядеть так:
$VH_ROOT/html/wordpress/
Нажмите Save.
Затем необходимо включить файлы index.php, чтобы их можно было использовать для обслуживания запросов, которые не обрабатываются статическими файлами. Это позволит основной логике WordPress функционировать правильно.
Находясь во вкладке General, прокрутите вниз и найдите раздел Index Files. Нажмите Edit.
В поле Index Files перед index.html укажите файлы index.php и поставьте запятую. Помещая index.php перед index.html, вы устанавливаете приоритет файлов PHP. После обновления это поле будет выглядеть так:
index.php, index.html
Обязательно нажмите Save, прежде чем продолжить.
Затем перейдите во вкладку Rewrite виртуального хоста. Найдите раздел Rewrite Control и нажмите кнопку Edit.
Установите значение Yes для Enable Rewrite и Auto Load from .htaccess. Такие настройки перезаписи позволяют вам использовать постоянные ссылки в вашей установке WordPress.
Нажмите Save после внесения этих изменений.
Виртуальный хост по умолчанию, который входит в установку OpenLiteSpeed, включает в себя некоторые защищенные паролем области, предназначенные для демонстрации функций аутентификации пользователей OpenLiteSpeed. WordPress предлагает собственные механизмы для аутентификации, потому мы не будем использовать файловую аутентификацию от OpenLiteSpeed. Чтобы устранить случайные активные фрагменты конфигурации в установке WordPress, нужно отключить аутентификацию OpenLiteSpeed.
Сначала перейдите во вкладку Security, а затем нажмите Delete рядом с SampleProtectedArea в таблице Realms List.
Вам будет предложено подтвердить удаление. Нажмите Delete, чтобы продолжить.
Затем перейдите во вкладку Context. В списке Context List удалите контекст /protected/, который был связан с только что удаленной областью.
Опять же, вам нужно будет подтвердить удаление, нажав Delete.
Таким образом вы можете без последствий удалить любой контекст, они нам не понадобятся. Мы специально удалили контекст /protected/, поскольку в противном случае возникла бы ошибка (поскольку связанной с ним области больше нет, мы только что удалили ее во вкладке Security).
После этого нажмите зеленый значок Graceful Restart в правом верхнем углу консоли OpenLiteSpeed. Это перезапустит сервер OpenLiteSpeed, после чего внесенные вами изменения вступят в силу.
Сейчас сервер OpenLiteSpeed полностью настроен. Вы можете завершить настройку WordPress в своем браузере.
6: Завершение установки WordPress в браузере
Теперь сервер полностью готов, пора завершить установку WordPress.
Откройте в браузере эту ссылку:
http://server_domain_or_IP
Сначала вам будет предложено выбрать язык.
Далее вы попадете на главную страницу настройки. Выберите имя вашего сайта WordPress и имя пользователя (в целях безопасности простые, предсказуемые имена типа «admin» использовать не рекомендуется). Сложный пароль сгенерируется автоматически. Сохраните этот или выберите другой надежный пароль.
Введите свой адрес электронной почты и укажите, хотите ли вы, чтобы поисковые системы индексировали ваш сайт.
Когда все будет готово, нажмите кнопку Install WordPress. Вы попадете на страницу входа в систему.
Введя свои учетные данные, вы попадете в панель управления WordPress. Здесь вы можете начать вносить изменения: выбрать новую тему для вашего сайта и публиковать контент.
Заключение
Вы успешно установили и настроили WordPress на OpenLiteSpeed на сервере Ubuntu 18.04. Далее можно задать настройки постоянных ссылок для ваших записей (который можно найти в разделе Settings > Permalinks) или выбрать новую тему (в разделе Appearance > Themes). Если вы впервые используете WordPress, вы можете самостоятельно изучить интерфейс.
Чтобы добавить шифрование на свой сайт, вы можете настроить SSL. Подробности можно найти в этом мануале из официальной документации OpenLiteSpeed.