Установка Wordpress на Ubuntu 14.04

Введение

На данный момент WordPress является самой популярной CMS (системой управления контентом) в Интернете. С ее помощью можно с легкостью создавать гибкие блоги и вебсайты на сервере MySQL с PHP-обработкой. Пользуясь огромной популярностью, WordPress это отличный способ быстро настроить и запустить вебсайт.

В этой статье мы рассмотрим установку экземпляра WordPress с веб-сервером Apache на Ubuntu 14.04. Необходимые условия

Прежде чем приступать, вам необходимо выполнить на своем сервере ряд шагов. Поскольку мы будем выполнять эти шаги в качестве пользователя non-root с привилегиями sudo, у вас должен иметься такой пользователь. О том, как создать пользователя с привилегиями sudo, написано в шагах 1-4 нашего руководства по начальной настройке сервера на базе Ubuntu 14.04.

Также вам понадобится LAMP (Linux, Apache, MySQL и PHP), установленный на вашем экземпляре VPS (виртуальный выделенный сервер). Если эти компоненты у вас пока не установлены и не настроены, ознакомьтесь с руководством по установке LAMP на Ubuntu 14.04.

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

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

Наш первый шаг является подготовительным. Для управления и хранения информации о сайтах и пользователях WordPress использует реляционную базу данных.

У нас установлен MySQL, который и выполняет эту функцию, но нам нужно создать базу данных и пользователя, с которыми будет работать WordPress.

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

mysql -u root -p

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

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

CREATE DATABASE wordpress;

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

Затем мы создадим отдельный пользовательский аккаунт MySQL, который мы будем использовать исключительно для работы с нашей новой базой данных. С точки зрения вопросов управления и безопасности создание баз данных и аккаунтов с единственной функцией является отличным вариантом.

Я назову новый аккаунт wordpressuser и задам для него следующий пароль: password. Вы можете дать пользователю любое имя на ваше усмотрение и, конечно, и задать другой пароль. Пользователь создается при помощи следующей команды:

CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';

На данном этапе у нас есть база данных и пользовательский аккаунт. И база данных, и аккаунт созданы исключительно для WordPress. Но между двумя этими компонентами пока нет взаимосвязи. У пользователя нет доступа к базе данных.

Давайте предоставим нашему пользовательскому аккаунту доступ к нашей базе данных при помощи следующей команды:

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

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

FLUSH PRIVILEGES;

Готово. Теперь, чтобы выйти из окна командной строки MySQL, введите:

exit

Теперь мы вернулись к нашей обычной командой строке.

Шаг 2 — Загрузка WordPress

Теперь мы загрузим файлы WordPress с вебсайта этой программы.

К счастью, команда разработчиков WordPress всегда размещает последнюю стабильную версию своей программы на одном и том же URL, поэтому чтобы получить последнюю на данный момент версию WordPress, мы вводим следующее:

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

В ваш домашний каталог загрузится сжатый файл, который содержит заархивированные каталоги файлов WordPress.

При помощи следующей команды мы можем извлечь файлы для восстановления нужного нам каталога 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 , чтобы WordPress правильно подключился к созданной нами базе данных и опознал ее.

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

