У меня есть домен: example.com. Также есть субдомен, admin.example.com:
<VirtualHost *:80>
ServerName admin.example.com
ServerAlias admin
</VirtualHost>
Теперь я хочу сделать postfixadmin
панель управления доступна по адресу admin.example.com/postfix. Конфигурация по умолчанию в /etc/apache2/conf.d/postfixadmin
является:
Alias /postfixadmin /usr/share/postfixadmin
Как мне это изменить? Я хочу что-то вроде:
Alias admin/postfix /usr/share/postfixadmin
Изменить: я знаю, что могу просто создать символическую ссылку в корне документа, указывая на /usr/share/postfixadmin
, но я ищу решение через конфигурацию Apache.
Вероятно, есть несколько способов добиться этого. Я могу думать о двух способах:
Вы можете установить корень документа для admin
VirtualHost, а затем создайте postfixadmin
символическая ссылка на /usr/share/postfixadmin
. Что-то вроде:
<VirtualHost *:80>
ServerName admin.example.com
ServerAlias admin
DocumentRoot /var/www/admin
<Directory /var/www/admin>
Options +FollowSymLinks
</Directory>
</VirtualHost>
Сохранение оригинала alias
, вы можете установить некоторую директивную безопасность для виртуальных хостов, чтобы разрешить только 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>
Я знаю, что это старый вопрос, но я думаю, что он все еще актуален. В настоящее время доступ к Postfixadmin по-прежнему осуществляется через псевдоним Alias /postfixadmin /php/directory/of/postfixadmin
. Этот псевдоним теперь находится в /etc/apache2/conf-available/postfixadmin.conf
. Это не симлинк - это псевдоним в конфигурации apache. При таком подходе вы можете получить доступ к postfixadmin по пути URL /postfixadmin
на любых виртуальных хостах на вашем сервере. То же самое и с phpmyadmin, и с любым другим приложением, использующим этот подход псевдонима. Итак, вам нужна одна установка для всех виртуальных хостов: вы редактируете /etc/postfixadmin/config.inc.php
и /etc/postfixadmin/dbconfig.inc.php
и беги /etc/postfixadmin/setup.php
только один раз для всех виртуальных хостов. Однако, если PHP имеет другую конфигурацию или работает от имени другого пользователя, или Apache имеет разные директивы на каком-то виртуальном хосте, вам может потребоваться проверить конфигурации, специфичные для этого виртуального хоста. Я подозреваю, что это была проблема OP. Я заметил, что postfixadmin автоматически завершается сбоем, когда сеанс не работает, и, кроме того, права доступа к файлам конфигурации, особенно к базе данных, жесткие. Если у пользователя PHP нет соответствующих прав, произойдет сбой.
Оставьте исходное определение виртуального хоста таким, какое оно есть, и поместите в корень вашего документа каталог под названием "postfix". Поместите туда файлы postfixadmin. Затем это будет отображаться под вашим запрошенным admin.example.com/postfix