PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : safe_mode für individuellen VirtualHost


Martin_B
04.09.2006, 12:57:00
Hallo und gleich direkt zum Prob:
meine Server-Umgebung:
Suse 9.3
Apache2
PHP 4.3.10

habe dabei folgende Probs:
1. Ich möchte für individuelle VirtualHosts den safe_mode aktivieren.
2. Und auch das memory_limit individuell anpassen können.

vorhandene Einstellungen:
-------------in der php.ini----------------
safe_mode = On
memory_limit = 16M
register_globals = Off

-------------in der httpd.conf----------------
-----<Global Environment>-----------------
...
<Directory />
Options -Indexes +FollowSymLinks +Includes
AllowOverride All
</Directory>
...
-----<Virtual server configuration>--------
...
#VHOST domainname.de
<VirtualHost *:80>
php_admin_value open_basedir /home/d/domainname.de/public_html/:/usr/local/lib/php:/tmp
DocumentRoot /home/d/domainname.de/public_html/
ServerName www.domainname.de
IndexOptions
DirectoryIndex index.htm index.html index.php index.php3
ServerAlias domainname.de *.domainname.de
CustomLog "|/usr/local/..." combined
SuexecUserGroup *user* *group*
</VirtualHost>
#/VHOST
...

Das ganze wird/wurde automatisch generiert und ist hier in der Originalfassung angegeben.
---------------------------------------------------------------------------

Zu Prob 2:
Klar ist mir soweit das ich Prob 2. in einer .htaccess-Datei lösen könnte durch einen Eintrag in Form von
php_value memory_limit 32M
Das klappt allerdings nicht. Wird nicht übernommen.

Noch ein Edit/Hinweis hinterher:
Die Einstellung -DirectoryListing- ist ja standardmäßig ausgeschaltet.
Durch die Angabe
Options +Indexes
in der .htaccess wird diese korrekt aktiviert.


zu Prob 1:
Hab die letzten Tage gegoogelt und auch das Forum durchsucht und auf den ersten Blick gute Lösungen gefunden:
http://www.apachefriends.org/f/viewtopic.php?t=15029&highlight=safemode
http://www.tanmar.info/content/view/26/52/
http://wiki.pi-noe.ac.at/ag/PHP_und_Sicherheit

Habe auch u.a. folgende Bücher:
Die Apache Server 2 Bibel (mitp)
Apache Webserver 2 (Addison-Wesley)

Allerdings funktioniert keine Lösung erfolgreich! Ich bekomms nicht hin!!
Der letzte Lösungsansatz aus dem Forum hier sah wirklich vielversprechend aus und habe in wie folgt umgesetzt:
...
#VHOST domainname.de
<VirtualHost *:80>
php_admin_value open_basedir /home/d/domainname.de/public_html/:/usr/local/lib/php:/tmp
DocumentRoot /home/d/domainname.de/public_html/
ServerName www.domainname.de
IndexOptions
DirectoryIndex index.htm index.html index.php index.php3
ServerAlias domainname.de *.domainname.de
CustomLog "|/usr/local/..." combined
SuexecUserGroup *user* *group*
# hier eingefügt...
<Directory /home/d/domainname.de/public_html/>
php_admin_flag safe_mode Off
AllowOverride All
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
#
</VirtualHost>
#/VHOST
...

Verblüffend ist:
Bei obiger Aktivierung, sage ich auch <Options Indexes> und DAS funktioniert/wird umgesetzt!

Natürlich wurde jedesmal nach Änderungen der Apache neu gestartet
/etc/init.d/apache restart

Der Erfolg für meine 2 Probs blieb aus. Benötige Hilfe!

meikel
04.09.2006, 22:56:26
Verwendest Du irgend eine ISP Software (Plesk & Co.)?

Martin_B
05.09.2006, 20:49:47
Der Server steht bei Strato. Die automatische Generierung erfolgt über ServerAdmin24 ehemals VISAS, ein Stratoeigenes Modul.
Das ganze ist so ziemlich komplett in php geschrieben worden, greift aber nicht so direkt wie Plesk oder Confixx. Heißt, Änderungen die an der php.ini oder httpd.conf umgesetzt werden, beißen sich nicht in der recht einfach gehaltenen Programmstruktur von ServerAdmin24. Eben bis auf meine zwei Probs die ich nicht hinbekomme.

Plesk oder Confixx lassen manuelle Änderungen (soweit ich weiß) ja nicht so ohne weiteres zu. Ist hier aber sowieso nicht das Thema.
Benötige eben eine hoffentlich funktionierende/passende Möglichkeit das ganze manuell umzusetzen/einzutragen.

meikel
05.09.2006, 23:07:58
Die automatische Generierung erfolgt über ServerAdmin24 ehemals VISAS,
...
Eben bis auf meine zwei Probs die ich nicht hinbekomme.
Die Preisfrage ist:
überschreibt visas Deine Änderungen im jeweiligen virtualhost oder nicht?

Bei Confixx zB. müssen solche Änderungen via "httpd spezial" (admin Menü) eingetragen werden. Manuelle Einträge werden gnadenlos überschrieben

Plesk generiert ebenfalls die virtualhost Definitionen aus der Datenbank. Manuelle Änderungen müssen deshalb mit einem Tool in die Plesk Datenbank importiert werden.

test
10.10.2006, 15:45:41
Hallo Martin,

Du kannst offensichtlich bei einigen Apache2-Versionen nicht mehr mit "on"/"off" arbeiten.
Nimm stattdessen "1"/"0":
php_value register_globals 0
php_value magic_quotes_gpc 1

Grüsse aus Hamburg
Tilo Ermlich
==============
http://www.netzpol.de
==============

meikel
10.10.2006, 22:36:09
Du kannst offensichtlich bei einigen Apache2-Versionen nicht mehr mit "on"/"off" arbeiten.
Nimm stattdessen "1"/"0":
php_value register_globals 0
php_value magic_quotes_gpc 1
Das ist falsch. Das sind Flags.

php_flag register_globals 0

Und wenn der Kram in die httpd.conf reingenagelt wird:
php_admin_flag register_globals 0

test
15.10.2006, 21:19:21
Hallo Meikel,

es wundert mich was Du da schreibst! Meinst Du, ich hätte das nicht getestet?

Nebenbei kannst Du ja noch mal Google anschmeissen:
"php_value register_globals 0" - 778 Treffer
"php_admin_flag register_globals 0" - 9 Treffer


Grüsse aus Hamburg
Tilo Ermlich
==============
http://www.netzpol.de
==============

meikel
16.10.2006, 00:16:02
es wundert mich was Du da schreibst! Meinst Du, ich hätte das nicht getestet?
Es reicht eigentlich, das Handbuch zu lesen.

Das Apachemodul unterscheidet zwischen zwei Typen: string und flag (bool)

Nebenbei kannst Du ja noch mal Google anschmeissen:
"php_value register_globals 0" - 778 Treffer
"php_admin_flag register_globals 0" - 9 Treffer

Jo. Das sind 9 richtige Antworten und 778 falsche. Selbst wenn 778 Texte besagen, 2+3=4, wäre das trotzdem falsch.

1. Der Unterschied zwischen php_flag und php_admin_flag: Fall A kann (falls .htaccess erlaubt ist) durch den User überschrieben werden. php_admin_flag nicht. Gilt sinngemäß auch für php_(admin_)value.

2. register_globals ist ein Flag und erwartet einen boolschen Wert, session.save_path ist ein value und erwartet einen String.