PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu Apache



larsrueger
02.12.04, 21:26
ist es richtig, dass ein apache-server z.b. php in html lesbar fuer jeden browser uebersetzt?

im voraus vielen dank fuer die antworten!!!

Tomek
02.12.04, 21:34
Bitte was?

cane
02.12.04, 21:34
Der Apache interpretiert den php-Code.

Auf diese Weise können dynamische Seiten erzeugt werden, Schleifen und Abfragen realisiert werden und vieles mehr.

Beantwortet das deine Frage oder was willst Du genau wissen?

mfg
cane

larsrueger
02.12.04, 21:41
also koennte ohne den apache die php-seite nicht local geoeffnet werden?

cane
02.12.04, 21:48
also koennte ohne den apache die php-seite nicht local geoeffnet werden?

Du meinst ob Du PHP-Seiten ohne Apache lokal betrachten kannst oder was?

Das geht denke ich nicht weil der PHP-Code nicht interpretiert wird...

cane

PLacebo_W
02.12.04, 21:49
also koennte ohne den apache die php-seite nicht local geoeffnet werden?

sozusagen...!

mehr zum Thema php: http://www.glossar.de/glossar/z_php.htm

gruss PL

cane
02.12.04, 21:52
Die "state of art" Referenz rund um Webprogrammierung ist http://selfhtml.org

cane

Roger Wilco
02.12.04, 22:40
Der Apache interpretiert den php-Code.
Das stimmt ja so nicht direkt. Der PHP-Interpreter interpretiert den PHP-Code. Und für den Apache gibt es nunmal ein Modul, dass den PHP-Interpreter aufruft, bzw. die PHP-Skripte an den Interpreter weiterreicht.
Aber man kann PHP-Skripte durchaus auch ohne einen Webserver oder mit einem anderen Webserver als dem Apache verwenden.

cane
02.12.04, 23:11
Das stimmt ja so nicht direkt. Der PHP-Interpreter interpretiert den PHP-Code. Und für den Apache gibt es nunmal ein Modul, dass den PHP-Interpreter aufruft, bzw. die PHP-Skripte an den Interpreter weiterreicht.

Schon klar - mach mal weiter und erklär die Unterschiede zwischen PHP als Apache-Modul und der cgi-Version...

Ich schreibe grad an einem kurzen HowTo "Absichern von Apache & PHP in Multiuserumgebungen". Bis jetzt weiß ich nur, dass PHP als CGI per verschiedenen CGI-Wrappern genutzt werden kann, um sichere chroot- und setuid-Umgebungen fürr Skripte zu schaffen.

Da das aber nicht sehr performant ist sollte man besser bei mod-php bleiben und dasselbige lieber über open_basedir etc. sichern?

Hast Du mehr Infos zu Thema?

[QUOTE=Roger Wilco]
Aber man kann PHP-Skripte durchaus auch ohne einen Webserver oder mit einem anderen Webserver als dem Apache verwenden.[QUOTE]

Was soll das bringen die Scripte ohne Webserver "zu betrachten?"

mfg
cane

Roger Wilco
02.12.04, 23:36
Schon klar - mach mal weiter und erklär die Unterschiede zwischen PHP als Apache-Modul und der cgi-Version...
Der wichtigste Unterschied zwischen PHP als CGI und Modul dürfte sein, dass bei PHP als CGI für jedes Skript bzw. jeden Request ein neuer PHP-Prozess erstellt wird, während bei der Nutzung als Apache-Modul die Instanzen von PHP wiederverwendet werden und somit die Performanz steigt und der Speicherverbrauch verringert wird. Es gibt aber mit FastCGI die Möglichkeit, eine Art Zwitter zu erstellen, d. h. es wird von FastCGI eine Instanz von PHP (CGI) geladen und diese dann immer wieder verwendet. Details gibt unter http://www.fastcgi.com/.



Bis jetzt weiß ich nur, dass PHP als CGI per verschiedenen CGI-Wrappern genutzt werden kann, um sichere chroot- und setuid-Umgebungen fürr Skripte zu schaffen.
Stimmt, PHP CGI mit SuPHP, SuExec oder FastCGI ist potentiell sicherer, als wenn das PHP-Modul mit den Rechten des Webservers läuft. Allerdings könnte man auch das PHP-Modul mit einem entsprechenden MPM von Apache 2 nutzen (z. B. metux MPM), wenn denn alle Bibliotheken, auf die PHP zurückgreift threadsicher wären. Das ist noch ein großes Problem. Mit Metux MPM oder Perchild MPM könnte man auch mod_php mit verschiedenen UserIDs laufen lassen (bzw. die Apache Prozesse), aber da nicht alle Bibliotheken von PHP threadsafe sind, kommt es da mitunter zu seltsamen Ergebnissen bzw. Abstürzen.


Da das aber nicht sehr performant ist sollte man besser bei mod-php bleiben und dasselbige lieber über open_basedir etc. sichern?
Das kommt ganz auf die Anforderungen an. Wenn du der einzige bist, der Zugriff auf den Webserver hat, kannst du bedenkenlos mod_php einsetzen. Richtig interessant werden die suid-wrapper wie SuExec, SuPHP oder FastCGI bei Multiuser-Umgebungen, da eben jeder User nur auf die Daten zugreifen kann, die ihm auch gehören. Ausserdem haben dann als Nebeneffekt die Dateien, die mit PHP erstellt wurden auch automatisch den Benutzer als Besitzer und nicht den Webserver. Damit wird dann auch der (meiner Meinung nach sehr seltsame) Safemode von PHP unwichtig. Open_basedir Restrictions werden dann auch uninteressanter, da das Skript nur noch in Verzeichnisse schreiben kann, die dem User gehören (und die Rechte richtig gesetzt sind ;)).



Was soll das bringen die Scripte ohne Webserver "zu betrachten?"
Ein PHP-Skript kann durchaus auch andere Sachen machen, als eine Webseite zu generieren, z. B. Mails verschicken (kennst du PHPList?) oder einen Cronjob erstellen, oder, oder, oder. Gegenfrage: Was bringt mir ein Perl-/Python-/Whatever-Skript ohne Webserver? ;)
Im aktuellen Linuxmagazin ist u. a. auch ein Artikel, wie man mit PHP nette Adminskripte inkl. Menüs erstellt. Es gibt ja auch ncurses- und GTK-Bibliotheken für PHP...

cane
02.12.04, 23:50
Den Artikel hab ich schon gelesen...

Danke für dein ausführliches Statement Roger! Lese ich mir morgen früh beim ersten Kaffee @work in Ruhe durch :)

Es handelt sich bei mir aktuell um Multiuserumgebunden mit jeweils 30 - 100 Präsenzen. Ich erstelle zu jedem größeren Kontext den ich abhandle HowTos

--> Dieses HowTo wird einerseits den sicheren Kundenzugriff (über scponly - siehe HowTo-Bereich) als auch die Absicherung der Server beleuchten:
- Apache
- PHP
- Quotas
- CPU-Zeit und Speicher begrenzen
- (...)

Wenn ich noch eine Frage zu PHP habe weiß ich ja jetzt wer sich damit auskennt :)

mfg
cane