エイリアス経由でアクセスすると生のソースを表示する PHP スクリプト (apache)

エイリアス経由でアクセスすると生のソースを表示する PHP スクリプト (apache)

いくつかの異なるドメイン (それぞれ別の VHost 内) を持つサーバーがあります。各 VHost は正常に動作し、PHP などを適切に実行します。例として、ドメインの 2 つは foo.com と bar.com です。foo.com に、bar.com のディレクトリのファイルを含むエイリアスを作成しようとしています。簡単ですよね?

# Apache config file for foo.com
Alias /bar-alias /var/www/vhosts/bar.com/httpdocs/somedir
<Directory "/var/www/vhosts/bar.com/httpdocs/somedir">
        Options Indexes FollowSymLinks
        Order Allow,Deny
        Allow From All
        Deny From None
</Directory>

PHP スクリプトを実行しようとするとき以外は、問題なく動作します。私の設定では、www.foo.com/bar-alias/script.php にアクセスすると、スクリプトが実行されず、スクリプトのソース コードが返されます。Apache でこの方法で PHP を実行する方法を見つけようと頭を悩ませていますが、何も思いつきません。

(もしそれがまったく可能であれば、シンボリック リンクなどを作成しなくて済むようにしたいです。これは Apache の設定内でのみ実行できるはずですが、その方法がわかりません。

答え1

完全な http conf の読み取りが完了する前にエイリアスが実行されている可能性があります。次の行はエイリアスの前または後にありますか? 上に移動してみてください。
Include conf.d/*.conf

答え2

実は、私考える分かりました。まったくのフラストレーションから、構成の前の部分から次の内容をコピーし、<Directory>このエイリアスのブロックに貼り付けました...

<IfModule sapi_apache2.c>
    php_admin_flag engine on
    php_admin_flag safe_mode off
</IfModule>
<IfModule mod_php5.c>
    php_admin_flag engine on
    php_admin_flag safe_mode off
</IfModule>

そしてなんと、期待通りに動作し始めました。もう少し頑張ってみるつもりですが (本当にその必要はないようです)、当面は十分に機能しています。

関連情報