Deaktivieren von Extensions?

Deaktivieren von Extensions?

am 11.10.2007 18:55:00 von Jonas Werres

Hallo,
ist es möglich, per apache2.conf eine Extension nur für einen VirtualHost
oder ein Verzeichnis zu deaktivieren?

Konkret möchte ich, dass bestmmte Benutzer die mysql-Extension nicht mehr
verwenden können, zu Gunsten der neueren Varianten.

Re: Deaktivieren von Extensions?

am 12.10.2007 13:46:12 von dev-null-use-reply-adress

Jonas Werres schrieb:
> Hallo,
> ist es möglich, per apache2.conf eine Extension nur für einen VirtualHost
> oder ein Verzeichnis zu deaktivieren?

Ich kann auf unserem Server eine bestimmte Extension gezielt für
einzelne VirtualHosts ein und ausschalten, was laut Provider so
ginge:

php_admin_value espeedboat.enable 0

Dieses Mechanismus war mir bis vor kurzem auch unbekannt und ich
finde dazu auch auf die Schnelle nichts im Manual.

Ich vermute allerdings, daß die Extension das explizit anbietet,
und/oder daß es nur mit als shared kompolierten Extensions geht,
die also nicht fest mit dem PHP-Modul geladen werden.


Gruß
JPM

Re: Deaktivieren von Extensions?

am 12.10.2007 17:45:33 von Jonas Werres

> Ich vermute allerdings, daß die Extension das explizit anbietet,
> und/oder daß es nur mit als shared kompolierten Extensions geht,
> die also nicht fest mit dem PHP-Modul geladen werden.

Scheint so. Ich habe das mal eingefügt. Es gibt keine Fehlermeldung, aber in
der phpinfo() kommt mysql immernoch vor.
Ich tippe jetzt einfach mal darauf, das der Wert an die Extension
durchgereicht wird und die es einfach verschluckt.

Re: Deaktivieren von Extensions?

am 13.10.2007 14:12:59 von oliver.graetz

Jonas Werres schrieb:
> Hallo,
> ist es möglich, per apache2.conf eine Extension nur für einen=
VirtualHost
> oder ein Verzeichnis zu deaktivieren?
>=20
> Konkret möchte ich, dass bestmmte Benutzer die mysql-Extension nic=
ht mehr
> verwenden können, zu Gunsten der neueren Varianten.

Extensions sind grundsätzlich global. Da hat auch einen einfachen Gr=
und:
Wenn sie einmal im speicher sind, dann sind sie im Speicher! Da sie eh
nicht für jeden VirtualHost getrennt geladen werden, ist jede
Möglichkeit der Deaktivierung pro VirtualHost nicht physisch, sonder=
n
künstlich realisiert. Dazu bieten einige Extension eine Config-Optio=
n
"enable" an, wie in den anderen Beiträgen bereits angesprochen. Die
MySQL-Extension hat diese Option nicht, wie man schnell unter
http://de.php.net/mysql nachlesen kann. Eine weitere Möglichkeit der=

Deaktivierung sind die disable_funtions und disable_classes Optionen,
die allerdings wiederum nur global funktionieren.

Um irgendwelche Frickellösungen zu vermeiden, würde ich Folgend=
es
empfehlen: Deaktiviere mysql komplett! Für Anwendungen, Verzeichniss=
e
oder VirtualHost, denen du die Nutzung gestatten möchtest, installie=
rst
du ein weiteres PHP und aktivierst es über CGI-Definitionen in der
Apache-Config. CGI-Varianten von PHP kannst du nämlich beliebig viel=
e
haben. Die sind dann nicht ganz so flott wie das Modul, aber äuß=
erst
flexibel zu konfigurieren.

OLLi

--=20
"The good news is: The whiskey works."
[Lost in Translation]

Re: Deaktivieren von Extensions?

am 15.10.2007 11:37:36 von Jonas Werres

> Um irgendwelche Frickellösungen zu vermeiden, würde ich Folgendes
> empfehlen: Deaktiviere mysql komplett! Für Anwendungen, Verzeichnisse
> oder VirtualHost, denen du die Nutzung gestatten möchtest, installierst
> du ein weiteres PHP und aktivierst es über CGI-Definitionen in der
> Apache-Config. CGI-Varianten von PHP kannst du nämlich beliebig viele
> haben. Die sind dann nicht ganz so flott wie das Modul, aber äußerst
> flexibel zu konfigurieren.

Hi, CGI für alles andere wäre unpraktikabel. eher umgekehrt aber das gäbe
andere Probleme. Aber die Lösung war so einfach:
Mit Suhosin kann man Funktionen pro Verzeichnis blacklisten. Einmal auf
mysql_connect und Alternativen angewendet, und es läuft sauber. Danke.