Web-сервер в Ubuntu (Server) 18.04

Web-сервер в Ubuntu (Server) 18.04

Установка и настройка LAMP и phpmyadmin в Ubuntu (Server) 18.04

LAMP (Linux, Apache2, MySQL, PHP) – это пакет программ, организующих полноценный web-сервер, а именно:

Apache2 – HTTP (HTTPS) сервер;

MySQL – сервер баз данных MySQL;

PHP – скриптовый (сценарный) язык для серверной обработки данных (бэкграунда).

Развертывается этот пакет чаще всего именно таким комплексом, за исключением случаев, когда вам требуется что-то отдельно для конкретной задачи, например, если нужен только HTTP-сервер без поддержки связи с БД или без серверной обработки данных, то можно поставить только Apache. Но так бывает достаточно редко.

 

Основных способов установки LAMP два: либо при помощи «tasksel», либо каждый пакет по отдельности (apt).

Нами единожды пакеты устанавливались с использованием «tasksel», и, в последствии, возникло много нюансов и заминок с заменой, обновлением и удалением компонентов AMP, поэтому больше этим способом не пользуемся. Ставим все отдельно.

 

Итак, устанавливаем комплект:

#> sudo -i (или добавляйте везде в начале команд sudo)
#> apt update
#> apt install apache2 curl mysql-server mysql-client php libapache2-mod-php php-mysql php-cli

По большому счету – всё. В базовой конфигурации web-сервер уже функционирует. Можно проверить: вводим в браузере адрес IP-адрес сервера и должна появиться страницы Apache:

05 sshot 2

 

Теперь отдельным пунктом установим phpmyadmin и разберем нюансы.

#> apt install phpmyadmin

Установщик предложит выбрать, для какого HTTP-сервера сконфигурировать phpmyadmin. Поскольку у нас Apache2, его и выбираем:

05 sshot 3

 

В конце установки будет предложено сконфигурировать базу данных dbconfig-common для phpmyadmin. При «чистой» установке актуально «Yes». Но, если вы, к примеру, перенесли конфиги и БД с другого сервера и после этого ставите phpmyadmin, так сказать, «поверх», то нужно ответить «no», иначе все старые конфиги будут перезаписаны:

05 sshot 5

 

Далее вводим пароль для регистрации на сервере БД:

05 sshot 6

 

Установка phpmyadmin завершена.

 

Боремся с нюансами в phpmyadmin

Установили. Идем в web-интерфейс PMA (phpmyadmin). Адрес PMA в браузере - http://IP_сервера/phpmyadmin
Вводим логин с паролем и…

PMA нюанс №1

 

05 sshot 7

 

Несмотря на «Добро пожаловать…» система в интерфейс не пускает. Указано, что доступ для пользователя root запрещен. Почему? Потому что на серверах с версией MySQL 5.7 и выше аутентификация по дефолту производится не с помощью пароля, а c помощью плагина «auth_socket».

С одной стороны, использование этого плагина удобно тем, что условно «не надо запоминать пароль». Однако, такой метод аутентификации удобен далеко не всегда, да и с базами куда приятней работать в PMA. Поэтому придется сменить метод аутентификации с «плагинового» на «парольный» (да, безопасность от этого несколько страдает, но, не столь критично).

Делается это достаточно просто: заходим в mysql из консоли; обновляем метод аутентификации; обновляем привилегии:

#> mysql
# mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'qwerty123';
# mysql> FLUSH PRIVILEGES;

Проверим, что метод изменился:

# mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

05 sshot 8

 Выходим из «mysql» командой «quit;».

 

Возвращаемся к web-интерфейсу PMA. Заходим в систему под рутом с паролем «qwerty123» (который установили выше в MySQL запросе):

05 sshot 9

 

Устанавливаем для пользователя root надежный пароль в разделе "Учетные записи пользователй".

 

* Если ошибки, рассматриваемые ниже, у вас не возникают, то ничего делать не нужно.

PMA нюанс №2

Теперь, к примеру, нужно импортировать сюда некую базу. Нажимаем на вкладку «Импорт» и…:

 

05 sshot 10

 

Проблема решается правкой двух файлов (по одной строчке в каждом).

  1. Файл sql.lib.php
  • Открываем на редактирование файл /usr/share/phpmyadmin/libraries/sql.lib.php
  • Находим в нем строку «|| (count($analyzed_sql_results['select_expr'] == 1)»
  • Меняем ее на «|| ((count($analyzed_sql_results['select_expr']) == 1)»

05 sshot 11

Сохраняем изменения.

 

2. Файл plugin_interface.lib.php (в той же папке, что и sql.lib.php)

  • Открываем на редактирование файл /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
  • Находим в нем строку «if ($options != null && count($options) > 0) {»
  • Меняем ее на «if ($options != null && count((array) $options) > 0) {»

 05 sshot 12

Сохраняем изменения.

 

После этого обновляем web-интерфейс phpmyadmin. Все должно работать корректно:

05 sshot 13

 

Устанока web-сервера (LAMP+phpmyadmin) закончена.


Печать