web-server-nginx:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-mysql-for-wordpress-and-phpbb
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версия | |||
| web-server-nginx:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-mysql-for-wordpress-and-phpbb [05.09.2025 12:06] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | web-server-nginx:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-mysql-for-wordpress-and-phpbb [05.09.2025 12:06] (текущий) – ↷ Страница перемещена из unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-mysql-for-wordpress-and-phpbb в web-server-nginx:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-mysql-for-wordpress-and-phpb Алексей Максимов | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ===== Настройка веб-сервера на базе стека LEMP в Ubuntu Server 14.04 LTS. Часть 6. Установка и настройка MySQL для поддержки Wordpress и phpBB ===== | ||
| + | Как я понял, многие администраторы веб-серверов вместе с серверной службой **MySQL** предпочитают разворачивать веб-утилиту **phpMyAdmin** для более комфортной работы с базами данных MySQL. | ||
| + | Однако исходя из принципа " | ||
| + | К тому же количество операций по администрированию БД MySQL в нашем случае сведено к такой величине, | ||
| + | |||
| + | \\ | ||
| + | ==== Установка MySQL ==== | ||
| + | |||
| + | Установим сервер MySQL и консольный клиент для управления базами данных: | ||
| + | |||
| + | < | ||
| + | sudo apt-get update | ||
| + | sudo apt-get install mysql-server mysql-client | ||
| + | </ | ||
| + | |||
| + | В процессе установки мы получим запрос на установление пароля для root-пользователя mysql. Не путайте этого пользователя с root-пользователем Linux и, соответственно назначайте пароль отличный от системного root-a. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | После ввода пароля нас попросят ввести его ещё раз, чтобы исключить возможность опечаток/ | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | \\ | ||
| + | ==== Запуск скрипта mysql_secure_installation ==== | ||
| + | |||
| + | Сразу после завершения процесса установки нам необходимо задействовать минимально безопасный режим работы сервера mysql. | ||
| + | Для этого запустим специальный инструмент, | ||
| + | |||
| + | < | ||
| + | |||
| + | Запущенный скрипт задаст нам ряд вопросов, | ||
| + | На первый запрос введём ранее заданный нами пароль root-пользователя mysql: | ||
| + | |||
| + | < | ||
| + | |||
| + | OK, successfully used password, moving on...</ | ||
| + | |||
| + | На вопрос о смене пароля можно отказаться, | ||
| + | |||
| + | < | ||
| + | Change the root password? [Y/n] n | ||
| + | |||
| + | ... skipping.</ | ||
| + | |||
| + | На вопрос об отключении анонимного пользователя отвечаем утвердительно: | ||
| + | |||
| + | < | ||
| + | |||
| + | ... Success!</ | ||
| + | |||
| + | На вопрос об отключении удалённого доступа root-пользователя к mysql отвечаем утвердительно: | ||
| + | |||
| + | < | ||
| + | |||
| + | ... Success!</ | ||
| + | |||
| + | Соглашаемся с удалением тестовой БД. Это может быть важно, учитывая факты изложенные в некоторых источниках, | ||
| + | |||
| + | < | ||
| + | Remove test database and access to it? [Y/n] Y | ||
| + | |||
| + | - Dropping test database... | ||
| + | ERROR 1008 (HY000) at line 1: Can't drop database ' | ||
| + | ... Failed! | ||
| + | - Removing privileges on test database... | ||
| + | ... Success! | ||
| + | </ | ||
| + | |||
| + | Как видим, в нашей инсталляции тестоввая БД отсутсвует в конфигурации по умолчанию. | ||
| + | |||
| + | В конце работы скрипта соглашаемся с применением параметров безопасности: | ||
| + | |||
| + | < | ||
| + | Reload privilege tables now? [Y/n] Y | ||
| + | |||
| + | ... Success! | ||
| + | Cleaning up... | ||
| + | |||
| + | All done! If you've completed all of the above steps, your MySQL | ||
| + | installation should now be secure. | ||
| + | Thanks for using MySQL! | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | ==== Подключение к серверу MySQL ==== | ||
| + | |||
| + | Подключимся клиентом к серверу и посмотрим его статус. | ||
| + | Выполним команду подключения от имени root-пользователя mysql: | ||
| + | |||
| + | < | ||
| + | |||
| + | Будет запрошен пароль root, введём его и попадём в приглашение командной строки mysql-клиента для работы с сервером: | ||
| + | |||
| + | < | ||
| + | Welcome to the MySQL monitor. | ||
| + | Your MySQL connection id is 36 | ||
| + | Server version: 5.5.47-0ubuntu0.14.04.1 (Ubuntu) | ||
| + | |||
| + | Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. | ||
| + | |||
| + | Oracle is a registered trademark of Oracle Corporation and/or its | ||
| + | affiliates. Other names may be trademarks of their respective | ||
| + | owners. | ||
| + | |||
| + | Type ' | ||
| + | |||
| + | mysql> | ||
| + | </ | ||
| + | |||
| + | Введём команду вывода информации о состоянии сервера mysql: | ||
| + | |||
| + | < | ||
| + | |||
| + | Получим ответ отсервера: | ||
| + | |||
| + | < | ||
| + | -------------- | ||
| + | mysql Ver 14.14 Distrib 5.5.47, for debian-linux-gnu (x86_64) using readline 6.3 | ||
| + | |||
| + | Connection id: 62 | ||
| + | Current database: | ||
| + | Current user: | ||
| + | SSL: Not in use | ||
| + | Current pager: | ||
| + | Using outfile: | ||
| + | Using delimiter: | ||
| + | Server version: | ||
| + | Protocol version: | ||
| + | Connection: | ||
| + | Server characterset: | ||
| + | Db | ||
| + | Client characterset: | ||
| + | Conn. characterset: | ||
| + | UNIX socket: | ||
| + | Uptime: | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | ==== Изменение конфигурации сервера MySQL ==== | ||
| + | |||
| + | Как видно из предыдущего ответа mysql-сервера, | ||
| + | Изменим это значение на **utf-8**, добавив соответсвующие параметры в главный конфигурационный файл mysql-сервера: | ||
| + | |||
| + | < | ||
| + | |||
| + | Приведу выдержки с параметрами в некоорых секциях, | ||
| + | |||
| + | <file bash / | ||
| + | |||
| + | [client] | ||
| + | # Изменим кодировку по умолчанию для клиентских подключений на utf-8 | ||
| + | default-character-set = utf8 | ||
| + | |||
| + | [mysqld] | ||
| + | # По умолчанию mysql не принимает tcp соединения т.к. прослушивает только 127.0.0.1 | ||
| + | bind-address = 127.0.0.1 | ||
| + | |||
| + | # Изменим кодировку по умолчанию для сервера | ||
| + | # и вновь создаваемых баз с дефолтной latin1 на utf-8 | ||
| + | # | ||
| + | skip-character-set-client-handshake | ||
| + | character-set-server = utf8 | ||
| + | init-connect=' | ||
| + | collation-server=utf8_general_ci | ||
| + | |||
| + | [mysqldump] | ||
| + | # Изменим кодировку по умолчанию для утилиты резервного копирования на utf-8 | ||
| + | default-character-set = utf8 | ||
| + | |||
| + | </ | ||
| + | |||
| + | Остальные параметры файла **my.cnf** в большинстве случаев можно оставить в значениях по умолчанию. | ||
| + | |||
| + | Для вступления изменений в силу перезагрузим службу **mysql**: | ||
| + | |||
| + | < | ||
| + | |||
| + | \\ | ||
| + | ==== Создание пользовательского файла настроек MySQL ==== | ||
| + | |||
| + | Для того, чтобы каждый раз не вводить учётные данные для подключения к mysql-серверу при работе с mysql-клиентом, | ||
| + | В нашем случае это будет полезно сделать ещё и для того, чтобы там же указать учётные данные для утилиты **mysqldump**, | ||
| + | Это позволит нам лишний раз "не светить" | ||
| + | Самое главное при создании файла **.my.cnf** правильно настроить права доступа к нему, чтобы не скомпрметировать хранимые в нём учётные данные. | ||
| + | Так как наши скрипты резервного копирования в перспективе будут выполняться от имени root-пользователя Linux, то и размещать файл **.my.cnf** мы будем в его домашней папке "/ | ||
| + | |||
| + | < | ||
| + | sudo touch / | ||
| + | sudo chown root:root / | ||
| + | sudo chmod 600 / | ||
| + | </ | ||
| + | |||
| + | Наполним файл содержимым: | ||
| + | |||
| + | <file bash / | ||
| + | [mysql] | ||
| + | user = root | ||
| + | password = ' | ||
| + | |||
| + | [mysqldump] | ||
| + | user = root | ||
| + | password = ' | ||
| + | </ | ||
| + | |||
| + | Созраняем файл и проверяем подключение к mysql предварительно переключившись в режим суперпользователя: | ||
| + | |||
| + | < | ||
| + | sudo su- | ||
| + | sudo mysql | ||
| + | </ | ||
| + | |||
| + | Если **mysql** не запросил у нас учётные данные, | ||
| + | |||
| + | \\ | ||
| + | ==== Проверка взаимодействия MySQL и PHP ==== | ||
| + | |||
| + | Проверим возможность работы связки MySQL и PHP. | ||
| + | Для этого создадим временный php-скрипт с каким-нибудь " | ||
| + | |||
| + | < | ||
| + | |||
| + | Наполним скрипт вызовом php-функций для подключения к mysql с явным указанием учётных данных mysql-сервера: | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | $link = mysqli_connect(' | ||
| + | if(!$link) | ||
| + | die(' | ||
| + | |||
| + | echo 'OK... ' . mysqli_get_host_info($link) . " | ||
| + | mysqli_close($link); | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | Перейдем веб-браузером по адресу http:// | ||
| + | |||
| + | Если в результате в браузере увидим текст "OK... Localhost via UNIX socket", | ||
| + | |||
| + | <WRAP center alert> | ||
| + | После проведения теста обязательно сразу удалим тестовый скрипт, | ||
| + | |||
| + | < | ||
| + | </ | ||
| + | |||
| + | |||
| + | \\ | ||
| + | ==== Создание баз данных MySQL для сайтов ==== | ||
| + | |||
| + | Создадим новые пустные базы данных для наших сайтов. | ||
| + | При созданиии будем придерживаться простой схемы разграничения доступа: | ||
| + | **1** пользователь mysql = **1** база данных = **1** сайт | ||
| + | |||
| + | Подключимся к mysql | ||
| + | < | ||
| + | $ sudo su - | ||
| + | # mysql | ||
| + | </ | ||
| + | |||
| + | Создадим новую базу данных для первого сайта (блога Wordpress): | ||
| + | |||
| + | <code mysql> | ||
| + | mysql> CREATE DATABASE `blog-db`; | ||
| + | |||
| + | Query OK, 1 row affected (0.00 sec) | ||
| + | </ | ||
| + | |||
| + | Создадим нового пользователя mysql: | ||
| + | |||
| + | <code mysql> | ||
| + | mysql> CREATE USER ' | ||
| + | |||
| + | Query OK, 0 rows affected (0.00 sec) | ||
| + | </ | ||
| + | |||
| + | Выдадим пользователю полные права на доступ к базе: | ||
| + | |||
| + | <code mysql> | ||
| + | mysql> GRANT ALL ON `blog-db`.* TO ' | ||
| + | |||
| + | Query OK, 0 rows affected (0.00 sec) | ||
| + | </ | ||
| + | |||
| + | По аналогии создадим пустые базы данных для всех сайтов, | ||
| + | |||
| + | Этого достаточно, | ||
| + | |||
| + | |||
| + | \\ | ||
| + | ==== Дополнительные источники информации ==== | ||
| + | [[http:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{: | ||
| + | |||
| + | {{tag> | ||
| + | |||
| + | ~~DISCUSSION~~ | ||