Установка WordPress на стек LAMP 

WordPress — это популярная система управления контентом (CMS) с открытым исходным кодом для создания сайтов и блогов. Она используется для обслуживания 63% сайтов, работающих через CMS; в целом сайты, которые обслуживаются WordPress, составляют 36% от всех сайтов, которые сейчас находятся в сети.

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

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

В этом туториале мы будем использовать стек LAMP (Linux, Apache, MySQL и PHP), это один из вариантов архитектуры сервера, который поддерживает WordPress за счет операционной системы Linux, веб-сервера Apache, базы данных MySQL и языка программирования PHP. Мы установим и настроим WordPress через LAMP на сервере Linux Ubuntu.

Требования

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

  • Настройте сервер, следуя этому мануалу, и убедитесь, что у вас есть пользователь sudo.
  • Установите стек LAMP с помощью этого мануала.
  • Обеспечьте безопасность сайта: WordPress принимает пользовательский ввод и сохраняет данные, поэтому важно обеспечить высокий уровень безопасности. TLS/SSL — это технология, которая позволяет шифровать трафик на сайте, чтобы ваше соединение с пользователями было безопасным. Вот два варианта:
    • Если у вас есть домен, вы можете защитить свой сайт с помощью Let’s Encrypt, который предоставляет бесплатные доверенные сертификаты. Чтобы его настроить, выполните этот туториал.
    • Если у вас нет домена и вы используете эту конфигурацию только для тестирования или практики, вы можете использовать самоподписанный сертификат. Это обеспечит тот же тип шифрования, но без проверки домена. Следуйте этому мануалу, чтобы настроить его.

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

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

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

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

mysql -u root -p

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

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

sudo mysql -u root

Когда откроется командная строка MySQL, вы можете обновить пароль пользователя root. Здесь замените new_password на надежный пароль:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

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

mysql -u root -p

Мы можем создать индивидуальную базу данных для управления WordPress. У нас она будет условно называться wordpress, а вы можете выбрать любое название. Создайте БД для WordPress с помощью следующей команды:

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

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

Мы создадим эту учетную запись, установим пароль и предоставим доступ к созданной нами БД. Чтобы сделать это, выполните следующую команду. Не забудьте указать надежный пароль:

CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

Затем сообщите БД, что пользователю wordpressuser должен быть предоставлен полный доступ к ней:

GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';

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

FLUSH PRIVILEGES;

Выйдите из MySQL, выполнив следующую команду:

EXIT;

На следующем этапе мы заложим основу для плагинов WordPress, загрузив расширения PHP для нашего сервера.

2: Установка дополнительных расширений PHP

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

Теперь мы загрузим и установим несколько популярных расширений PHP для работы с WordPress, выполнив следующие команды:

sudo apt update
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

Это будет основой для установки дополнительных плагинов на наш сайт WordPress.

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

Нам нужно будет перезапустить Apache, чтобы загрузить эти новые расширения. В следующем разделе мы будем проводить дополнительную настройку Apache, поэтому с перезагрузкой можно подождать. Конечно, чтобы завершить процесс установки расширений PHP, можно перезапустить сервер сейчас.

sudo systemctl restart apache2

3: Настройка .htaccess

Далее мы внесем несколько небольших изменений в конфигурацию Apache. Исходя из предыдущих туториалов, у вас должен быть файл конфигурации в директории /etc/apache2/sites-available/.

В этом гайде мы используем путь /etc/apache2/sites-available/wordpress.conf в качестве примера, но вы должны заменить его вашим путем, если он отличается. Кроме того, мы будем использовать /var/www/wordpress в качестве root каталога для установки WordPress. Вы должны использовать root директорию, указанную в вашей конфигурации. Если вы следовали нашему туториалу по LAMP, то в обоих случаях вместо wordpress может быть ваш домен.

Примечание: возможно, вы используете конфигурацию по умолчанию 000-default.conf (/var/www/html в качестве root каталога сайта). Это подходит для размещения только одного сайта на этом сервере. Если вы планируете размещать несколько сайтов, то лучше разбить конфигурацию на логические блоки, по одному файлу на сайт.

Когда мы определили пути, можно перейти к работе с .htaccess.

Включение переопределения .htaccess

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

Откройте файл конфигурации Apache вашего сайта с помощью текстового редактора, например nano:

sudo nano /etc/apache2/sites-available/wordpress.conf

Чтобы разрешить использование файлов .htaccess, нам нужно установить директиву AllowOverride внутри Directory block, указывающую на корневой каталог документов (document root). Добавьте следующий блок текста в VirtualHost block в файл (убедитесь, что используете правильный root каталог веб-сервера):

<Directory /var/www/wordpress/>
AllowOverride All
</Directory>

