pa4*_*080 15

需要说明的是,这不是 PhpMyAdmin 的设置,而是 Apache2 的配置设置,为此我们需要创建新的 VirtualHost。

1、了解PhpMyAdmin的默认配置。默认情况下(在 Ubuntu 16.04 中)PhpMyAdmin 被包含(并启用)到 Apache 的配置中(对于所有 VirtualHosts!),通过这个额外的配置文件:

/etc/apache2/conf-enabled/phpmyadmin.conf
Run Code Online (Sandbox Code Playgroud)

这个文件是文件的符号链接,是文件/etc/apache2/conf-available/phpmyadmin.conf的符号链接,/etc/phpmyadmin/apache.conf下一步会用到。

2. 创建新的 VirtualHost 配置文件。让我们调用它phpmyadmin.conf并通过以下方式创建它nano(或者您可以使用您喜欢的文本编辑器):

sudo nano /etc/apache2/sites-available/phpmyadmin.conf
Run Code Online (Sandbox Code Playgroud)

此文件的内容应如下所示:

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>
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • 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设置为形成 Web 可见的主文档树的目录;

  • 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
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • a2disconf phpmyadmin将禁用默认的 phpMyAdmin 配置,如1 中所述。
  • a2ensite phpmyadmin将启用新的 VirtualHost,如2 中所述。

!!. 像这样编辑/etc/phpmyadmin/apache.conf和注释 ( #) 第一个Alias指令:

#Alias /phpmyadmin /usr/share/phpmyadmin
Run Code Online (Sandbox Code Playgroud)

这一步是可选的,但除此之外http://localhost:99,并http://localhost:99/phpmyadmin会提供相同的结果,所以我想我们不需要这样:)


!!. 如果您希望可以从外部访问这个新的 VirtualHost,请不要忘记将端口添加99到您的防火墙规则中。如果您使用UFW,则可以通过以下命令执行此操作:

sudo ufw allow 99/tcp
Run Code Online (Sandbox Code Playgroud)

使用iptables,您可以通过以下命令执行此操作:

sudo iptables -A INPUT -p tcp -m tcp --dport 99 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)


L. *_*mes 6

通过端口 99 添加访问既快速又简单

将端口 99 添加到您的 Apache2 配置中。编辑/etc/apache2/ports.conf。添加指令Listen 99

# 如果你只是在这里更改端口或添加更多端口,你可能还会
# 必须更改 VirtualHost 中的语句
# /etc/apache2/sites-enabled/000-default.conf

听 80
听 99

<IfModule ssl_module>
    第 443 章
</IfModule>

<IfModule mod_gnutls.c>
    第 443 章
</IfModule>

# vim: 语法=apache ts=4 sw=4 sts=4 sr noet

这会将端口 99添加到可用访问中。要禁用只能通过端口 99 访问的端口 80,请将 注释掉或Listen 80从配置中删除。

禁用默认端口更详细一点

在大多数情况下,不需要禁用默认端口 80。

如果您有其他站点需要访问端口 80 和该ListenVirtualhost的指令。

或者,您可以通过创建一个Phpmyadmin版本主机并使用该虚拟主机的Listen 99指令将Phpmyadmin限制为仅一个特定端口。

可以在此处找到有关为 Apache2 创建虚拟主机的详细信息:

建立一个到/usr/share/phpmyadminvirtualhost的符号链接document root