Приветствую друзья, вот мы и подошли к последнему обзору из цикла статей. Сегодня я буду устанавливать веб-панели ISPConfig и PhpMyAdmin. Предыдущую часть читаем здесь → Как поднять LEMP сервер для локальной разработки: часть 3 — Nginx + MySQL + PHP-fpm.

Файл hosts. В предыдущих обзорах я уже настроил статический ip адрес 192.168.56.20 и установил Nginx. Если ввести в браузере адрес http://192.168.56.20/, откроется страница по умолчанию:

Nginx default page

Можно не париться, а дальше везде и всегда использовать указанный ip, но я пойду другим путем — придумаю виртуальное имя (домен) для сервера. Пускай будет lemp.vbox (лаконично и со смыслом). Чтобы обе наши системы (хост и гостевая ось) увидели этот несуществующий в реальности домен, требуется добавить соответствующую строчку в системный файл hosts.

Для гостевой Ubuntu Server запускаем на правах рута Midnight Commander:
$ sudo su
$ mc

Редактируем файл /etc/hosts: добавляем строчку 127.0.0.1 lemp.vbox и сохраняем файл (F4).

etc hosts

В домашней системе требуется выполнить аналогичные действия. На правах администратора открываем файл hosts и добавляем строчку 192.168.56.20 lemp.vbox (обратите внимание, мы указываем статический адрес виртуального сервера). Путь к файлу зависит от вашей операционной системы.

Linux (Ubuntu, Mint, Debain ...)
/etc/hosts
Windows
C:\Windows\System32\drivers\etc\hosts

Проверяем: набрав в браузере http://lemp.vbox/ появится дефолтная страница Nginx. Если же в гостевой системе выполнить $ ping lemp.vbox, получим IP адрес 127.0.0.1.

ping localhost 127.0.0.1

PhpMyAdmin. Прежде чем начать установку PhpMyAdmin сделаем отсылку к предыдущему обзору. После того, как был установлен сервер баз данных, мне пришлось выполнить ряд мелких манипуляций, в том числе задать пароль в файле /etc/mysql/debian.cn. Если ты этого еще не сделал, обязательно перейди по ссылке и проделай эти простенькие действия, иначе PhpMyAdmin не заработает!

Выполняем установку командой $ apt-get install phpmyadmin. На запрос, стоит ли сконфигурировать сервер apache2, lighttpd, отвечаем No (или просто жмем Esc).

phpmyadmin config apache2, lighttpd

Дальше нам нужно будет создать базу данных собственно для работы и обслуживания самого PhpMyadmin, подтверждаем действие — Yes (установка запросит пароль, вводим наш пароль «qwerty»).

phpmyadmin config apache2, lighttpd

На этом инсталляция завершена. Система установила все необходимое в директорию /usr/share/phpmyadmin. Веб доступ к PhpMyAdmin по умолчанию доступен через 8081 порт по ссылке http:(s)//lemp.vbox:8081/phpmyadmin/.

ISPConfig. Почему я выбрал именно этот софт? Все очень просто, ISPConfig — это широко используемая бесплатная панель для администрирования Linux серверов с поддержкой всех необходимых функций, постоянными обновлениями и отличной документацией. Я просто не вижу смысла использовать что-то платное для моих целей, если есть такой прекрасный и свободный продукт как ISPconfig. Не буду попросту рассыпаться в комплиментах, предлагаю перейти в тестовый режим на официальном сайте, всё увидать и оценить собственными глазами — https://www.ispconfig.org/ispconfig/online-demo/.

Прежде чем приступить к инсталляции ISPConfig следует изменить shell. По умолчанию сконфигурирован dash, нам же нужен bash, поэтому выполняем следующие команды: $ sudo su и $ dpkg-reconfigure dash. В диалоговом окне выбираем No.

reconfigure dash

Устанавливать мы будем последнюю стабильную версию ISPConfig из GIT. На момент написания обзора доступна ISPConfig 3.1. Выполняем поочередно следующие команды (скачиваем архив со скриптами и распаковываем его):
$ cd /tmp
$ wget -O ispconfig.tar.gz https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1
$ tar xfz ispconfig.tar.gz

