Установка WordPress+Nginx на Ubuntu 14.04

Published by 7 Comments

Вступление

WordPress — самая популярная CMS (система управления контентом), позволяющая без труда запустить сайт или блог и управлять его контентом при помощи простого и понятного интерфейса.

В данном руководстве речь пойдет об установке WordPress на сервер Ubuntu 14.04. В качестве веб-сервера будет использован Nginx — мощный и эффективный веб-сервер, широко распространенный благодаря своей производительности.

Предварительные требования

Прежде чем приступить к инструкциям данного руководства, нужно выполнить некоторые процедуры.

Во-первых, понадобится пользователь (не root) с привилегиями sudo. Чтобы создать такого пользователя, выполните шаги 1-4 руководства «Начальная настройка сервера Ubuntu 14.04«.

Кроме того, на сервер должен быть установлен и настроен LEMP stack (система Linux, веб-сервер Nginx, база данных MySQL и PHP). Чтобы получить информацию об установке необходимых компонентов, следуйте руководству «Установка LEMP stack на Ubuntu 14.04«.

Выполнив все предварительные действия, приступайте к выполнению данного руководства.

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

Первое, что нужно сделать для запуска WordPress — подготовить базу данных.

На данный момент на сервере установлена база данных MySQL, но базы данных для информации WordPress пока еще нет. Кроме того, необходимо создать учетную запись, которую WordPress сможет использовать для получения доступа к БД.

Для начала нужно открыть интерактивную сессию с помощью учетной записи администратора MySQL:

mysql -u root -p

Будет запрошен пароль, указанный для root-записи MySQL при установке программного обеспечения. Появится командная строка MySQL.

Теперь нужно создать отдельную базу данных, использовать которую будет исключительно WordPress. Название БД не имеет значения, но, вероятно, ее имя должно иметь отношение к проекту, чтоб ее можно было легко распознать. В этом руководстве БД называется wordpress:

CREATE DATABASE wordpress;

Обратите внимание на символ точки с запятой (;) в конце предложения MySQL. Каждое выражение MySQL должно заканчиваться таким символом, потому при возникновении проблем проверьте его наличие в каждой строке.

Теперь БД создана и можно приступить к созданию учетной записи. Затем нужно будет передать управление базой данных этому новому пользователю, чтобы приложение WP могло с ней взаимодействовать. Такой подход (создание индивидуальной базы данных и пользователя для каждого приложения) помогает держать все хранящиеся на MySQL данные отдельно, что очень важно  для управления безопасностью и данными.

Для удобства в данном руководстве именем пользователя будет wordpressuser, его паролем — password. Конечно, создавая такого пользователя, стоит выбрать более сложные имя и пароль:

CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';

Теперь, когда БД и пользователь созданы, нужно установить связь между ними — сказать MySQL, что новый пользователь может получать доступ к БД и управлять ей. Для этого используйте команду:

GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;

Теперь нужно сбросить привилегии на диск, чтобы текущий экземпляр MySQL узнал об изменениях:

FLUSH PRIVILEGES;

Закройте строку MySQL:

exit

Это вернет командную строку.

2: Загрузка WordPress на сервер

Следующее, что нужно сделать — это загрузить WordPress на сервер, что можно сделать с помощью сайта проекта.

Последней стабильной версии приложения всегда задается один и тот же URL, что несколько облегчает задачу. Итак, загрузите файл в домашний каталог пользователя:

cd ~
wget http://wordpress.org/latest.tar.gz

Файлы приложения были загружены в виде сжатой, заархивированной структуры каталогов, которая хранится в файле под названием latest.tar.gz. Чтобы извлечь содержимое, наберите:

tar xzvf latest.tar.gz

Это действие создаст каталог под названием wordpress, который содержит все файлы.

Теперь нужно загрузить некоторые дополнительные компоненты, которые могут понадобиться для работы WordPress. Их можно получить прямо из репозиториев программного обеспечения Ubuntu с помощью apt:

sudo apt-get update
sudo apt-get install php5-gd libssh2-php

Данные два пакета позволяют работать с изображениями и удалять/обновлять плагины и компоненты по SSH соответственно.

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

Теперь установленный WordPress нуждается в настройке.

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

cd ~/wordpress

Внутри данного каталога находится образец конфигурационного файла под названием wp-config-sample.php. Большинство конфигураций этого файла подходят, поэтому их можно скопировать и использовать в качестве основы конфигурационного файла:

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: Создание копии файлов

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

Для данной процедуры используется утилита rsync, которая имеет ряд преимуществ, а именно: сохраняет привилегии и права собственности, а также обеспечивает целостность данных.

root документа nginx на Ubuntu 14.04  по умолчанию находится в /usr/share/nginx/html/.

Тем не менее, данный root нужно перенести в /var/www/html/, чтобы избежать изменения расположения каталога, которым управляет пакет Nginx, но об этом чуть позже.

Чтобы создать новый root-каталог документа, наберите:

sudo mkdir -p /var/www/html

Теперь скопируйте в него файлы:

sudo rsync -avP ~/wordpress/ /var/www/html/

Это рекурсивно скопирует содержимое каталога ~/wordpress в root документа.

Теперь перейдите в root документа и внесите некоторые изменения в привилегии:

cd /var/www/html/

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

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

nginx работает под www-data. Для пользовательской части введите имя учетной записи пользователя. В данном примере используется учетная запись под названием demo:

sudo chown -R demo:www-data *

Эта строка передаст файлам необходимые привилегии.

На данном этапе нужно создать новый каталог для пользовательских закачек:

mkdir wp-content/uploads

Новый пока что не принадлежит группе www-data. Исправьте это:

sudo chown -R :www-data wp-content/uploads

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

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

Блок серверных настроек nginx по умолчанию можно использовать как основу для новых конфигураций. Скопируйте его:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/wordpress

Откройте новый файл и внесите некоторые изменения:

sudo nano /etc/nginx/sites-available/wordpress

А именно:

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/html;
index index.php index.php index.html index.htm;
server_name your_domain.com;
location / {
# try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}

Вот краткий список изменений, которые необходимо внести:

  • изменить значение директивы root и указать на /var/www/html.
  • изменить параметр index, чтобы файл index.phpраньше остальных был найден .
  • изменить значение директивы server_name, указав домен или IP сервера.
  • отредактировать try_files в разделе location/, чтобы иметь возможность отправлять запросы PHP.

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

Чтобы активировать новый файл, нужно связать его с каталогом sites-enabled. Это делается так:

sudo ln -s /etc/nginx/sites-available/wordpress/ /etc/nginx/sites-enabled/

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

sudo rm /etc/nginx/sites-enabled/default

Теперь перезапустите веб-сервер и PHP:

sudo service nginx restart
sudo service php5-fpm restart

6: Завершение инсталляции с помощью веб-интерфейса

Для завершения инсталляции WordPress используйте веб-браузер.

Направьте его на домен или IP сервера:

http://домен_сервера.com

Если браузер возвращает старую страницу по умолчанию nginx, нужно обновить страницу без кэша.

Появится приветственная страница WordPress. Выберите параметры (имя сайта, имя пользователя, пароль, и email), а затем нажмите кнопку Install WordPress.

Войдите с помощью созданной только что учетной записи.

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

Итоги

Теперь ​​WordPress установлен и использует веб-сервер Nginx на Ubuntu 14.04. WordPress — довольно гибкая платформа, которую можно использовать для настройки сайта. Поэкспериментируйте с некоторыми плагинами, темами и т.д., чтобы выбрать наиболее подходящие.

Tags: , , , , , ,

Комментарии (7)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>