Как установить WordPress с LEMP (Nginx, MariaDB и PHP) на Debian 10

Вступление

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

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

Предпосылки

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

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

  • * Создайте пользователя + sudo + на вашем сервере *: Мы выполним шаги в этом руководстве, используя пользователя без полномочий root с привилегиями + sudo +. Вы можете создать пользователя с привилегиями + sudo +, следуя нашему Debian 10 руководство по первоначальной установке сервера.

  • * Установите стек LEMP *: для корректной работы WordPress потребуется веб-сервер, база данных и PHP. Настройка стека LEMP (Linux, Nginx, MariaDB и PHP) удовлетворяет всем этим требованиям. Следуйте th guide для установки и настройки этого программного обеспечения.

  • * Защитите свой сайт с помощью SSL *: WordPress обслуживает динамический контент и обрабатывает аутентификацию и авторизацию пользователей. TLS / SSL - это технология, которая позволяет вам шифровать трафик с вашего сайта для обеспечения безопасности вашего соединения. В этом руководстве предполагается, что у вас есть доменное имя для вашего блога. Вы можете использовать Let Encrypt, чтобы получить бесплатный SSL-сертификат для вашего домена. Чтобы это настроить, следуйте нашему https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-debian-10 руководстве по шифрованию[Let для Nginx].

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

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

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

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

sudo mariadb

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

mariadb -u root -p

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

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

CREATE DATABASE  DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

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

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

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

FLUSH PRIVILEGES;

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

EXIT;

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

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

При настройке нашего стека LEMP нам потребовался только минимальный набор расширений, чтобы PHP мог взаимодействовать с MariaDB. 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

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

sudo systemctl restart php7.3-fpm.service

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

Шаг 3 - Настройка Nginx

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

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

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

sudo nano /etc/nginx/sites-available/

Нам нужно добавить несколько директив + location + в наш основной блок + server +. После добавления SSL-сертификатов ваша конфигурация может иметь два блока + server. Если это так, найдите ту, которая содержит + root / var / www / + и другие ваши директивы + location +, и внесите туда свои изменения.

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

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

/ И т.д. / Nginx / сайты Недоступные / your_domain

server {
   . . .







   . . .
}

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

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

/ И т.д. / Nginx / сайты-доступные / WordPress

server {
   . . .
   location / {
       try_files $uri $uri/ =404;

   }
   . . .
}

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

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

sudo nginx -t

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

sudo systemctl reload nginx

Далее мы скачаем и настроим сам 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/

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

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

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

Шаг 5 - Настройка файла конфигурации WordPress

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

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

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

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

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

Outputdefine('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9  c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X  {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF  2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+  #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT',        'koMrurzOA+|L_lG}kf   07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY  C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3  t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7  1% ^qUswWgn+6&xqHN&%');

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

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

nano /var/www//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',         '');
define('SECURE_AUTH_KEY',  '');
define('LOGGED_IN_KEY',    '');
define('NONCE_KEY',        '');
define('AUTH_SALT',        '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT',   '');
define('NONCE_SALT',       '');

. . .

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

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

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

. . .

define('DB_NAME', '');

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

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

. . .

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

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

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

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

http://

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

изображение: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/language_selection.png [выбор языка WordPress]

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

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

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

изображение: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/setup_installation.png [установка установки WordPress]

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

изображение: https: //assets.digitalocean.com/articles/wordpress_lemp_1604/login_prompt.png [приглашение для входа в WordPress]

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

изображение: https: //assets.digitalocean.com/articles/wordpress_debian10/wordpress_debian10.png [админ панель WordPress]

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

Заключение

WordPress должен быть установлен и готов к использованию! Некоторые обычные следующие шаги - выбрать настройку постоянных ссылок для ваших сообщений (можно найти в «+ Настройки> Постоянные ссылки ») или выбрать новую тему (в « Внешний вид> Темы +»). Если вы впервые используете WordPress, немного изучите интерфейс, чтобы ознакомиться с вашей новой CMS, или посмотрите First Steps. с WordPress руководство по их официальной документации.

Related