Сегодня WordPress является самой популярной системой управления контентом (CMS) и блог-платформой. Благодаря огромному количеству плагинов и шаблонов эта CMS отличается гибкостью настройки и позволяет настроить сайт согласно требованиям разработчика. WordPress может обслуживать самые различные сайты, от простого блога до полноценного e-commerce сайта.
Данное руководство поможет установить WordPress и настроить Apache для поддержки этой CMS на сервере Ubuntu 14.04.
Требования
Для выполнения инструкций понадобится:
- Не-root пользователь с привилегиями sudo (о создании такого пользователя можно прочесть здесь).
- Программный стек LAMP
1: Создание базы данных MySQL для WordPress
Сначала нужно подготовить MySQL. Создайте отдельную БД и пользователя для хранения данных WordPress.
Войдите в MySQL как пользователь root:
mysql -u root -p
Программа запросит root-пароль. После этого откроется командная строка MySQL.
Чтобы создать БД для WordPress, выполните следующую команду (в данном руководстве эта БД зовётся wordpress для простоты; выберите более описательное имя и укажите его в команде):
CREATE DATABASE wordpress;
Примечание: Все команды MySQL должны заканчиваться точкой с запятой.
После этого нужно создать пользователя для управления этой БД. В руководстве пользователь условно называется wordpressuser и использует пароль password. Эти условные данные крайне небезопасны, потому в реальной установке следует выбрать более надёжные и уникальные данные и указать их в следующей команде:
CREATE USER wordpressuser@localhost IDENTIFIED BY ‘password’;
Итак, теперь БД и пользователь готовы. Передайте пользователю права на БД:
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;
Теперь у пользователя есть доступ к базе данных. Обновите привилегии MySQL, чтобы изменения вступили в силу.
FLUSH PRIVILEGES;
Закройте командную строку MySQL:
exit
2: Загрузка WordPress
После этого нужно загрузить WordPress с сайта проекта.
Примечание: Команда WordPress всегда размещает актуальные версии системы по одной и той же ссылке.
Чтобы скачать пакет WordPress в домашний каталог, введите:
cd ~
wget http://wordpress.org/latest.tar.gz
В домашнем каталоге появится архив WordPress. Извлечь содержимое архива можно при помощи команды:
tar xzvf latest.tar.gz
В домашнем каталоге появится каталог wordpress.
Теперь нужно установить несколько дополнительных пакетов из репозитория Ubuntu, предварительно обновив список пакетов системы:
sudo apt-get update
sudo apt-get install php5-gd libssh2-php
Эти библиотеки отвечают за обработку изображений, поддержку плагинов и обновление сайта через SSH.
3: Настройка WordPress
В дальнейшем для настройки в основном будет использоваться интерфейс, но сначала нужно изменить некоторые параметры при помощи командной строки.
Откройте каталог WordPress:
cd ~/wordpress
По умолчанию WordPress предоставляет образец конфигурационного файла, который содержит основные параметры. Скопируйте его в новый файл:
cp wp-config-sample.php wp-config.php
Откройте его в текстовом редакторе:
nano wp-config.php
В этом файле нужно только указать учётные данные БД, созданной в первом разделе руководства.
Найдите параметры DB_NAME, DB_USER и DB_PASSWORD. Укажите имя БД, имя пользователя и пароль.
// ** MySQL settings – You can get this info from your web host ** //
/** The name of the database for WordPress */
define(‘DB_NAME’, ‘wordpress’);
/** MySQL database username */
define(‘DB_USER’, ‘wordpressuser’);
/** MySQL database password */
define(‘DB_PASSWORD’, ‘password’);
Сохраните и закройте файл.
4: Перемещение файлов
Теперь нужно переместить файлы WordPress в каталог document root (в нём хранятся все файлы сайта).
Команда rsync – пожалуй, самый простой способ сделать это. Она сохраняет права на файлы и отвечает за целостность данных.
Согласно руководству по установке LAMP в Ubuntu 14.04, root-каталог сайта находится в /var/www/html/. Переместите в него файлы WordPress:
sudo rsync -avP ~/wordpress/ /var/www/html/
Откройте root-каталог сайта:
cd /var/www/html
Теперь нужно изменить права на файлы.
Передайте все права не-root пользователю (с доступом к sudo), при помощи которого вы планируете работать с сайтом. Для этого можно использовать и текущий аккаунт, хотя некоторые предпочитают создавать отдельного пользователя.
В руководстве права будут переданы текущему пользователю по имени demo.
sudo chown -R demo:www-data *
Также нужно изменить права доступа к каталогу uploads, чтобы иметь возможность подгружать в него контент сайта.
Создайте каталог uploads вручную в каталоге wp-content в document root.
mkdir /var/www/html/wp-content/uploads
Теперь нужно передать веб-серверу права на запись в этом каталоге. Для этого нужно сделать владельцем каталога группу www-data:
sudo chown -R :www-data /var/www/html/wp-content/uploads
5: Веб-интерфейс WordPress
Завершить установку WordPress нужно при помощи веб-интерфейса.
Откройте браузер и перейдите по ссылке:
http://server_domain_name_or_IP
На экране появится начальная страница установки, которая предложит создать учетную запись администратора.
Введите информацию о сайте и учетной записи администратора. После этого нажмите на кнопку Install.
WordPress попросит подтвердить установку и предложит войти при помощи учётных данных администратора.
Предоставьте учётные данные, чтобы получить доступ к панели инструментов администратора WordPress.
6: Настройка «чистых» ссылок (опционально)
По умолчанию WordPress создаёт URL-ы динамически:
http://server_domain_name_or_IP/?p=1
Такие ссылки очень неудобны для посетителей и поисковых систем, потому их, как правило, заменяют «чистыми» ссылками, более простыми для восприятия.
Настройка Apache для поддержки перезаписи URL-адресов
Для начала нужно отредактировать файл виртуального хоста WordPress и настроить поддержку переопределения инструкций файлами .htaccess.
По умолчанию это файл 000-default.conf; в случае если вы создали другой конфигурационный файл, подкорректируйте команду:
sudo nano /etc/apache2/sites-available/000-default.conf
Измените значение ServerName и создайте раздел Directory, который разрешит переопределения.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName server_domain_name_or_IP
<Directory /var/www/html/>
AllowOverride All
</Directory>
. . .
Сохраните и закройте файл.
После этого нужно включить модуль rewrite:
sudo a2enmod rewrite
Затем перезапустите Apache:
sudo service apache2 restart
Файл .htaccess
Apache поддерживает переопределение инструкций файлами .htaccess. Теперь нужно создать сам файл в каталоге document root:
touch /var/www/html/.htaccess
На данный момент этот файл принадлежит текущему пользователю и группе, в которой он состоит, но должен принадлежать веб-серверу Apacheи его группе. Измените владельца файла:
sudo chown :www-data /var/www/html/.htaccess
Теперь можно настроить права доступа. WordPress может самостоятельно генерировать правила перезаписи; для этого ему нужны права на запись в этом файле. Тогда WordPress сможет автоматически добавлять и выполнять правила. В противном случае редактировать этот файл придется вручную.
Прежде чем передать WordPress права на запись в файле, нужно решить, что важнее: удобство или безопасность.
Если вы хотите, чтобы система WordPress автоматически обновляла файл с правилами перезаписи, передайте ей необходимые для этого права:
chmod 664 /var/www/html/.htaccess
Если вы хотите обновлять файл вручную, передайте веб-серверу права на чтение файла:
chmod 644 /var/www/html/.htaccess
Настройка «чистых» ссылок в WordPress
Откройте интерфейс администратора WordPress.
В левом меню найдите раздел Settings и выберите в нём Permalinks.
Здесь, на экране Permalink Settings, можно выбрать один из предварительно подготовленных вариантов настройки ссылок, а можно создать свою собственную настройку.
Сделав свой выбор, нажмите Save Changes. Это сгенерирует правила перезаписи ссылок и запишет их в подготовленный ранее файл .htaccess.
Если вы дали веб-серверу право на запись в файле .htaccess,экране появится сообщение:
Permalink structure updated.
Если же веб-сервер имеет только право на чтение файла .htaccess, вы получите правила перезаписи, которые нужно добавить в файл вручную.
Скопируйте правила и добавьте их в файл:
nano /var/www/html/.htaccess