Auf einem unserer Server läuft derzeit zum Testen das neue Adminpanel ispCP. Eine xt:commerce-Installation machte Probleme, weil folgende .htaccess-Datei im Template-Ordner liegt:

<files *.html>
    Order Deny,Allow
    Deny from all
</files>
<files *.php>
    Order Deny,Allow
    Deny from all
</files>

Der komplette Template-Ordner kann nicht gelesen werden, da der Apache standardmäßig zu straff von ispCP konfiguriert wird. Das Resultat ist folgende Fehlermeldung im error_log:

Order not allowed here

Abhilfe schafft hier der Tipp, der schon in der .htaccess selbst drin steht:

# This is used with Apache WebServers
# The following blocks direct HTTP requests in this directory recursively
#
# For this to work, you must include the parameter 'Limit' to the AllowOverride configuration
#
# Example:
#
#<directory "/usr/local/apache/htdocs">
#  AllowOverride Limit
#
# 'All' with also work. (This configuration is in your apache/conf/httpd.conf file)
#
# This does not affect PHP include/require functions
#
# Example: http://server/catalog/includes/application_top.php will not work
</directory>

Es liegt also an AllowOverride. Allerdings kann man, genauso wie bei confixx nicht einfach die globale Apache-Konfiguration ändern, sondern muss hier an die ispCP-eigene drangehen. Auch das wird auf Dauer nicht gehen, da diese immer neu geschrieben wird.

Also fragt man sich: anhand welcher Daten schreibt ispCP die Konfiguration?

Die Antwort ist nach etwas Sucherei dann auch gefunden:
ispCP nutzt Template-Dateien.

Für die Hauptdomain des Kunden gibt es die folgende Template-Datei

/etc/ispcp/apache/parts/dmn_entry.tpl

Dort muss AllowOverride AuthConfig FileInfo in AllowOverride All abgeändert werden, und zwar an folgender Stelle

<directory {WWW_DIR}/{DMN_NAME}/htdocs>
    # httpd dmn entry PHP support BEGIN.
    # httpd dmn entry PHP support END.
    Options Includes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</directory>

Macht man das bei einer bestehenden Domain wird’s nicht funktionieren, also muss man die Domain neu anlegen.

Für Domain Aliase wird das gleiche in der

/etc/ispcp/apache/parts/als_entry.tpl

gemacht