为 phpMyAdmin 配置子域(虚拟主机)

为 phpMyAdmin 配置子域(虚拟主机)

我在为 phpMyAdmin 配置子域(虚拟主机)时遇到问题。

我当前的 .conf 如下所示:

<VirtualHost *:80>
ServerName php.erichermansson.com
ServerAdmin [email protected]

DocumentRoot /usr/share/phpmyadmin
<Directory />
    Options FollowSymLinks
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        AddType application/x-httpd-php .php
        php_flag magic_quotes_gpc Off
        php_flag track_vars On
        php_flag register_globals Off
        php_admin_flag allow_url_fopen Off
        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
    </IfModule>
</Directory>

# Authorize for setup
<Directory setup>
    <IfModule mod_authn_file.c>
        AuthType Basic
        AuthName "phpMyAdmin Setup"
        AuthUserFile /etc/phpmyadmin/htpasswd.setup
    </IfModule>

    Require valid-user
</Directory>

# Disallow web access to directories that don't need it
<Directory libraries>
    Order Deny,Allow
    Deny from All
</Directory>

<Directory setup/lib>
    Order Deny,Allow
    Deny from All
</Directory>
</VirtualHost>

你们知道问题出在哪里吗?它仅访问 Apache 测试页。

答案1

所有四个 <Directory> 节都是使用相对路径定义的。目录路径必须始终是完整的绝对路径(或带通配符的绝对路径)。

他们是不是解释为好像它们是相对于 DocumentRoot 的。

尝试:

<Directory /usr/share/phpmyadmin/>
...
</Directory>

<Directory /usr/share/phpmyadmin/setup>
...
</Directory>

<Directory /usr/share/phpmyadmin/libraries>
...
</Directory>

<Directory /usr/share/phpmyadmin/setup/lib>
...
</Directory>

来自 Apache 2.2 文档:(2.4 相同)

<目录></目录>用于包含一组仅适用于指定目录、该目录的子目录以及相应目录中的文件的指令。可以使用目录上下文中允许的任何指令。

Directory-path 可以是目录的完整路径,也可以是使用 Unix shell 样式匹配的通配符字符串。在通配符字符串中,?匹配任何单个字符,* 匹配任何字符序列。您还可以使用 [] 字符范围。

没有通配符与“/”字符匹配,因此<目录*/public_html>不会匹配/home/user/public_html,但是<目录/home/*/public_html>会匹配。

相关内容