Измените порт phpMyAdmin с 80 на другой номер

Как изменить порт phpMyAdmin из 80 в 99?

2 ответа

Решение

Просто чтобы прояснить, это не настройка 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, Как @LDJames говорит, что вы можете поместить эту директиву в /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 директива как то:

#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:

# Если вы просто измените порт или добавите больше портов здесь, вы, вероятно, также
# нужно изменить оператор VirtualHost в
# /etc/apache2/sites-enabled/000-default.conf

Слушай 80
Слушай 99


    Слушай 443



    Слушай 443


# vim: синтаксис =apache ts=4 sw=4 sts=4 sr noet

Это добавляет порт 99 к доступному доступу. Чтобы отключить порт 80, к которому вы можете иметь доступ только через порт 99, закомментируйте или удалите Listen 80 из конфигурации.

Отключение порта по умолчанию немного подробнее

В большинстве случаев отключение порта 80 по умолчанию не требуется.

Если у вас есть другие сайты, которые вам нужно иметь доступ к порту 80 и Listen директива к этому виртуальному хосту.

Кроме того, вы можете ограничить Phpmyadmin только одним конкретным портом, создав хост версии Phpmyadmin и используя директиву Listen 99 для этого виртуального хоста.

Подробности создания виртуального хоста для Apache2 можно найти здесь:

Сделать символическую ссылку на /usr/share/phpmyadmin виртуальный хост document root,

Другие вопросы по тегам