// ** Настройки MySQL – Вы можете взять эту информацию у своего веб-хоста ** //
/** Имя базы данных для WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

Это единственные значения, которые необходимо изменить. После внесения изменений сохраните и закройте файл.

Шаг 4 — Копирование файлов в корень документа

Теперь, когда мы конфигурировали наше приложение, нам нужно скопировать его в корень документа Apache, где он будет предоставлен посетителям нашего вебсайта.

Один из самых простых и надежных способов переноса файлов из каталога в каталог - при помощи команды rsync. При использовании такого способа сохраняются разрешения и поддерживается целостность данных.

В руководстве по Ubuntu 14.04 LAMP корень документа расположен по адресу: /var/www/html/. Чтобы перенести туда наши файлы WordPress, введите:

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

В корень документа будут безопасно скорирован весь контент из распакованного вами каталога. Теперь перейдите в корень документа, чтобы внести завершающие изменения в разрешения.

cd /var/www/html

Для повышения уровня безопасности вам нужно будет изменить владельца ваших файлов. Мы хотим предоставить права владения обычному пользователю non-root (с привилегиями sudo), через которого вы планируете взаимодействовать со своим сайтом. Это может быть обычный пользователь, но вы также можете создать и дополнительного пользователя для этой цели. Решать вам.

В рамках этого руководства мы будем использовать тот же аккаунт, который мы создали во время нашей начальной настройки сервера и назвали demo. Через этот аккаунт я выполняю все действия, описанные в этом руководстве.

Групповое право владения мы предоставим процессу веб-сервера, www-data. Это позволит Apache взаимодействовать, при необходимости, с контентом.

Чтобы с легкостью передать эти права владения, введите:

sudo chown -R demo:www-data *

Это настроит необходимые нам свойства прав доступа.

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

Сначала давайте вручную создадим каталог uploads в рамках каталога wp-content в корне нашего документа. Это будет родительский каталог нашего контента:

mkdir /var/www/html/wp-content/uploads

Теперь у нас есть каталог для размещения загруженных файлов. Но разрешения по-прежнему нас ограничивают. Нам нужно разрешить веб-серверу самому вносить записи в этот каталог. Для этого нам нужно передать нашему веб-серверу право группового владения этом каталогом:

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

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

Шаг 5 — Завершение установки через веб-интерфейс

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

В своем веб-браузере перейдите к доменному имени или публичному IP-адресу своего сервера:

http://server_domain_name_or_IP

Вы увидите страницу начальной конфигурации WordPress, на которой вы создадите начальную учетную запись администратора:

Поля на скриншоте: Имя сайта, Имя пользователя, Пароль (ввести дважды), Электронная почта, Конфиденциальность (Разрешить поисковым системам индексировать этот сайт)

Ввведите информацию, касающуюся вашего сайта и создаваемой вами учетной записи администратора. По завершении нажмите на клавишу «Установить WordPress» в низу страницы. WordPress подтвердит установку и затем пригласит вас войти в созданную вами учетную запись:

Нажмите на клавишу в низу страницы и введите следующую информацию:

Вы увидите интерфейс WordPress:

Шаг 6 (опционально) — Конфигурация постоянных ссылок для WordPress

WordPress по умолчанию создает динамические URL, которые выглядят примерно так:

http://server_domain_name_or_IP/?p=1

Поскольку это не самый удобный вариант интерфейса для пользователей и поисковых систем, большинство пользователей изменяют его. WordPress способен создавать «красивые» постоянные ссылки, которые приводят URL к более визуально привлекальному формату.

Но чтобы это было совместимо с Apache на Ubuntu 14.04, нам нужно выполнить некоторые настройки.

Внесение изменений Apache с целью разрешить перезапись URL

Во-первых, нам нужно изменить виртуальный хост-файл Apache таким образом, чтобы WordPress мог делать перезаписи .htaccess. Для этого необходимо отредактировать виртуальный хост-файл.

По умолчанию виртуальный хост-файл это 000-default.conf, но у вас это может быть другой файл, если вы создали другой файл конфигурации:

sudo nano /etc/apache2/sites-available/000-default.conf

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

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ServerName server_domain_name_or_IP
    <Directory /var/www/html/>
        AllowOverride All
    </Directory>
    . . .

По завершении сохраните и закройте файл.

Затем нам нужно активировать модуль перезаписи, который позволит вам изменять URL. Для этого введите:

sudo a2enmod rewrite

После внесения этих изменений перезапустите Apache:

sudo service apache2 restart

Создание файла .htaccess

Теперь, когда мы конфигурировали Apache чтобы разрешить перезапись через файлы .htaccess, нам нужно создать фактический файл.

Вам нужно поместить этой файл в корень документа. Для создания пустого файла введите следующее:

touch /var/www/html/.htaccess

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

sudo chown :www-data /var/www/html/.htaccess

Теперь право владения этим файлом настроено должным образом.

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

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

chmod 664 /var/www/html/.htaccess

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

chmod 644 /var/www/html/.htaccess

Изменение настроек постоянных ссылок в WordPress

Если вы внесли все необходимые изменения на стороне сервера, вы можете с легкостью изменить настройки постоянных ссылок через административный интерфейс WordPress. Слева, в меню Settings, выберите Permalinks:

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

Определившись с выбором, нажмите на «Сохранить изменения», чтобы сгенерировать правила перезаписи.

Если вы предоставили веб-серверу право внесения записей в файл .htaccess, вы увидите следующее сообщение:

Текст на скриншоте: Настройки постоянных ссылок. Структура постоянных ссылок обновлена. Дальше текст обрезан справа – прим.пер.

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

Скопируйте строки, предоставленные вами WordPress, и затем отредактируйте файл на своем сервере:

nano /var/www/html/.htaccess

Функциональность при этом не пострадает.

Заключение

Теперь на вашем Ubuntu 14.04 VPS имеется настроенный экземпляр WordPress. Ниже приведены некоторые варианты ваших последующих действий:

  • конфигурация безопасных обновлений и установок для WordPress
  • использование WPScan для обнаружения уязвимых плагинов и тем
  • управление WordPress через командную строку
  • настройка множественных сайтов WordPress (без режима «мультисайт»)
  • настройка множественных сайтов WordPress с режимом «мультисайт»

Комментарии

3
Александр Медведев, 1 год назад
0

Вы считаете что для человека знающего linux будет проблематично установить wordpress?

Павел, 1 год назад
0

если человек знает линукс не на уровне сисадмина, то проблемы будут

Каменский Геннадий, 5 месяцев назад
1

Работал в такой связке, но мне кажется, что она уже устарела. Тем более все тесты показывают, что есть более "оптимизированные по-умолчанию" связки. У меня сайт на WP как-то быстрее начал работать после перехода на NGINX+HHVM+XtraDB даже без ручной оптимизации.