Установка WordPress на LAMP в Ubuntu 16.04
LAMP Stack, Ubuntu | Комментировать запись
WordPress – это самая популярная в мире система управления контентом (CMS), которая позволяет быстро развернуть гибкий сайт или блог на MySQL и PHP.
WordPress идеально подходит для быстрого запуска сайта; после установки почти все задачи по управлению можно выполнить при помощи удобного интерфейса.
Данное руководство поможет установить WordPress на стек LAMP на сервере Ubuntu 16.04.
Требования
- Настроенный сервер Ubuntu 16.04.
- Пользователь с доступом к команде sudo; все команды этого руководства нужно выполнять в сессии этого пользователя, если не указано иное. О создании такого пользователя можно прочесть здесь.
- Предварительно установленный стек LAMP; инструкции по установке – по этой ссылке.
- TLS/SSL-сертификат; он необходим для шифрования данных WordPress. Если у вас есть доменное имя, получите сертификат Let’s Encrypt. Если у вас нет домена, можно создать самоподписанный сертификат
1: Создание базы данных и пользователя MySQL
Сначала нужно подготовить отдельную БД и пользователя MySQL для WordPress. WordPress использует MySQL для хранения и управления данными сайта.
Откройте сессию root пользователя MySQL:
mysql -u root -p
Команда запросит root пароль MySQL.
Сначала нужно создать БД для WordPress; в данном руководстве эта БД будет условно называться wordpress, но лучше выбрать более описательное имя. Итак, чтобы создать БД для WordPress, наберите:
CREATE DATABASE wordpress;
Примечание: Каждая команда MySQL должна заканчиваться символом точки с запятой.
Теперь нужно создать отдельного пользователя для новой БД. В целом использование индивидуальных БД и пользователей для разных сервисов очень полезно с точки зрения управления и безопасности. В руководстве пользователь условно называется wordpressuser.
Следующая команда создаст пользователя, установит пароль, и передаст пользователю права на новую БД.
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
Теперь WordPress может использовать индивидуальную БД и пользователя. Сбросьте привилегии, чтобы обновить настройки MySQL.
FLUSH PRIVILEGES;
Закройте MySQL:
EXIT;
2: Поддержка .htaccess и mod_rewrite
Теперь нужно внести поправки в настройки Apache. На данный момент файлы .htaccess не поддерживаются. WordPress и многие плагины этой системы широко используют функции файлов .htaccess.
Также нужно включить поддержку mod_rewrite для настройки постоянных ссылок WordPress.
Включение .htaccess
Откройте конфигурационный файл Apache:
sudo nano /etc/apache2/apache2.conf
Чтобы включить использование файлов .htaccess, нужно установить директиву AllowOverride в блоке Directory, указывающем на каталог document root. Добавьте директиву в конец блока:
. . .
<Directory /var/www/html/>
AllowOverride All
</Directory>
. . .
Сохраните и закройте файл.
Включение модуля rewrite
Чтобы включить модуль mod_rewrite, наберите:
sudo a2enmod rewrite
Обновление настроек
Прежде чем обновит настройки, проверьте синтаксис на наличие ошибок:
sudo apache2ctl configtest
Команда может вернуть такое сообщение:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Чтобы подавить первую строку сообщения, установите директиву ServerName в файле /etc/apache2/apache2.conf, указывающем на домен или IP-адрес. В целом это сообщение никак не влияет на производительность сайта; если команда возвращает строку Syntax OK, можно обновлять настройки.
Для этого нужно перезапустить Apache:
sudo systemctl restart apache2
3: Загрузка WordPress
Теперь сервер готов к установке WordPress. Из соображений безопасности рекомендуется устанавливать только последнюю версию WordPress.
Чтобы загрузить сжатый пакет WordPress, введите:
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
Распакуйте архив WordPress:
tar xzvf latest.tar.gz
Эти файлы нужно переместить в каталог document root. Но прежде нужно добавить фиктивный файл .htaccess и передать все права на него сервису WordPress. Чтобы создать файл и установить необходимые права, введите:
touch /tmp/wordpress/.htaccess
chmod 660 /tmp/wordpress/.htaccess
Затем нужно скопировать образец конфигурационного файла WordPress:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
Теперь можно скопировать файлы в каталог document root. Чтобы сохранить права на файлы, используйте флаг –a. Точка после исходного каталога указывает, что в этом каталоге нужно скопировать все файлы, включая скрытые файлы (например, только что созданный .htaccess)
sudo cp -a /tmp/wordpress/. /var/www/html
4: Настройка каталога WordPress
Прежде чем приступить к настройке WordPress в браузере, нужно настроить некоторые компоненты, хранящиеся в каталоге WordPress.
Права доступа
Для начала нужно установить разумные права доступа к файлам и права собственности. Обычный пользователь и веб-сервер должны иметь доступ и возможность настраивать определенные файлы и каталоги.
Передайте права на все файлы в каталоге document root текущему пользователю с доступом к sudo; в руководстве пользователь называется 8host. Передайте права ему и группе www-data:
sudo chown -R 8host:www-data /var/www/html
После этого нужно настроить setgid для каждого каталога в document root. Благодаря этому новые файлы, созданные в этих каталогах, смогут наследовать группу родительского каталога (в данном случае это www-data). Таким образом, при создании нового файла в каталоге document root веб-сервер по-прежнему будет иметь соответствующий доступ к нему.
sudo find /var/www/html -type d -exec chmod g+s {} \;
После этого нужно передать группе право на запись в каталоге wp-content; это нужно для того чтобы веб-интерфейс мог изменять темы и плагины.
sudo chmod g+w /var/www/html/wp-content
После этого нужно дать веб-серверу право на запись во всех файлах этих двух каталогов:
sudo chmod -R g+w /var/www/html/wp-content/themes
sudo chmod -R g+w /var/www/html/wp-content/plugins
Конфигурационный файл WordPress
Теперь нужно отредактировать конфигурационный файл 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:
nano /var/www/html/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');
Сохраните и закройте файл.
5: Веб-интерфейс WordPress
После настройки сервера можно завершить процесс установки WordPress в браузере.
http://server_domain_or_IP
Интерфейс предложит выбрать язык установки, после чего появится главная страница настройки. Укажите название сайта и имя пользователя для доступа к CMS. Система самостоятельно сгенерирует надёжный пароль.
Примечание: Использовать имя вроде «admin» крайне не рекомендуется.
Затем введите адрес электронной почты и настройте индексацию сайта в поисковых системах.
После этого появится страница входа. Укажите свои учётные данные, чтобы получить доступ к панели инструментов.
Заключение
Теперь система WordPress установлена и готова к работе. Настройте постоянные ссылки (Settings > Permalinks) или выберите новую тему для своего сайта (Appearance > Themes).
Tags: LAMP stack, Let's Encrypt, MySQL, SSL, TLS, Ubuntu 16.04, WordPress