ispCP - Board - Support
Abweichende PHP-Direktiven für mehrere Subdomains - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega International Area (/forum-22.html)
+--- Forum: German Corner (/forum-26.html)
+--- Thread: Abweichende PHP-Direktiven für mehrere Subdomains (/thread-9816.html)



Abweichende PHP-Direktiven für mehrere Subdomains - yaispcpu - 03-03-2010 05:31 AM

Ich habe das Problem, dass zwei Subdomains bezüglich der PHP-Direktiven in php.ini konkurrieren:

z.B.
Code:
magic_quotes_gpc = On <=> magic_quotes_gpc = Off

php_value .. via .htaccess geht nicht, da php-fcgi

Gibt es da eine Lösung? Ich habe bisher noch nichts gefunden.


RE: Abweichende PHP-Direktiven für mehrere Subdomains - tomdooley - 03-03-2010 05:59 AM

Hi,

ich könnte mir höchstens vorstellen, dass Du einen eigenes PHP-Starter-Script für die Subdomains einbindest, wenn Du die Direktive nicht einmalig für alle Domains des Users einstellen kannst.

In /etc/apache2/ispcp/DOMAIN.conf kannst Du zusätzliche Eintragungen machen, z. B.:

<Directory /var/www/virtual/domain.tld/subdomain_mount>
FCGIWrapper /var/www/fcgi/TEST1/php5-fcgi-starter .php
</Directory>

Dann natürlich den fcgi-Domain-Ordner entsprechend in (Beispie) TEST1 kopieren, php.ini anpassen, owner überprüfen, Apache reload...

Habe ich allerdings noch nicht getestet, ist nur eine erste Idee...


RE: Abweichende PHP-Direktiven für mehrere Subdomains - yaispcpu - 03-04-2010 04:42 AM

Ja, genau das ist die Lösung!

Nachfolgend mal die Details dazu, mit folgenden Beispieldaten:
Benutzer vu2001, domain beispiel.de und Subdomain egroupware und php-fcgi (Standard)
OS: Ubuntu 8.04 LTS - ISPCP 1.03

1. Umgebung für neues PHP-Starter-Script einrichten
Code:
mkdir /var/www/fcgi/egroupware.beispiel.de
mkdir /var/www/fcgi/egroupware.beispiel.de/php5

cp /var/www/fcgi/beispiel.de/php5-fcgi-starter /var/www/fcgi/egroupware.beispiel.de
cp /var/www/fcgi/beispiel.de/php5/php.ini /var/www/fcgi/egroupware.beispiel.de/php5

2. Neues PHP-Starter-Script anpassen
Code:
vi /var/www/fcgi/egroupware.beispiel.de/php5-fcgi-starter
Hier folgenden Wert suchen und wie folgt beschrieben, entsprechend ändern:
Code:
PHPRC="/var/www/fcgi/egroupware.beispiel.de/php5/"

3. Neue PHP.ini nach individuellen Bedürfnissen anpassen:
Code:
vi /var/www/fcgi/egroupware.beispiel.de/php5/php.ini
So z.B. für egroupware folgende Werte (entnommen aus der .htaccess):
Code:
max_execution_time = 60
magic_quotes_gpc = Off
upload_max_filesize = 16M
session.gc_divisor = 10
mbstring.func_overload = 7

4. Wichtig: Eigner für die neuen Dateien setzen!
Code:
chown -R vu2001:vu2001 /var/www/fcgi/egroupware.beispiel.de

5. Nun ISPCP bzw. den Apache anweisen, künfig für die Subdomain egroupware.beispiel.de anstelle des für die domain beispiel.de standardmäßig verwendete PHP-Starter-Script nun das neue Script zu verwenden.
Code:
vi /etc/apache2/ispcp/egroupware.beispiel.de.conf

Die Vorlage für folgende Direktiven habe ich aus /etc/apache2/sites-available/ispcp.conf aus der Sektion # httpd [egroupware.beispiel.de] entnommen und entsprechend abgeändert.

Code:
#
# Custom apache configuration for beispiel.de
#
# Any changes made to this file will be preserved.
# ispCP doesn't and won't verify the contents of this file.
#
# This file should NOT be deleted, otherwise apache will fail to start
#
<IfModule mod_fcgid.c>
    Include /etc/apache2/mods-available/fcgid_ispcp.conf
    <Directory /var/www/virtual/beispiel.de/egroupware/htdocs>
        FCGIWrapper /var/www/fcgi/egroupware.beispiel.de/php5-fcgi-starter .php
        Options +ExecCGI
    </Directory>
    <Directory "/var/www/fcgi/egroupware.beispiel.de">
        AllowOverride None
        Options +ExecCGI MultiViews -Indexes
        Order allow,deny
        Allow from all
    </Directory>
</IfModule>


6. .htaccess deaktivieren
Nach frischer Installation von egroupware wird im Webverzeichnis eine .htaccess erstellt. Die hier enthaltenen PHP-Direktiven sind bei fcgi unzulässig und verursachen folgerichtig Fehler 500
Code:
mv /var/www/virtual/beispiel.de/egroupware/.htaccess /var/www/virtual/beispiel.de/egroupware/htaccess
[code]

7. Apache neu starten
[code]
/etc/init.d/apache2 reload

8. Das wars! Nun können für die Subdomain egroupware.beispiel.de via PHP.ini Direktiven genutzt werden, die exklusiv für die Subdomain gültig sind und keinen (ungewollten) Einfluss auf die domain an sich sowie deren weitere Subdomains haben. Cool

Viele Dank für den Tip! Smile