我有一个域名: example.com。还有一个子域,admin.example.com:
<VirtualHost *:80>
ServerName admin.example.com
ServerAlias admin
</VirtualHost>现在,我想在admin.example.com/postfix上提供postfixadmin控制面板。/etc/apache2/conf.d/postfixadmin中的默认配置是:
Alias /postfixadmin /usr/share/postfixadmin我该怎么改呢?我想要的是:
Alias admin/postfix /usr/share/postfixadmin编辑:我知道我可以在document下创建一个指向/usr/share/postfixadmin的符号链接,但是我正在通过Apache的方法寻找一个解决方案。
发布于 2013-06-16 01:14:04
要做到这一点,可能有多种方法。我能想到两种方法:
您可以为admin VirtualHost设置文档根,然后创建指向/usr/share/postfixadmin的postfixadmin符号链接。类似于:
<VirtualHost *:80>
ServerName admin.example.com
ServerAlias admin
DocumentRoot /var/www/admin
<Directory /var/www/admin>
Options +FollowSymLinks
</Directory>
</VirtualHost>保留原始的alias,可以为每个虚拟主机设置一些diretory安全性,以便只允许admin虚拟主机访问目录。类似于:
<VirtualHost *:80>
ServerName admin.example.com
ServerAlias admin
<Directory /usr/share/postfixadmin>
Order Deny,Allow
Allow from All
</Directory>
</VirtualHost><VirtualHost *:80>
ServerName example.com
<Directory /usr/share/postfixadmin>
Order Deny,Allow
Deny from All
</Directory>
</VirtualHost>发布于 2016-03-01 06:22:45
我知道这是一个老问题,但我认为它仍然是相关的。目前,后置管理仍然是通过别名Alias /postfixadmin /php/directory/of/postfixadmin访问的。这个别名现在位于/etc/apache2/conf-available/postfixadmin.conf中。这不是简单链接--它是apache中的别名。使用这种方法,您可以在服务器中的任何虚拟主机中使用URL路径/postfixadmin访问postfixadmin。phpmyadmin或使用此Alias方法的任何其他应用程序也是如此。因此,所有虚拟主机都需要一个安装:编辑/etc/postfixadmin/config.inc.php和/etc/postfixadmin/dbconfig.inc.php,只对所有虚拟主机运行/etc/postfixadmin/setup.php一次。但是,如果PHP具有不同的配置或以不同用户的身份运行,或者Apache在某些虚拟主机中具有不同的指令,则可能需要检查特定于此虚拟主机的配置。我怀疑这就是“行动纲领”的问题所在。我注意到,当会话不工作时,postfixadmin会悄悄地失败,而且,对配置文件的访问权限,特别是对数据库的访问权限也很紧。如果PHP用户没有适当的特权,它将失败。
发布于 2013-06-15 12:40:19
保留原始虚拟主机定义的方式,并将一个目录放置在您的文档根目录中,名为"postfix“。把后置管理文件放在那里。然后,它将在请求的admin.example.com/postfix下呈现。
https://serverfault.com/questions/516042
复制相似问题