Поиск по сайту:

Как установить WordPress на Ubuntu 14.04


Введение

В настоящее время WordPress является самой популярной CMS (системой управления контентом) в Интернете. Это позволяет вам легко настраивать гибкие блоги и веб-сайты поверх серверной части MySQL с обработкой PHP. WordPress получил невероятное распространение и является отличным выбором для быстрого запуска веб-сайта.

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

Предпосылки

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

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

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

Когда вы закончите с этими шагами, вы можете продолжить работу с этим руководством.

Шаг первый — создайте базу данных MySQL и пользователя для WordPress

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

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

Чтобы начать работу, войдите в корневую (административную) учетную запись MySQL, выполнив следующую команду:

mysql -u root -p

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

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

<пред>

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

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

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

<пред>

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

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

<пред>

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

FLUSH PRIVILEGES;

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

exit

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

Шаг второй — скачайте 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.

Шаг третий — настроить WordPress

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

Начните с перехода в каталог WordPress, который вы только что распаковали:

cd ~/wordpress

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

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

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

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

curl -s https://api.wordpress.org/secret-key/1.1/salt/

Вы получите уникальные значения, которые выглядят примерно так:

Предупреждение! Важно каждый раз запрашивать уникальные значения. НЕ копируйте значения, показанные ниже!

Output
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&%');

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

Далее открываем файл конфигурации в текстовом редакторе:

nano 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');

. . .

После этого единственные изменения, которые нам нужно внести, — это параметры, которые содержат информацию о нашей базе данных.

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

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

<пред>

/** Имя пользователя базы данных MySQL */

/** Пароль базы данных MySQL */

Это единственные значения, которые вам нужно изменить.

Когда вы закончите, сохраните и закройте файл.

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

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

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

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

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

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

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

cd /var/www/html

Вам нужно будет изменить владельца наших файлов для повышения безопасности.

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

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

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

Мы можем быстро присвоить эти значения владения, набрав:

<пред>

Это установит свойства собственности, которые мы ищем.

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

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

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

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

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

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

Шаг пятый — полная установка через веб-интерфейс

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

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

<пред>

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

Заполните информацию о сайте и учетной записи администратора, которую вы хотите создать. Когда вы закончите, нажмите кнопку «Установить» внизу.

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

Нажмите кнопку внизу, а затем заполните данные своей учетной записи:

Вам будет представлен интерфейс WordPress:

Шаг шестой (необязательно) — Настройте красивые постоянные ссылки для WordPress

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

<пред>

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

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

Изменение Apache для разрешения перезаписи URL

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

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

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

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

<пред>

Когда вы закончите, сохраните и закройте файл.

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

С левой стороны, в меню Настройки, вы можете выбрать Постоянные ссылки:

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

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

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

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

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

nano /var/www/html/.htaccess

Это должно дать вам ту же функциональность.

Заключение

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

  • Настройка безопасных обновлений и установок для WordPress
  • Используйте WPScan для проверки уязвимых плагинов и тем
  • Управление WordPress из командной строки
  • Настройка нескольких сайтов WordPress (не многосайтовых)
  • Настройка нескольких сайтов WordPress с мультисайтом