Только, чтобы быть ясным, это не установка PhpMyAdmin, это - установка конфигурации Apache2, и мы должны создать новый VirtualHost с этой целью.
1. Понимание конфигурации по умолчанию PhpMyAdmin. По умолчанию (в рамках Ubuntu 16.04) PhpMyAdmin включен (и включен) в конфигурацию Apache (для всего VirtualHosts!) через этот дополнительный конфигурационный файл:
/etc/apache2/conf-enabled/phpmyadmin.conf
Этот файл является символьной ссылкой на файл /etc/apache2/conf-available/phpmyadmin.conf
, который является символьной ссылкой на файл /etc/phpmyadmin/apache.conf
, который будет использоваться на следующем шаге.
2. Создайте новый конфигурационный файл VirtualHost. Давайте назовем его phpmyadmin.conf
и создайте его nano
(или можно использовать любимый текстовый редактор):
sudo nano /etc/apache2/sites-available/phpmyadmin.conf
Содержание этого файла должно быть похожим:
Listen 99
<VirtualHost *:99>
ServerName localhost
<Directory /usr/share/phpmyadmin>
AllowOverride None
Require all granted
</Directory>
DocumentRoot /usr/share/phpmyadmin
Include /etc/phpmyadmin/apache.conf
ErrorLog ${APACHE_LOG_DIR}/phpmyadmin.error.log
CustomLog ${APACHE_LOG_DIR}/phpmyadmin.access.log combined
</VirtualHost>
Где:
Listen 99
дает Apache2 команду слушать на порте 99
. Как @L.D.James говорит, что можно вставить эту директиву /etc/apache2/ports.conf
или можно оставить его здесь;
<VirtualHost *:99>...</VirtualHost>
определяет VirtualHost, который обработает форму запросов все интерфейсы (*
) на порте :99
.
ServerName localhost
эта директива является дополнительной и может быть настроена согласно Вашим потребностям. (Обычно там имейте ServerName
набор на уровне Сервера - в /etc/apache2/apache2.conf
);
<Directory /usr/share/phpmyadmin>...</Directory>
эта директива является дополнительной потому что права доступа для /usr/share/
обычно устанавливаются в /etc/apache2/apache2.conf
. Но можно добавить определенные правила здесь, например, Вы можете Set Up Password Authentication
;
DocumentRoot /usr/share/phpmyadmin
эта директива наборы /usr/share/phpmyadmin
как каталог, который формирует основное дерево документов, видимое из сети для текущего VirtualHost;
Include /etc/phpmyadmin/apache.conf
эта директива включает конфигурацию phpMyAdmin по умолчанию в конфигурацию Apache. Таким образом /etc/phpmyadmin/apache.conf
будет включен только для текущего VirtualHost! Вместо этой директивы Вы можете скопировать/вставить содержание /etc/phpmyadmin/apache.conf
в этом месте.
3. Переключите конфигурацию Apache и перезапустите ее.
sudo a2disconf phpmyadmin
sudo a2ensite phpmyadmin
sudo systemctl restart apache2.service
Где:
a2disconf phpmyadmin
отключит конфигурацию phpMyAdmin по умолчанию, описанную в 1.a2ensite phpmyadmin
включит новый VirtualHost, описанный в 2.!!. Править /etc/phpmyadmin/apache.conf
и комментарий (#
) первое Alias
директива как thath:
#Alias /phpmyadmin /usr/share/phpmyadmin
Этот шаг является дополнительным, но иначе http://localhost:99
и http://localhost:99/phpmyadmin
обеспечит идентичный результат, таким образом, я предполагаю, что нам не нужно это :)
!!. Если Вы хотите, чтобы этот новый VirtualHost был доступен с внешней стороны, не забывают добавлять порт 99
в правила Вашего брандмауэра. При использовании UFW, можно сделать это этой командой:
sudo ufw allow 99/tcp
С iptables можно сделать это этой командой:
sudo iptables -A INPUT -p tcp -m tcp --dport 99 -j ACCEPT
Добавляющий доступ через порт 99 быстр, и легкий
Добавляют порт 99 к Вашей конфигурации Apache2. Редактирование /etc/apache2/ports.conf
. Добавьте директиву Listen 99
:
# If you just change the port or add more ports here, you will likely also # have to change the VirtualHost statement in # /etc/apache2/sites-enabled/000-default.conf Listen 80 Listen 99 <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Это добавляет порт 99 к доступному доступу. Для отключения порт 80 , где у Вас может только быть доступ через порт 99 прокомментируйте или удалите Listen 80
из конфигурации.
Отключение порта по умолчанию немного более подробно
При большей части обстоятельства, запрещение порта по умолчанию 80 не необходимо.
, Если у Вас есть другие сайты, что у Вас должен быть доступ к порту 80 и Listen
директива к тому Virtualhost.
, С другой стороны, Вы могли ограничить Phpmyadmin только одним определенным портом путем создания хост версии Phpmyadmin и использовать эти , Слушают 99 директива к тому виртуальному хосту.
Детали для создания виртуального хоста к Apache2 могут быть найдены здесь :
Делают символьную ссылку на /usr/share/phpmyadmin
virtualhost document root
.