web-dev-qa-db-ja.com

ApacheでディレクトリからVirtualHostディレクトリへのエイリアスを作成するにはどうすればよいですか?

私はドメインを持っています: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構成の方法で解決策を探しています。

2
Artyom

これを実現するには、おそらく複数の方法があります。私が考えることができる2つの方法:

シンボリックリンク

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

<VirtualHost *:80>
    ServerName example.com

    <Directory /usr/share/postfixadmin>
        Order Deny,Allow
        Deny from All
    </Directory>
</VirtualHost>
3
Andy Shinn

私はそれが古い質問であることを知っていますが、それでもまだ関連があると思います。現在、Postfixadminは引き続きエイリアスAlias /postfixadmin /php/directory/of/postfixadminを介してアクセスされます。このエイリアスは/etc/Apache2/conf-available/postfixadmin.confにあります。これはsimlinkではなく、Apache設定のエイリアスです。このアプローチでは、サーバー内の任意の仮想ホストでURLパス/postfixadminを使用してpostfixadminにアクセスできます。 phpmyadminや、このエイリアスアプローチを使用する他のアプリケーションについても同様です。したがって、すべての仮想ホストに対して1つのインストールが必要です。/etc/postfixadmin/config.inc.php/etc/postfixadmin/dbconfig.inc.phpを編集し、すべての仮想ホストに対して/etc/postfixadmin/setup.phpを1回だけ実行します。ただし、PHPの構成が異なるか、別のユーザーとして実行されている場合、または一部の仮想ホストでApacheのディレクティブが異なる場合は、この仮想ホストに固有の構成を確認する必要があるかもしれません。これがOPが抱えていた問題であることに気づきました。セッションが機能しない場合、postfixadminが警告なしに失敗し、設定ファイルへのアクセス権、特にデータベースに対するアクセス権が厳しいことに気づきました。PHPユーザーに適切な権限がないため、失敗します。

0
user271898

元のvirtualhost定義をそのままにして、「postfix」というタイトルのドキュメントルート内にディレクトリを配置します。そこにpostfixadminファイルを置きます。これにより、要求されたadmin.example.com/postfixの下にレンダリングされます

0
Peter