Общее

WordPress + LAMP

WordPress — востребованный open-source движок для создания блогов и веб-сайтов. Многие веб-сайты используют специализированные системы управления. 

Данное руководство поможет настроить WordPress на облачном сервере с помощью командной строки. Развёртывание через команды сложнее, чем простое скачивание готовой конфигурации, но при этом командная строка позволяет произвести более гибкую настройку и эффективное администрирование. 

Платформа WordPress требует наличия облачной инфраструктуры и доменного имени. Это руководство показывает способ установки WordPress на стеке LAMP. Расшифровывается как LINUX APACHE MYSQL PHP. Стек — серверная установка (совокупность необходимых инструментов для поддержки веб приложения). 

Требования

Для начала работы вам потребуется доступ к серверу Linux Ubuntu 20.0. А затем нужно выполнить следующие действия:

  • Настройте ваш сервис и проверьте, чтобы был задан пользователя sudo без прав администратора (root).
  • Разверните и проведите отладку стека LAMP
  • Защита для сайта — важный элемент, требующий отдельного внимания. Данные пользователя всегда будут главной добычей для злоумышленников, поэтому настройте шифрование трафика, с помощью технологии TLS/SSL. Здесь есть два варианта: 
  1. Если доменное имя уже готово к использованию, то подключите LETS ENCRYPT. Модуль предоставляет бесплатные подлинные сертификаты. 
  2. В случае, если домен не подобран, то воспользуйтесь самоподписанным сертификатом

Зайдите на сервер пользователем sudo и начните настройку системы по следующему алгоритму: 

ШАГ 1 — База данных

Войдите в учетную запись с правами администратора MYSQL

mysql -u root -p

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

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

Удобно, можно контролировать базы данных MYSQL через WordPress. 

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Команда создаст базу для WordPress, которая нужна для администрирования. 

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

CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

В wordpressuser разрешите абсолютный доступ к ранее созданной базе MYSQL:

GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';
mysql> EXIT; - выйдите из программы

ШАГ 2 — PHP расширение для сервера

PHP реализует коммуникацию всех модулей веб-сайта. Команды, приведенные ниже устанавливают актуальные расширения PHP:

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

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

Перезагрузите APACHE. Новые расширения автоматически загрузятся, будут готовы к использованию. 

sudo systemctl restart apache2

ШАГ 3 — Конфигурация Apache для переопределения и перезаписи .htaccess

Измените настройки Apache. Предварительно, файл для сайта должен находиться по адресу /etc/apache2/sites-available

Также, мы будем использовать /var/www/wordpress​​​ в качестве корневой директории для нашей установки WordPress. Вы должны использовать корневой веб-узел, указанный в вашей собственной конфигурации. Если вы следовали указаниям нашего руководства по LAMP, вы можете использовать ваше доменное имя вместо wordpress в обоих случаях. После определения пути, перейдите к работе с .htaccess, потому что APACHE нужно обрабатывать изменения настроек в разных директориях. До настройки файлы .htaccess не работают. 

sudo nano /etc/apache2/sites-available/wordpress.conf .Эта команда открывает файл с надстройками Apache. Внутри файла будет закрытый блок Directory. Адрес рядом с первым тегом обозначает корневую папку документа. Вставьте данный кусок кода в блок файла надстроек VirtualHost, перед этим проверьте корректность адреса корневой директории. 

<Directory /var/www/wordpress/>
AllowOverride All
</Directory>

В редакторе nano нажмите сочетание клавиш CTRL и X, затем Y, затем ENTER.

Активация перезаписи mod_rewrite используется для настройки постоянных ссылок WP. Постоянные ссылки упрощают навигацию по веб-сайту для пользователя, а также структурируют вашу разработку. 

sudo a2enmod rewrite
http://example.com/2012/post-name/
http://example.com/2012/12/30/post-name

Активация изменений 

Команда sudo apache2ctl configtest тестирует работу сервера. Проделайте это, чтобы убедиться в отсутствии ошибок при редактировании конфигурационных файлов. 

ШАГ 4 — Выгрузка WordPress

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

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

Эти команды скачивают систему 

Извлечь файлы:

tar xzvf latest.tar.gz

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

touch /tmp/wordpress/.htaccess

Можно создать директорию, отвечающую за обновления в автоматическом режиме

mkdir /tmp/wordpress/wp-content/upgrade

Перемещаем все файлы в корневую директорию. 

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

Не забывайте, у вас может быть другая директория (отличная от /wordpress).

ШАГ 5 — Настройка главной папки WordPress

Очень важно установить привязку к корневой директории. 

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

Группа команд, которые устанавливают необходимые разрешения

sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

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

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

Вставьте полученные значения в файл настроек, скопировав вывод скрипта

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

В кавычки вместо ‘put your un…’ вставьте сгенерированные ключи

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

ШАГ 6 — Завершение установки с помощью графического интерфейса

После детальной настройки сервера, завершить установку системы через специальный интерфейс. 

Введите в браузер адрес домена или публичный адрес вашего сервера:

https://server_domain_or_IP

Установите язык:

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

Перейдите на следующую страницу:

Совершите авторизацию в учетной записи WordPress:

 Готово! Веб-страница ждёт заполнения и развития. 

Дополнительно 

Выставьте постоянные ссылки для постов (Настройки — Permalinks(Постоянные ссылки)). Можно изменить тему интерфейса (Внешний вид — Темы). Также, есть возможность добавлять пользователей, которые могут редактировать наполнение веб-сайта (Пользователи — Добавить нового +). 

Изменение ключа доступа к учетной записи администратора

Изменять пароль по умолчанию необходимо, чтобы усложнить задачу для злоумышленника. Дефолтные пароли — серьезная брешь в безопасности. Изменить пароль админа на виртуальном сервере OS Linux не так сложно. 

Зайдите на сервер через систему управления 1cloud, откройте консоль и установите соединение с серверной машиной, используя программу PUTTY.

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

После успешной авторизации, введите команду passwd. Скрипт автоматически запустит модуль, который отвечает за замену пароля. Придумайте новый ключ доступа, не забудьте его записать или поместить в защищенное место. Повторите новый пароль. Вы увидели сообщение «passwd: password updated successfully», значит пароль успешно изменен.