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

Вступление

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

В этом руководстве мы сконцентрируемся на настройке экземпляра WordPress в стеке LEMP (Linux, Nginx, MySQL и PHP) на сервере Ubuntu 18.04.

Предпосылки

Для завершения этого урока вам понадобится доступ к серверу Ubuntu 18.04.

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

  • Create a sudo user on your server: мы будем выполнять шаги этого руководства, используя пользователя без полномочий root с правамиsudo. Вы можете создать пользователя с привилегиямиsudo, следуя нашемуUbuntu 18.04 initial server setup guide.

  • Install a LEMP stack: WordPress потребуется веб-сервер, база данных и PHP для правильной работы. Настройка стека LEMP (Linux, Nginx, MySQL и PHP) удовлетворяет всем этим требованиям. Следуйтеthis guide, чтобы установить и настроить это программное обеспечение.

  • Secure your site with SSL: WordPress обслуживает динамический контент и обрабатывает аутентификацию и авторизацию пользователей. TLS/SSL is the technology that allows you to encrypt the traffic from your site so that your connection is secure. Способ настройки SSL будет зависеть от того, есть ли у вас доменное имя для вашего сайта.

    • If you have a domain name… самый простой способ защитить ваш сайт - это Let's Encrypt, который предоставляет бесплатные доверенные сертификаты. Следуйте нашимLet’s Encrypt guide for Nginx, чтобы настроить это.

    • If you do not have a domain…, и вы используете эту конфигурацию только для тестирования или личного использования, вместо этого вы можете использовать самозаверяющий сертификат. Это обеспечивает тот же тип шифрования, но без проверки домена. Следуйте нашимself-signed SSL guide for Nginx, чтобы настроить.

Когда вы закончите шаги настройки, войдите на свой сервер как ваш пользовательsudo и продолжите ниже.

[[step-1 -—- created-a-mysql-database-and-user-for-wordpress]] == Шаг 1. Создание базы данных MySQL и пользователя для WordPress

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

Для начала войдите в учетную запись root (административную) MySQL. Если MySQL настроен на использование плагина аутентификацииauth_socket (по умолчанию), вы можете войти в административную учетную запись MySQL, используяsudo:

sudo mysql

Если вы изменили метод аутентификации для использования пароля для корневой учетной записи MySQL, используйте вместо этого следующий формат:

mysql -u root -p

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

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

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

[.note] #Note: Каждый оператор MySQL должен заканчиваться точкой с запятой (;). Убедитесь, что он присутствует, если у вас возникли проблемы.
#

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

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

GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

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

FLUSH PRIVILEGES;

Выйдите из MySQL, набрав:

EXIT;

Сеанс MySQL завершится, и вы вернетесь в обычную оболочку Linux.

[[step-2 -—- install-additional-php-extensions]] == Шаг 2 - Установка дополнительных расширений PHP

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

Мы можем скачать и установить некоторые из самых популярных расширений PHP для использования с WordPress, набрав:

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

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

Когда вы закончите установку расширений, перезапустите процесс PHP-FPM, чтобы работающий процессор PHP мог использовать недавно установленные функции:

sudo systemctl restart php7.2-fpm

Теперь у нас есть все необходимые расширения PHP, установленные на сервере.

[[step-3 -—- configuring-nginx]] == Шаг 3 - Настройка Nginx

Далее мы сделаем несколько небольших изменений в файлах блоков нашего сервера Nginx. Исходя из необходимых руководств, у вас должен быть файл конфигурации для вашего сайта в каталоге/etc/nginx/sites-available/, настроенный для ответа на доменное имя или IP-адрес вашего сервера и защищенный сертификатом TLS / SSL. В качестве примера мы будем использовать/etc/apache2/sites-available/wordpress, но вы должны заменить путь к вашему файлу конфигурации, где это необходимо.

Кроме того, мы будем использовать/var/www/wordpress в качестве корневого каталога нашей установки WordPress. Вы должны использовать веб-корень, указанный в вашей собственной конфигурации.

[.note] #Note: Возможно, вы используете конфигурацию по умолчанию/etc/nginx/sites-available/default/var/www/html в качестве корневого веб-сайта). Это нормально, если вы собираетесь разместить на этом сервере только один веб-сайт. В противном случае лучше всего разбить необходимую конфигурацию на логические блоки, по одному файлу на сайт.
#

Откройте файл блока сервера вашего сайта с правамиsudo, чтобы начать:

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

Внутри основного блокаserver нам нужно добавить несколько блоковlocation.

Начните с создания блоков местоположения с точным соответствием для запросов к/favicon.ico и/robots.txt, для которых мы не хотим регистрировать запросы.

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

/etc/nginx/sites-available/wordpress

server {
    . . .

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}

Внутри существующего блокаlocation / нам нужно настроить списокtry_files так, чтобы вместо возврата ошибки 404 в качестве параметра по умолчанию управление передавалось в файлindex.php с аргументами запроса. .

Это должно выглядеть примерно так:

/etc/nginx/sites-available/wordpress

server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

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

Теперь мы можем проверить нашу конфигурацию на наличие синтаксических ошибок, набрав:

sudo nginx -t

Если об ошибках не сообщалось, перезагрузите Nginx, набрав:

sudo systemctl reload nginx

Далее мы скачаем и настроим сам WordPress.

[[step-4 -—- download-wordpress]] == Шаг 4. Скачивание WordPress

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

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

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

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

tar xzvf latest.tar.gz

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

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

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

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

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

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

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

[[step-5 -—- setting-up-the-wordpress-configuration-file]] == Шаг 5 - Настройка файла конфигурации WordPress

Далее нам нужно внести некоторые изменения в основной файл конфигурации WordPress.

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

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

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

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

[.warning] #Warning: Важно каждый раз запрашивать уникальные значения. NOT скопируйте значения, показанные ниже!
#

Outputdefine('AUTH_KEY',         '1jl/vqfs

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

Теперь откройте файл конфигурации WordPress:

sudo nano /var/www/wordpress/wp-config.php

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

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

. . .

Удалите эти строки и вставьте значения, скопированные из командной строки:

/var/www/wordpress/wp-config.php

. . .

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

. . .

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

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

/var/www/wordpress/wp-config.php

. . .

define('DB_NAME', 'wordpress');

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

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

. . .

define('FS_METHOD', 'direct');

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

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

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

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

http://server_domain_or_IP

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

WordPress language selection

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

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

Введите свой адрес электронной почты и выберите, хотите ли вы отговорить поисковые системы от индексации вашего сайта:

WordPress setup installation

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

WordPress login prompt

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

WordPress login prompt

Заключение

WordPress должен быть установлен и готов к использованию! Некоторые общие следующие шаги - это выбрать настройку постоянных ссылок для ваших сообщений (можно найти вSettings > Permalinks) или выбрать новую тему (вAppearance > Themes). Если вы впервые используете WordPress, немного изучите интерфейс, чтобы ознакомиться с вашей новой CMS.

Related