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

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


Введение

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

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

Вы также можете использовать управляемый сервис Wordpress от DigitalOcean.

Предпосылки

Для выполнения этого руководства вам потребуется доступ к серверу Ubuntu 22.04. Чтобы успешно установить WordPress с LEMP на свой сервер, вам также необходимо выполнить следующие задачи перед началом этого руководства:

  • Создайте пользователя sudo на своем сервере. В шагах этого руководства используется пользователь без полномочий root с привилегиями sudo. Вы можете создать пользователя с правами sudo, следуя нашему руководству по начальной настройке сервера Ubuntu 22.04.
  • Установите стек LEMP. Для правильной работы WordPress потребуется веб-сервер, база данных и PHP. Настройка стека LEMP (Linux, Nginx, MySQL и PHP) отвечает всем этим требованиям. Следуйте этому руководству, чтобы установить и настроить это программное обеспечение.

Вместо того, чтобы настраивать эти компоненты самостоятельно, вы можете быстро подготовить сервер Ubuntu 22.04, на котором уже установлен стек LEMP, с помощью приложения DigitalOcean для установки LEMP в один клик.

Имейте в виду, однако, что в этом руководстве по-прежнему предполагается, что у вас есть административный пользователь sudo и серверный блок Nginx, настроенный на вашем сервере. Даже если на сервере установлено приложение LEMP в один клик, вам необходимо выполнить шаги 1, 2, 3 и 5 нашей настройки блока сервера Nginx и настроить Nginx для использования процессора PHP.

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

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

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

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

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

    1. sudo mysql

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

    1. mysql -u root -p

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

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

    1. CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

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

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

    1. CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
    2. GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost';

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

    Выполнив задачи базы данных, давайте выйдем из MySQL, набрав:

    1. EXIT;

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

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

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

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

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

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

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

    1. sudo systemctl restart php8.1-fpm

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

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

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

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

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

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

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

    В основной блок server добавим несколько блоков location.

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

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

    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 с аргументами запроса.

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

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

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

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

    1. sudo nginx -t

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

    1. sudo systemctl reload nginx

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

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

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

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

    1. cd /tmp

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

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

    Примечание. Флаг -LO используется для прямого доступа к источнику сжатого файла. -L обеспечивает успешную загрузку файла в случае перенаправления, а -O записывает вывод нашего удаленного файла в локальный файл с таким же именем. Чтобы узнать больше о командах curl, посетите страницу Как загружать файлы с помощью cURL.

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

    1. tar xzvf latest.tar.gz

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

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

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

    1. sudo cp -a /tmp/wordpress/. /var/www/<^>your_domain/wordpress

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

    1. sudo chown -R www-data:www-data /var/www/your_domain/wordpress

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

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

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

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

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

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

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

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

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

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

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

    . . .
    
    define( 'DB_NAME', 'wordpress' );
    
    /** MySQL database username */
    define( 'DB_USER', 'wordpressuser' );
    
    /** MySQL database password */
    define( 'DB_PASSWORD', 'password' );
    
    . . .
    
    define( 'FS_METHOD', 'direct' );
    

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

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

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

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

    http://server_domain_or_IP/wordpress
    

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

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

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

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

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

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

    Заключение

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

    Если вы ищете решение для установки WordPress Droplet в один клик, узнайте больше о приложении WordPress One-Click.