%20aufgerufen%20werden..png)
Ich habe einen Server mit mehreren verschiedenen Domänen (jede in einem separaten VHost). Jeder VHost läuft einwandfrei, führt PHP ordnungsgemäß aus usw. Zwei der Domänen sind beispielsweise foo.com und bar.com. Ich versuche, einen Alias auf foo.com zu erstellen, der Dateien aus einem Verzeichnis auf bar.com enthält. Einfach, oder?
# 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>
Es funktioniert einwandfrei, außer beim Versuch, ein PHP-Skript auszuführen. Unter meiner Konfiguration gibt der Aufruf von www.foo.com/bar-alias/script.php den Quellcode des Skripts zurück, anstatt es auszuführen. Ich habe mir den Kopf zerbrochen, um herauszufinden, wie ich Apache dazu bringen kann, PHP auf diese Weise auszuführen, und bin einfach nicht weitergekommen.
(Wenn esüberhauptmöglich, ich möchte symbolische Verknüpfungen oder ähnliches vermeiden. Dies scheint etwas zu sein, was ich rein innerhalb der Apache-Konfiguration tun können sollte, ich kann nur nicht herausfinden, wie das geht.)
Antwort1
Sieht so aus, als würde der Alias ausgeführt, bevor die vollständige HTTP-Konfiguration gelesen wurde. Steht die folgende Zeile vor oder nach Ihrem Alias? Versuchen Sie, sie nach oben zu verschieben:
Include conf.d/*.conf
Antwort2
Eigentlich ichdenkenIch habe es verstanden. Aus reiner Frustration habe ich Folgendes aus einem früheren Teil der Konfigurationen kopiert und in den <Directory>
Block für diesen Alias eingefügt ...
<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>
Und siehe da, es funktionierte wie erwartet. Ich werde noch ein bisschen daran herumhämmern (es scheint wirklich nicht nötig zu sein), aber vorerst funktioniert es gut genug.