Как установить 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) удовлетворяет всем этим требованиям. Следуйте th guide для установки и настройки этого программного обеспечения ,

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

  • * Если у вас есть доменное имя …​ * Самый простой способ защитить ваш сайт - это Let Let Encrypt, который предоставляет бесплатные доверенные сертификаты. Следуйте нашему https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04 руководстве по шифрованию[Let для Apache], чтобы настроить это ,

  • * Если у вас нет домена …​ * и вы просто используете эту конфигурацию для тестирования или личного использования, вы можете использовать вместо этого самозаверяющий сертификат. Это обеспечивает тот же тип шифрования, но без проверки домена. Следуйте нашему self-подписанному руководству по SSL для Apache, чтобы настроить.

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

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

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

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

mysql -u root -p

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

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

CREATE DATABASE  DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

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

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

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

FLUSH PRIVILEGES;

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

EXIT;

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

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

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

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

Note

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

sudo systemctl restart apache2

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

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

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

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

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

sudo nano /etc/apache2/apache2.conf

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

файл /etc/apache2/apache2.conf

. . .





. . .

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

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

Далее мы можем включить + mod_rewrite +, чтобы мы могли использовать постоянную ссылку WordPress:

sudo a2enmod rewrite

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

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

sudo apache2ctl configtest

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

OutputAH00558: 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-адрес вашего сервера. Однако это всего лишь сообщение, которое не влияет на функциональность нашего сайта. Пока вывод содержит + Синтаксис OK +, вы готовы продолжить.

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

sudo systemctl restart apache2

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

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

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

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

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

tar xzvf latest.tar.gz

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

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

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

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

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

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

mkdir /tmp/wordpress/wp-content/upgrade

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

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

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

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

Регулировка владения и разрешений

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

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

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

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

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

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

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

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

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

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

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

Настройка файла конфигурации 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/html/wp-config.php

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

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

. . .

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

/var/www/html/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',       '');

. . .

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

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

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

/var/www/html/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_lamp_1604/language_selection.png [выбор языка WordPress]

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

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

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

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

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

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

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

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

Обновление WordPress

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

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

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

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

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

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

sudo chown -R  /var/www/html

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

Заключение

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

Related