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
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
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 [26.03.2016 23:07] – создано Алексей Максимов | 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 [07.11.2016 14:31] (текущий) – [Запуск скрипта mysql_secure_installation] Алексей Максимов | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Настройка веб-сервера на базе стека LEMP в Ubuntu Server 14.04 LTS. Часть 6. Установка и настройка MySQL для поддержки Wordpress и phpBB ===== | ===== Настройка веб-сервера на базе стека 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~~ |
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.1459022826.txt.gz · Последнее изменение: 26.03.2016 23:07 — Алексей Максимов