Теперь нам нужно узнать имя папки директории, в которую распакован скрипт. Выполняем листинг командой $ ls. В списке должен появится каталог под именем ispconfig3*****. В моем случае это ispconfig3-stable-3.1-48f2ae57bf069439356642c31c48de70d4c0db04. Переходим в него:
$ cd ispconfig3-stable-3.1-48f2ae57bf069439356642c31c48de70d4c0db04
А затем еще раз переходим в подкаталог install:
$ cd install

Прежде чем запустить скрипт инсталляции напомню — в предыдущем обзоре мы устанавливали php и дополнения. Если не установить все необходимые дополнения, то в процессе установки могут возникнуть различного рода ошибки. Например, классический случай, когда забывают ставить php-mbstring, и вылетает ошибка «PHP Fatal error: Uncaught Error: Call to undefined function mb_detect_encoding() in /tmp/ispconfig3-stable-3.1-***/install/lib/mysql.lib.php:448».Если у тебя, мой друг, похожая ситуация, и консоль сыпет ошибками, вернись в предыдущий гайд и проверь, установил ли ты все указанные ранее дополнения?

Запускаем установку $ php -q install.php.

ispconfig install
Select language (en,de) [en]:
Оставляем английский
Installation mode (standard,expert) [standard]:
Подойдет стандартный режим
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [lemp]:
У нас уже есть имя (домен) lemp.vbox
MySQL server hostname [localhost]:
Сервер баз данных localhost
MySQL server port [3306]:
Порт по умолчанию 3306
MySQL root username [root]:
Имя рут пользователя станадртное — root
MySQL root password []: qwerty
Рут пароль — qwerty
MySQL database to create [dbispconfig]:
Не вижу смысла менять, пускай так и будет — dbispconfig
MySQL charset [utf8]:
Однозначно utf8, иначе будут проблемы в будующем
ISPConfig Port [8080]:
Оставляем 8080

Далее ISPConfig попробует самостоятельно сконфигурировать некоторые предустановленные ранее сервисы. Поскольку я собираю песочницу для разработки и отладки своих проектов, некоторые сервисы (Postgrey, Postfix, Jailkit, pureftpd, MyDNS, MyDNS, Fail2ban) мне без надобности, по крайней мере пока. Если же ты собрался собрать продакшн сервер, часть вышеупомянутого тебе точно пригодится. А на стадии установки ISPConfig обнаружит и подтянет их. Продолжаем наш диалог со скриптом:

Admin password [369038cb]: admin
Для теста сойдет admin (поменять можно потом)
Re-enter admin password []: admin
Подтверждаем еще раз пароль
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:
Да, SSL сертификат будет не лишним

На этом основные настройки закончены, будет еще диалоговые вопросы по типу «задать страну, штат, компанию» и так далее — на свое усмотрение. Это чисто информационные данные, которые ни коим образом не влияют на работу.

Поздравляю, установка завершена! URL доступа: http(s)://lemp.vbox:8080. Вводим ранее заданные данные рут доступа (admin => admin) и переходим в админку. Теперь, когда у нас установлены все необходимые панели, мы можем создавать новых пользователей в ISPConfig, лимитировать ресурсы, добавлять базы данных, настраивать Nginx и делать много других вещей. В общем и целом наша среда для разработки готова. Не эмулятор, а именно рабочая среда с отдельным ip адресом, серверной Linux системой и выделенной виртуальной машиной!

ispconfig

Если, мой друг, ты внимательно следовал инструкциям и установил все необходимые расширения, у тебя всё должно работать. Если же напоролся на ошибку «http error 500», тогда найди лог файл var/log/nginx/error.log и посмотри, чего не хватает. С высокой степенью вероятности ты просто забыл установить одно из расширений (curl, simleXML … или еще что-то).

P.S. Я не ставил задачу перезагрузить обзор и рассказывать о каждом сервисе и панели в подробностях. Хотя сказать есть что, и тонны гайдов на официальных сайтах тому подтверждение. Тюнинг и тонкая настройка Nginx-а, PHP, сервера баз данных да и самой системы Ubuntu — это целый мир и искусство системного администрирования. Моей целью была минимально необходимая (лаконичная) базовая настройка сервера. Которая к слову сказать заняла полноценных четыре обзора. Надеюсь, мне удалось справиться с поставленной задачей.

На этом все! До скорых встреч, друзья-коллеги ;)


2020-05-19
  58