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

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


Введение

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

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

Предпосылки

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

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

  • Создайте пользователя sudo на своем сервере. Мы будем выполнять шаги, описанные в этом руководстве, используя пользователя без полномочий root с привилегиями sudo. Вы можете создать пользователя с правами sudo, следуя нашему руководству по начальной настройке сервера Ubuntu 16.04.
  • Установите стек LAMP. Для правильной работы WordPress потребуется веб-сервер, база данных и PHP. Настройка стека LAMP (Linux, Apache, MySQL и PHP) отвечает всем этим требованиям. Следуйте этому руководству, чтобы установить и настроить это программное обеспечение.
  • Защитите свой сайт с помощью SSL: WordPress обслуживает динамический контент и выполняет аутентификацию и авторизацию пользователей. TLS/SSL — это технология, которая позволяет вам шифровать трафик с вашего сайта, чтобы ваше соединение было безопасным. Способ настройки SSL будет зависеть от того, есть ли у вашего сайта доменное имя.
    • Если у вас есть доменное имя… самый простой способ защитить свой сайт — использовать Let’s Encrypt, который предоставляет бесплатные доверенные сертификаты. Следуйте нашему руководству Let’s Encrypt для Apache, чтобы настроить это.
    • Если у вас нет домена... и вы используете эту конфигурацию только для тестирования или личного использования, вместо этого вы можете использовать самозаверяющий сертификат. Это обеспечивает тот же тип шифрования, но без проверки домена. Следуйте нашему руководству по самоподписанному SSL для Apache, чтобы настроить его.

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

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

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

    Чтобы начать работу, войдите в корневую (административную) учетную запись 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. GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

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

    1. FLUSH PRIVILEGES;

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

    1. EXIT;

    Шаг 2: Установите дополнительные расширения PHP

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

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

    1. sudo apt-get update
    2. sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc

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

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

    1. sudo systemctl restart apache2

    Шаг 3. Настройте конфигурацию Apache, чтобы разрешить переопределение и перезапись .htaccess.

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

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

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

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

    1. sudo nano /etc/apache2/apache2.conf

    Чтобы разрешить файлы .htaccess, нам нужно установить директиву AllowOverride в блоке Directory, указывающую на корень нашего документа. Внизу файла добавьте следующий блок:

    . . .
    
    <Directory /var/www/html/>
    	AllowOverride All
    </Directory>
    
    . . .
    

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

    Включить модуль перезаписи

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

    1. sudo a2enmod rewrite

    Включить изменения

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

    1. sudo apache2ctl configtest

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

    Output
    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 в файл /etc/apache2/apache2.conf, указывающую на домен или IP-адрес вашего сервера. Однако это всего лишь сообщение, которое не влияет на функциональность нашего сайта. Пока вывод содержит Syntax OK, вы готовы продолжить.

    Перезапустите Apache, чтобы изменения вступили в силу:

    1. sudo systemctl restart apache2

    Шаг 4: Загрузите WordPress

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

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

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

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

    1. tar xzvf latest.tar.gz

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

    Создайте файл и установите разрешения, набрав:

    1. touch /tmp/wordpress/.htaccess
    2. chmod 660 /tmp/wordpress/.htaccess

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

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

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

    1. mkdir /tmp/wordpress/wp-content/upgrade

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

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

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

    Прежде чем мы начнем настройку WordPress через Интернет, нам нужно настроить некоторые элементы в нашем каталоге WordPress.

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

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

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

    1. sudo chown -R sammy:www-data /var/www/html

    Затем мы установим бит setgid для каждого из каталогов в корне документа. Это приводит к тому, что новые файлы, созданные в этих каталогах, наследуют группу родительского каталога (которую мы только что установили в www-data) вместо основной группы создающего пользователя. Это просто гарантирует, что всякий раз, когда мы создаем файл в каталоге в командной строке, веб-сервер по-прежнему будет иметь над ним групповое владение.

    Мы можем установить бит setgid для каждого каталога в нашей установке WordPress, набрав:

    1. sudo find /var/www/html -type d -exec chmod g+s {} \;

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

    1. sudo chmod g+w /var/www/html/wp-content

    В рамках этого процесса мы предоставим веб-серверу доступ на запись ко всему содержимому в этих двух каталогах:

    1. sudo chmod -R g+w /var/www/html/wp-content/themes
    2. sudo chmod -R g+w /var/www/html/wp-content/plugins

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

    Настройка файла конфигурации 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. nano /var/www/html/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: Завершите установку через веб-интерфейс

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

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

    http://server_domain_or_IP
    

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

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

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

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

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

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

    Обновление WordPress

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

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

    Когда обновление станет доступным, снова войдите на сервер как пользователь sudo. Временно предоставьте процессу веб-сервера доступ ко всему корню документа:

    1. sudo chown -R www-data /var/www/html

    Теперь вернитесь в панель администрирования WordPress и примените обновление.

    Когда вы закончите, снова заблокируйте разрешения для безопасности:

    1. sudo chown -R sammy /var/www/html

    Это должно быть необходимо только при обновлении самого WordPress.

    Заключение

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