[linux-l] RE: [linux-l] RE: [linux-l] RE: [linux-l] RE: [linux-l] RE: [linux-l] FTP-User und Script ausf?hrender User gleich

Volker Grabsch vog at notjusthosting.com
Fr Sep 2 14:12:16 CEST 2005


On Fri, Sep 02, 2005 at 12:01:24PM +0200, Manuel Tennert wrote:
> Thx erst mal fur den Link. Die Seite kenne ich schon, aber ich dachte, dass
> dort in dem Source-Code nicht php4-cgi mit bei ist. Steht ja leider
> nirgendwo eine Aufschlusselung.

Die PHP-Quellen enthalten *alle* Varianten. Das ist auch normal, so
machen es die meisten Projekte. Vor Compilieren wählst du aus, welche
Komponenten du compiliert haben willst und welche nicht, meistens
als Option beim "./configure"


Zu diesem Thema muss ich noch etwas weiter ausholen:

Die php4-Quellen sind etwas ... wie soll man sagen? ...  gewöhnungsbedürftig.
Normalerweile würde man doch folgendes erwarten:

Es gibt 3 Optionen (für ./configure), jenachdem was man compilieren will:
* php als cli
* php als cgi
* php als Apache2-Modul
Es spricht technisch nichts dagegen, auch alle 3 Sachen gleichzeitig zu
compilieren, Hauptsache die ausführbaren Dateien heißen unterschiedlich.
Das Apache2-Modul heißt eh "mod_php" oder so ähnlich. Und die anderen
beiden könnte man "php-cli" und "php-cgi" nennen. Das Programm "php"
wäre dann ein Symlink auf eines der beiden. Dies könnte man den User
fragen, oder sich einfach festlegen, ob mit "php" nun die CGI- oder CLI-
Version gemeint ist. Das wäre doch der normale Weg, den vernünftige
Menschen beschreiten würden, oder?

Aber nun schauen wir uns mal an, was die PHP-Leute gemacht haben.
Ich musste mir an den Kopf fassen, als ich das gelesen habe. Es ist
nur möglich, /eines/ dieser 3 Sachen zu compilieren. Einzige Ausnahme:
php/cli und das Apache2-Modul darf man gleichzeitig compilieren. Und
in jedem Fall heißt die ausführbare Datei "php". Das dürfte wohl auch
der Grund sein, warum man nicht gleichzeitig php/cgi und php/cli
compilieren darf. Dann haben sie auch noch "Default"-Vorgaben, also
wenn man "cgi" *und* "cli" angibt, hat "cli" Vorrang, und die cgi-
Version kann man vergessen. Und das ist auch nicht konsistent, früher
war's genau andersrum: Da bekam die cgi-Version den Vorrang.
			*ARRGGHHH*

Die Debian-Leute waren wenigstens so smart, und haben das Zeug
mehrmals compiliert, auseinandergerissen, und wieder sauber
zusammengesteckt. Daher findet man unter Debian solche Pakete wie
php4-cli
php4-cgi
libapache2-mod-php4
php4-common
php4-gd
php4-mysql
...

Kurz: Unter Debian bekommt man die Pakete so, wie man sie haben möchte,
und wie man es sinnvollerweise erwartet. Erst wenn man versucht,
selbst zu compilieren, merkt man, dass das gar nicht so einfach
hinzukriegen ist. Die PHP-Leute machen es einem unnötig schwer.

Andere Distributoren (z.B. SuSE) haben sich diese Mühe erst gar nicht
gemacht. Willst du unter SuSE die CGI-Version von php, dann hast du
Pech gehabt und darfst es dir nochmal selbst compilieren. Die haben
nur die CLI-Version und díe Apache-Module compiliert, denn das geht
ja gerade noch.

Und vorsicht! Wenn du das Zeug compiliert hast, dann hast du effektiv
zwei verschiedene php-Installationen, also installiere das selbst-
compilierte php (also deine CGI-Version) woanders hin, zum Beispiel:
	./configure --prefix=/usr/packages/php4-cgi
Die CGI- und CLI-Versionen werden bei dir unter SuSE nicht so schön
zusammenarbeiten wie unter Debian. Also sieh sie am besten als getrennt
an. Noch besser: Deinstalliere danach alle SuSE-php-Sachen. Aber erst,
wenn du dir sicher bist, dass auch wirklich alles läuft, und du mit
der schlechteren Performance der php4-cgi Version wirklich auskommst.


Viele Grüße,

	Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l