Когда закончите редактирование, сохраните и закройте файл. В nano нажмите CTRL и X, затем Y и ENTER.

Включение модуля mod_rewrite

Далее необходимо включить mod_rewrite, чтобы использовать функцию пермалинков WordPress:

sudo a2enmod rewrite

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

http://example.com/2012/post-name/
http://example.com/2012/12/30/post-name

Команда a2enmod вызывает скрипт, который включает указанный модуль в конфигурации Apache.

Активация изменений

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

sudo apache2ctl configtest

Вы получите следующий вывод:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Если вы хотите убрать верхнюю строку, просто добавьте директиву ServerName в ваш основной (глобальный) файл конфигурации Apache в /etc/apache2/apache2.conf. ServerName может быть доменом вашего сервера или IP-адресом. Но это всего лишь сообщение, которое не влияет на функциональность вашего сайта. Вы можете продолжить, если в выводе Syntax OK.

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

sudo systemctl restart apache2

Далее мы загрузим и настроим сам WordPress.

4: Загрузка WordPress

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

Перейдите в записываемый каталог (мы рекомендуем временный, например, /tmp) и загрузите сжатый релиз:

cd /tmp
curl -O https://wordpress.org/latest.tar.gz

Распакуйте сжатый файл, чтобы создать структуру каталогов WordPress:

tar xzvf latest.tar.gz

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

Чтобы создать файл, введите следующую команду:

touch /tmp/wordpress/.htaccess

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

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Создайте каталог upgrade, чтобы WordPress не столкнулся с проблемами доступа, когда будет пытаться выполнить это самостоятельно после апдейта программного обеспечения:

mkdir /tmp/wordpress/wp-content/upgrade

Теперь мы можем скопировать все содержимое каталога в корневой каталог документов. Мы используем точку в конце исходной директории, чтобы указать, что нужно скопировать все содержимое, включая скрытые файлы (например, созданный только что .htaccess):

sudo cp -a /tmp/wordpress/. /var/www/wordpress

Обязательно замените /var/www/wordpress именем каталога, который вы используете на своем сервере.

5: Настройка каталога WordPress

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

Настройка прав доступа и разрешений

Один из важных этапов установки WordPress — это настройка прав доступа к файлам.

Сначала нужно предоставить права доступа на все файлы пользователю и группе www-data. Это пользователь, под которым работает веб-сервер Apache. Apache должен иметь возможность читать и записывать файлы WordPress для обслуживания сайта и выполнения автоматических обновлений.

Для обновления прав доступа выполните команду chown в терминале и укажите соответствующий каталог:

sudo chown -R www-data:www-data /var/www/wordpress

Затем выполните две команды find, чтобы установить правильные разрешения на директории и файлы WordPress:

sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

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

Настройка WordPress

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

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

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

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

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

Внимание! Для безопасности вашей установки важно каждый раз запрашивать уникальные значения. НЕ копируйте приведенный ниже блок в свой файл!

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

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

Затем откройте файл WordPress:

sudo nano /var/www/wordpress/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');
. . .

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

Ещё одно изменение, которое нам нужно внести, — это установить метод, который WordPress должен использовать для записи в файловую систему. Поскольку мы дали веб-серверу разрешение записывать туда, куда ему нужно, мы можем установить метод файловой системы на “direct” (прямой). Если не установить этот параметр при нашей текущей настройке, WordPress будет запрашивать учетные данные FTP при выполнении некоторых действий.

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

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

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
. . .

define('FS_METHOD', 'direct');

Сохраните и закройте файл, когда закончите.

6: Завершение установки через веб-интерфейс

После настройки сервера завершим установку через веб-интерфейс.

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

https://server_domain_or_IP

Выберите язык, который вы хотите использовать:

Далее вы попадете на главную страницу настройки.

Выберите название для вашего сайта WordPress и имя пользователя. В целях безопасности рекомендуется выбрать что-то уникальное и избегать распространенных имен пользователей, таких как “admin”. Надежный пароль генерируется автоматически. Сохраните этот или выберите другой пароль.

Введите свой имейл и укажите, хотите ли вы запретить поисковым системам индексировать ваш сайт:

Далее вы попадете на страницу, которая предложит вам войти в систему:

После входа в систему вы попадете в панель администратора WordPress:

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

Подводим итоги

Отлично, WordPress установлен и готов к работе!

На этом этапе вы можете сделать следующее:

  • Выберите настройки пермалинков для постов WordPress, которые можно найти в разделе Settings > Permalinks.
  • Измените тему в Appearance > Themes.
  • Установите новые плагины для расширения функциональности сайта в разделе Plugins > Add New.
  • Если вы планируете сотрудничать с другими пользователями, вы можете их добавить в разделе Users > Add new.
Tags: ,

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