Введение
Перед началом установки CMS WordPress на сервер необходимо выполнить следующие условия:
Требования
- Сервер с операционной системой Linux CentOS 7.
- LAMP Stack (Linux, Apache, MySQL, PHP), если он у вас еще не установлен, можете использовать указанное ниже руководство
- Root доступ
- SSH инструменты
- PuTTY для Windows
- OpenSSH в Linux/macOS (присутствует по-умолчанию)
В предыдущем руководстве по установке LAMP Stack, мы создали домены example.com и holu.example.com. В этом руководстве мы установим WordPress и на основной домен и на поддомен.
Будет использована следующая информация из статьи LAMP Stack
- Основной домен: example.com
- Поддомен: holu.example.com
- Пароль суперпользователя MySQL: holuP455##
Шаг 1 - Создание базы данных MySQL с использованием указанных имени пользователя и пароля
Шаг 1.1 - Войдите в MySQL (под суперпользователем)
mysql -u root -p
Шаг 1.2 - Создание пользователей (и паролей)
- Для example.com:
CREATE USER 'example'@'localhost' IDENTIFIED BY '#TH15exmp#';
- Для holu.example.com:
CREATE USER 'holu'@'localhost' IDENTIFIED BY '#TH15holu#';
Пример вывода команды:
mysql> CREATE USER 'example'@'localhost' IDENTIFIED BY '#TH15exmp#';
Query OK, 0 rows affected (0.02 sec)
mysql> CREATE USER 'holu'@'localhost' IDENTIFIED BY '#TH15holu#';
Query OK, 0 rows affected (0.02 sec)
Шаг 1.3 - Создание базы данных
CREATE DATABASE exampledb;
CREATE DATABASE holudb;
Пример вывода команды:
mysql> CREATE DATABASE exampledb;
Query OK, 1 row affected (0.01 sec)
mysql> CREATE DATABASE holudb;
Query OK, 1 row affected (0.01 sec)
Шаг 1.4 - Назначение прав пользователю
Эта команда даст пользователю полный доступ к базе данных:
GRANT ALL PRIVILEGES ON exampledb.* TO 'example'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON holudb.* TO 'holu'@'localhost' WITH GRANT OPTION;
Для сохранения всех изменений выполните следующую команду:
FLUSH PRIVILEGES;
Примечание: В примере выше мы назначили обоим пользователям полные права на базу данных. Я предлагаю дать полный доступ, если вы настраиваете это на рабочем сервере. Если вы хотите назначить другой уровень доступа, можете использовать информацию ниже:
- ALL PRIVILEGES: Учетная запись получит полный доступ к базе MySQL или таблице. (Назначает все права указанного уровня доступа исключая GRANT OPTION и PROXY).
- GRANT OPTION: Назначение прав которые будут предоставлены или удалены у учетных записей. Уровни: Глобальный, база данных, таблица, routine, proxy.
- CREATE: Дает право на создание базы данных и таблиц. Уровни: Глобальный, база данных, таблица.
- DELETE: Дает право на DELETE. Уровень: Глобальный, база данных, таблица.
- DROP: Дает право на удаление баз данных, таблиц и представлений. Уровни: Глобальный, база данных, таблица.
- INSERT: Дает право на использование INSERT. Уровни: Глобальный, база данных, таблица, столбец.
- SELECT: Дает право на использование SELECT. Уровни: Глобальный, база данных, таблица, столбец.
- UPDATE: Дает право на использование UPDATE. Уровни: Глобальный, база данных, таблица, столбец.
Если вам необходимо настроить другие уровни доступа, обратитесь к следующей статье от MySQL
Пример вывода команды:
mysql> GRANT ALL PRIVILEGES ON exampledb.* TO 'example'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON holudb.* TO 'holu'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
Выйдите из mysql командой: quit
Шаг 2 - Установка и настройка WordPress
Шаг 2.1 - Скачиваем и распаковываем WordPress
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xvf latest.tar.gz
cd wordpress
Шаг 2.2 - Копируем файлы WordPress в public_html и назначаем права доступа для Apache
- Для example.com:
mkdir -p /var/www/html/example.com/public_html
cp -r * /var/www/html/example.com/public_html
chown -R apache:apache /var/www/html/example.com/public_html
find /var/www/html/example.com/public_html -type d -exec chmod 755 {} \;
find /var/www/html/example.com/public_html -type f -exec chmod 644 {} \;
- Для holu.example.com:
mkdir -p /var/www/html/holu.example.com/public_html
cp -r * /var/www/html/holu.example.com/public_html
chown -R apache:apache /var/www/html/holu.example.com/public_html
find /var/www/html/holu.example.com/public_html -type d -exec chmod 755 {} \;
find /var/www/html/holu.example.com/public_html -type f -exec chmod 644 {} \;
Шаг 2.3 - Настройка WordPress
Теперь откройте сайт через браузер. Если example.com и holu.example.com отображают стандартную страницу wordpress, значит установка прошла успешно.
Кликните на Let's go
чтобы продолжить настройку.
На этой странице вы должны настроить детали веб-сайта, указать имя пользователя и пароль.
Если все было сделано правильно, то должна появиться следующая страница:
После этого вы будете перенаправлены на страницу авторизации. Здесь вы должны ввести данные, которые указали на предыдущей странице.
Повторите шаг 2.3 для holu.example.com и других веб-сайтов, которые вы хотите добавить.
Устранение возможных проблем (Опционально)
Ошибка базы данных
Если вы получаете ошибку:
Если вы используете такую же версию MySQL как в руководстве по установке LAMP Stack, следуйте инструкциям ниже для ее устранения.
Изменение конфигурации MySQL:
nano /etc/my.cnf
Добавьте следующую строку, идущую после [mysqld]
:
[mysqld]
default_authentication_plugin = mysql_native_password
Перезапустите службу MySQL:
systemctl restart mysqld
Войдите в MySQL, и установите пароль для вашего пользователя:
mysql -u root -p
ALTER USER 'example'@'localhost' IDENTIFIED WITH mysql_native_password BY '#TH15exmp#';
Это должно помочь в устранении проблемы. Соответствующие изменения также необходимо сделать и в настройках базы данных в WordPress.
Ошибка записи в файл wp-config.php
Это может оказаться серьезной проблемой, так как wordpress не может изменять никакие файлы на сервере. Для устранения проблемы, проверьте доступ пользователей apache к вашей директории public_html:
ls -lha /var/www/html/example.com/public_html
Пример вывода команды:
total 1.6M
drwxr-xr-x 3 root root 4.0K Mar 17 00:27 .
drwxr-xr-x 4 root root 4.0K Mar 14 08:43 ..
-rw-r--r-- 1 root root 385K Mar 20 10:51 error.log
drwxr-xr-x 5 root root 4.0K Mar 20 10:53 public_html
-rw-r--r-- 1 root root 1.2M Mar 20 11:14 requests.log
Выполните следующую команду для назначения прав пользователю apache:
chown -R apache:apache /var/www/html/example.com/public_html
Пример вывода команды:
total 1.6M
drwxr-xr-x 3 root root 4.0K Mar 17 00:27 .
drwxr-xr-x 4 root root 4.0K Mar 14 08:43 ..
-rw-r--r-- 1 root root 385K Mar 20 10:51 error.log
drwxr-xr-x 5 apache apache 4.0K Mar 20 10:53 public_html
-rw-r--r-- 1 root root 1.2M Mar 20 11:14 requests.log
Владелец всех файлов в папке public_html теперь пользователь apache. WordPress теперь может записывать и загружать файлы.
Заключение
Ваш сервер готов к размещению веб-сайтов с CMS WordPress. Вы также можете добавить и другие веб-сайты, используя те же шаги.