Установка WordPress на Nginx на сервере FreeBSD 10.1

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

Данное руководство поможет установить WordPress на веб-сервер Nginx в FreeBSD 10.1. Nginx – это производительный веб-сервер, который может обрабатывать большое количество одновременных подключений. Nginx можно использовать в качестве базы для установки WordPress.

Требования

Для выполнения руководства нужно предварительно установить стек FEMP (FreeBSD, Nginx, MySQL, PHP).

Система FreeBSD предоставляет пакет WordPress при помощи команды pkg, однако он зависит от PHP версии 5.4, которая не поддерживается с сентября 2015. Потому WordPress нужно загрузить и установить с сайта проекта, используя PHP 5.6 для обработки динамического контента.

Установка PHP-расширений

Во время установки PHP на FreeBSD устанавливаются пакеты php56 и php56-mysql, необходимые для взаимодействия PHP и MySQL.

Это минимальная конфигурация, необходимая для использования PHP в качестве основы для многих приложений. В частности WordPress использует пакет php56-mysql; однако для реализации многих базовых функций WordPress необходимы дополнительные модули.

Их можно установить при помощи команды pkg.

sudo pkg install php56-xml php56-hash php56-gd php56-curl php56-tokenizer php56-zlib php56-zip

После завершения установки нужно обновить оболочку tcsh:

rehash

Все установленные только что пакеты – это расширения PHP. Перезапустите PHP-FPM:

sudo service php-fpm restart

После этого нужно настроить БД.

Создание и настройка базы данных MySQL

WordPress требуется БД SQL для хранения контента сайта и пользовательских данных. Ранее на сервер была установлена систем управления базами данных MySQL. Теперь нужно подготовить БД и установить к ней определённый уровень доступа.

Войдите в сессию mysql как пользователь root:

mysql -u root -p

По запросу введите root-пароль MySQL (установленный после запуска mysql_secure_installation). После этого откроется командная строка MySQL.

Теперь нужно создать БД для WordPress. В данном руководстве для простоты БД будет называться wordpress; выберите любое другое (желательно описательное) имя для этой БД.

CREATE DATABASE wordpress;

Примечание: Если эта команда вернула ошибку, убедитесь, что в конце команды стоит символ точки с запятой (;). Все команды SQL обязательно должны оканчиваться этим символом.

После этого нужно создать специально выделенного пользователя для этой БД.

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

В данном руководстве для простоты такой пользователь называется wordpressuser. Этот пользователь дожжен иметь возможность подключаться только с сервера.

CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';

Примечание: Замените password надёжным паролем.

Теперь два компонента MySQL, необходимые для работы WordPress, готовы, но они ещё не взаимодействуют. Передайте новому пользователю права доступа к БД.

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

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

FLUSH PRIVILEGES;

Закройте командную строку MySQL:

exit

Это вернёт стандартную сессию.

Загрузка и настройка WordPress

Теперь нужно загрузить последнюю версию WordPress с сайта проекта и установить её.

Очень важно всегда отслеживать актуальные версии WordPress, поскольку они содержат важные обновления безопасности. Для этого команда WordPress всегда упаковывает последнюю версию в архив /latest.tar.gz на сайте проекта. Загрузите этот архив при помощи утилиты fetch:

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

После загрузки архива нужно извлечь файлы и каталоги WordPress:

tar xzvf latest.tar.gz

Появится каталог по имени wordpress. Удалите архив .tar.gz и откройте этот каталог:

rm latest.tar.gz
cd wordpress

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

cp wp-config-sample.php wp-config.php

Откройте новый конфигурационный файл, чтобы указать учётные данные для доступа к БД MySQL.

vi wp-config.php

В этом файле нужно найти и изменить три значения, чтобы WordPress мог подключаться к MySQL. DB_NAME определяет имя БД MySQL, к которой нужно подключиться; DB_USER задаёт имя пользователя, а DB_PASSWORD – его пароль.

. . .
/** 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');
. . .

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

Теперь нужно скопировать установку WordPress в каталог /usr/local/www, в котором хранятся файлы сайта. Для этого используйте утилиту rsync:

sudo rsync -avP ~/wordpress /usr/local/www

После этого нужно изменить владельца WordPress, чтобы веб-сервер мог взаимодействовать с программой.

sudo chown -R www:www /usr/local/www/wordpress

Настройка Nginx

Откройте конфигурационный файл Nginx с правами sudo:

sudo vi /usr/local/etc/nginx/nginx.conf

На данный момент файл должен иметь такой вид (для удобства файл раскомментирован):

user  www;
worker_processes  2;
error_log /var/log/nginx/error.log info;
events {
worker_connections  1024;
}
http {
include       mime.types;
default_type  application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile        on;
keepalive_timeout  65;
server {
listen       80;
server_name  example.com www.example.com;
root /usr/local/www/nginx;
index index.php index.html index.htm;
location / {
try_files $uri/ $uri/ =404;
}
error_page      500 502 503 504  /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
}
}

В него нужно внести две поправки.

Для начала измените каталог document root, поскольку файлы WordPress теперь находятся в каталоге /usr/local/www/wordpress:

server {
. . .
root /usr/local/www/wordpress;
. . .
}

После этого нужно изменить директиву try_files в блоке location /. На данный момент Nginx ищет запрос как файл, и если веб-сервер не находит подходящий файл, он пытается найти каталог. Если же соответствующий файл или каталог не обнаружены, веб-сервер возвращает ошибку 404.

Это поведение нужно исправить, чтобы вместо ошибки 404 Nginx переписывал запрос в файл index.php. Запрос и аргументы будут передаваться как параметры запроса. Для этого директива try_files должна выглядеть так:

server {
. . .
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
. . .
}

После внесения изменений конфигурационный файл будет выглядеть так:

user  www;
worker_processes  2;
error_log /var/log/nginx/error.log info;
events {
worker_connections  1024;
}
http {
include       mime.types;
default_type  application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile        on;
keepalive_timeout  65;
server {
listen       80;
server_name  example.com www.example.com;
root /usr/local/www/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page      500 502 503 504  /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
}
}

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

Проверьте синтаксис конфигураций на наличие ошибок:

sudo nginx -t

Если в конфигурации ошибок не обнаружено, перезапустите Nginx, чтобы обновить настройки.

sudo service nginx restart

Веб-интерфейс WordPress

На серверной стороне установка WordPress полностью готова. Чтобы завершить установку, откройте браузер и перейдите по ссылке:

http://example.com

Сначала WordPress предложит выбрать язык установки.

После этого на экране появится начальная страница установки WordPress.

Укажите название сайта и выберите имя администратора. Также нужно будет выбрать и подтвердит пароль для сайта и указать адрес электронной почты. Затем нужно разрешить или запретить поисковым системам индексировать сайт.

После этого нажмите кнопку Install WordPress. Программа предложит предоставить только что выбранные учётные данные.

После этого на экране появится панель управления WordPress. Её можно использовать для размещения нового контента, настройки внешнего вида сайта, установки и настройки плагинов, и т.п.

Заключение

Теперь WordPress работает на основе программ Nginx, MySQL и PHP. Система WordPress очень производительна, позволяет обслуживать самый различный контент и выбирать его внешний вид. Ознакомьтесь с темами и плагинами WordPress.

Tags: , , ,

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