php bfadd,PHP: Installation - Manual

Installation

In diesem Abschnitt geht es um übliche Fragen zur Installation von PHP. PHP

gibt es für fast jedes Betriebssystem

und fast jeden Webserver.

Um PHP zu installieren, folgen Sie bitte den Anweisungen im Installation und Konfiguration.

Warum sollte ich Apache2 mit threaded MPM nicht in einer

Produktionsumgebung verwenden?

PHP ist Klebstoff. Es ist der Klebstoff, der verwendet wird, um coole

Web-Anwendungen zu erstellen indem er dutzende von Bibliotheken von

Drittanbietern zusammenklebt und sie über eine intuitiv und einfach

erlernbare Schnittstelle als zusammenhängende Einheit erscheinen lässt.

Die Flexibilität und die Mächtigkeit von PHP sind auf die Stabilität und

Robustheit der zugrunde liegenden Plattform angewiesen. Es braucht ein

funktionierendes Betriebssystem, einen funktionierenden Webserver und

funktionierende Bibliotheken Dritter, um zusammen zu kleben. Wenn eines

davon nicht mehr funktioniert, braucht PHP Wege, um die Probleme

erkennen und schnell beheben zu können. Wenn Sie das zugrunde liegende

Gerüst dadurch komplexer machen, dass Sie keine völlig voneinander

getrennten Ausführungsthreads und Speichersegmente und keine starke

Sandbox für jede einzelne Anfrage haben, lassen Sie weitere

Schwachstellen ins System von PHP einfließen.

Falls Sie threaded MPM benutzen wollen, sollten Sie nach einer

FastCGI-Konfiguration schauen, in der PHP in seinem eigenen

Speicherbereich läuft.

Unix/Windows: Wo sollte sich meine php.ini befinden?

Unter Unix sollte sie standardmäßig in

/usr/local/lib sein, was

/lib ist. Die Meisten werden

das beim Übersetzen mit der Option --with-config-file-path

ändern wollen. Sie können das, z.B. mit

--with-config-file-path=/etc

festlegen. Dann kopieren Sie die

php.ini-development der Distribution nach

/etc/php.ini und editieren sie, um alle gewünschten

lokalen Änderungen vorzunehmen.

--with-config-file-scan-dir=PATH

Unter Windows ist der standardmäßige Pfad für die php.ini das

Windows-Verzeichnis. Falls die den Apache Webserver verwenden, wird die

php.ini zuerst im Apache-Installationsverzeichnis, z.B.

c:\program files\apache group\apache, gesucht.

Dadurch können Sie auf dem selben Rechner verschiedene

php.ini-Dateien für verschiedene Apache-Versionen haben.

Siehe auch das Kapitel über die Konfigurationsdatei.

Unix: I habe PHP installiert, aber jedesmal, wenn ich eine Seite

aufrufe, bekomme ich die Meldung 'Document Contains No Data'! Woran

liegt das?

Das bedeutet wahrscheinlich, dass PHP irgend ein Problem hat und einen

Core Dump (Speicherauszug) erzeugt. Schauen Sie in der Fehler-Logdatei

Ihres Servers nach, ob das der Fall ist und versuchen Sie dann das

Problem mit einem kleinen Test-Script zu reproduzieren. Falls Sie sich

mit 'gdb' auskennen, ist es für die Entwickler beim Lokalisieren des

Problems sehr hilfreich, wenn Sie Ihrem Fehlerbericht einen Backtrace

hinzufügen. Falls Sie PHP als Apache-Modul verwenden, können Sie in etwa

Folgendes versuchen:Stoppen Sie Ihre httpd-Prozesse

gdb httpd

Stoppen Sie Ihre httpd-Prozesse

> run -X -f /pfad/zur/httpd.conf

Rufen Sie mit Ihrem Browser die URL auf, die das Problem verursacht

> run -X -f /path/to/httpd.conf

gdb sollte Sie jetzt darüber in Kenntnis setzen, falls Sie einen Core

Dump bekommen

Geben Sie ein: bt

Sie sollten Ihren Backtrace in Ihren Fehlerbericht einfügen und

diesen unter » https://bugs.php.net/

abgeben.

Falls Sie in Ihrem Script Funktionen regulärer Ausdrücke

(

Unix: Ich habe PHP mit RPM-Paketen installiert, aber Apache verarbeitet

die PHP-Seiten nicht. Was ist da los?

Unter der Annahme, dass Sie sowohl Apache als auch PHP mit RPM-Paketen

installiert haben, müssen Sie einige oder alle der folgenden Zeilen in

die Datei httpd.conf einfügen oder die Kommentarzeichen davor

entfernen:

# Extra Modules

AddModule mod_php.c

AddModule mod_perl.c

# Extra Modules

LoadModule php_module modules/mod_php.so

LoadModule php5_module modules/libphp5.so

LoadModule perl_module modules/libperl.so

Und fügen Sie

AddType application/x-httpd-php .php

... in die globalen Eigenschaften oder in die Eigenschaften der

VirtualDomain, für die Sie PHP-Unterstützung benötigen, ein.

Unix: Ich habe Apache mit dem FrontPage-Erweiterungs-Patch versehen und

plötzlich funktioniert PHP nicht mehr. Ist PHP zur FrontPage-Erweiterung

für Apache inkompatibel?

Nein, PHP funktioniert bestens mit der FrontPage-Erweiterung. Das

Problem liegt darin, dass der FrontPage-Patch mehrere Apache-Strukturen

verändert, auf die sich PHP verlässt. Eine Neuübersetzung von PHP

(mittels 'make clean ; make'), nachdem der Patch angewandt wurde, löst

das Problem.

Unix/Windows: Ich habe PHP installiert, aber wenn ich versuche, mit

meinem Browser ein PHP-Script aufzurufen, erhalte ich eine leere Seite.

Wenn Sie sich im Browser den Quelltext der Seite anschauen, werden Sie

vermutlich den Quellcode Ihres PHP-Scripts sehen können. Das bedeutet,

dass der Webserver das Script nicht zur Interpretation an PHP übergeben

hat. Mit Ihrer Server-Konfiguration ist etwas nicht in Ordnung -

überprüfen Sie Ihre Server-Konfiguration nochmal genau anhand der

PHP-Installationsanleitung.

Unix/Windows: Ich habe PHP installiert, aber wenn ich versuche, mit

meinem Browser ein PHP-Script aufzurufen, erhalte ich vom Server einen

500 Fehler.

Beim Versuch des Servers PHP zu starten ist etwas schiefgegangen.

Wechseln Sie auf der Kommandozeile (in der Eingabeaufforderung) in das

Verzeichnis, das die ausführbare PHP-Datei (unter Windows

php.exe) enthält und lassen Sie

php -i laufen, um eine sinnvolle Fehlermeldung zu

bekommen. Falls PHP irgendwelche Probleme bei der Ausführung hat, werden

entsprechende Fehlermeldungen ausgegeben, die Ihnen Hinweise darauf

liefern, was zu tun ist. Falls sich der Bildschirm mit HTML-Quelltext

füllt (die Ausgabe der Funktion

Manche Betriebssysteme: Ich habe PHP ohne Fehlermeldungen installiert,

aber wenn ich versuche, Apache zu starten, erhalte ich Fehler wegen

undefinierter Symbole:

[mybox:user /src/php5] root# apachectl configtest

apachectl: /usr/local/apache/bin/httpd Undefined symbols:

_compress

_uncompress

Das hat nichts mit PHP zu tun, sondern mit den

MySQL-Client-Bibliotheken. Manche benötigen --with-zlib, manche nicht. Auf diese Frage

wird in den MySQL FAQ eingegangen.

Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem

Browser ein PHP-Script aufzurufen, erhalte ich die Fehlermeldung:

cgi error:

The specified CGI application misbehaved by not

returning a complete set of HTTP headers.

The headers it did return are:

Diese Fehlermeldung bedeutet, dass PHP daran gescheitert ist, überhaupt

irgendwas auszugeben. Wechseln Sie auf der Kommandozeile (in der

Eingabeaufforderung) in das Verzeichnis, das die ausführbare PHP-Datei

(unter Windows php.exe) enthält und lassen Sie

php -i laufen, um eine sinnvolle Fehlermeldung zu

bekommen. Falls PHP irgendwelche Probleme bei der Ausführung hat, werden

entsprechende Fehlermeldungen ausgegeben, die Ihnen Hinweise darauf

liefern, was zu tun ist. Falls sich der Bildschirm mit HTML-Quelltext

füllt (die Ausgabe der Funktion

Funktioniert PHP erst mal auf der Kommandozeile, versuchen Sie nochmal,

das Script mit dem Browser aufzurufen. Falls das immer noch misslingt,

könnte das eine der folgenden Ursachen haben:

Die Zugriffsberechtigungen Ihres PHP-Scripts, Ihrer

php.exe, php5ts.dll,

php.ini oder irgendeiner PHP-Erweiterung die Sie versuchen

zu laden, sind für den anonymen Internetbenutzer

ISUR_ nicht ausreichend.

Die Scriptdatei existiert nicht (oder ist vielleicht, bezogen auf Ihr

Web-Wurzelverzeichnis, nicht da, wo Sie denken). Beachten Sie, dass

Sie beim IIS diesen Fehler aufspüren können, wenn Sie im Internet

Services Manager beim Einstellen der script mappings die Option 'check

file exists' ankreuzen. Falls dann eine Scriptdatei nicht existiert

gibt der Server stattdessen einen 404 Fehler zurück. Das hat außerdem

den zusätzlichen Vorteil, dass der IIS die erforderlichen

Authentisierungen an Ihrem Script auf Grundlage der

NTLanMan-Berechtigungen für Sie durchführt.

Windows: Ich habe alle Anweisungen befolgt, aber ich erreiche keine

Zusammenarbeit zwischen PHP und den IIS.

Stellen Sie sicher, dass jeder Benutzer, der ein PHP-Script ausführt,

die Berechtigung hat php.exe auzuführen! Der IIS

verwendet den Benutzer anonymous, der bei der Installation des IIS

hinzugefügt wird. Dieser Benutzer benötigt die entsprechenden

Berechtigungen für php.exe. Außerdem benötigt auch

jeder angemeldete Benutzer die Berechtigung php.exe

auszuführen. Dem IIS4 müssen Sie mitteilen, dass PHP eine Script-Engine

ist. Lesen Sie auch diese

FAQ.

Wenn Ich PHP mit IIS, PWS, OmniHTTPD oder Xitami als CGI laufen lasse,

bekomme ich die folgende Fehlermeldung: Security Alert! PHP

CGI cannot be accessed directly..

Sie müssen die cgi.force_redirect-Anweisung auf 0 setzen.

Weil diese Anweisung standardmäßig auf 1 gesetzt ist,

müssen Sie darauf achten, dass sie nicht mit einem ;

auskommentiert ist. Wie alle Anweisungen wird auch diese in der

php.ini gesetzt.

Wegen des standardmäßigen Werts von 1 ist es äußerst

wichtig sicherzustellen, dass die richtige php.ini gelesen wird. Lesen

Sie für Einzelheiten diese

FAQ.

Wie kann ich herausfinden, ob meine php.ini gefunden und gelesen wird?

Anscheinend ist das nicht der Fall, weil meine Änderungen nicht

übernommen werden.

Rufen Sie php.ini von PHP gelesen wird. Fast ganz oben gibt es einen Punkt

namens Configuration File (php.ini). Dort können Sie

feststellen, wo PHP nach der php.ini sucht und ob sie gelesen wird

oder nicht. Falls es dort nur einen VerzeichnisPFAD gibt,

wird sie nicht gelesen und Sie sollten Ihre php.ini in dieses

Verzeichnis legen. Falls der Pfad die php.ini beinhaltet, dann wird

sie auch gelesen.

Wenn Ihre php.ini gelesen wird und Sie PHP als Modul benutzen, müssen

Sie Ihren Webserver neu starten, nachdem Sie Änderungen an der php.ini

vorgenommen haben.

Wie füge ich unter Windows mein PHP-Verzeichnis zu PATH

hinzu?

Unter Windows 7, XP, Vista, 2008, 2012 und höher:Gehen Sie in die Systemsteuerung und öffnen Sie das System-Icon

(Start → Systemsteuerung)

Gehen Sie zum Register 'Erweitert'

Klicken Sie auf den Button 'Umgebungsvariablen'

Schauen Sie in das Fenster 'Systemvariablen'

Suchen Sie nach dem Pfad-Eintrag PATH (Sie müssen evtl. blättern um

ihn zu finden)

Doppelklicken Sie auf den Pfad-Eintrag

Geben Sie Ihr PHP-Verzeichnis mit vorangestelltem ';' am Ende ein

(z.B. ;C:\php)

Drücken Sie auf OK

Unter Windows 98/Me müssen Sie die Datei

autoexec.bat editieren:Öffnen Sie den Editor (Start → Ausführen und notepad eingeben)

Öffnen Sie die Datei C:\autoexec.bat

Finden Sie die Zeile mit PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... und

fügen Sie ;C:\php am Ende der Zeile hinzu

Speichern Sie die Datei und starten Sie Ihren Computer neu

Hinweis:

Führen Sie einen Neustart durch, nachdem Sie die obigen Schritte

befolgt haben, um sicher zu stellen, dass die

PATH-Änderungen übernommen werden.

Das PHP Handbuch hat früher empfohlen, Dateien ins

Windows-Systemverzeichnis zu kopieren, weil sich dieses Verzeichnis

(C:\Windows, C:\WINNT, etc.)

standardmäßig im Pfad (PATH) des Systems befindet.

Dateien ins Windows-Systemverzeichnis zu kopieren könnte Probleme

verursachen und es wird schon lange davon abgeraten.

Wie mache ich unter Windows die Datei php.ini für PHP verfügbar?

Es gibt mehrere Möglichkeiten, das zu erreichen. Falls Sie Apache

benutzen, lesen Sie die für die jeweilige Installation bestimmte

Anleitung (Apache 1,

Apache 2). Andernfalls

müssen Sie die Umgebungsvariable PHPRC setzen:

Unter Windows:Gehen Sie in die Systemsteuerung und öffnen Sie das System-Icon

(Start → Einstellungen → Systemsteuerung → System oder

einfach Start → Systemsteuerung → System)

Gehen Sie zum Register 'Erweitert'

Klicken Sie auf den Button 'Umgebungsvariablen'

Schauen Sie in das Fenster 'Systemvariablen'

Klicken Sie auf 'Neu' und geben Sie 'PHPRC' als Name für die Variable

ein und als Wert für die Variable das Verzeichnis, in dem sich die

php.ini befindet (z.B. C:\php)

Drücken Sie auf OK und starten Sie Ihren Computer neu

Unter Windows 98/Me müssen Sie die Datei

autoexec.bat editieren:Öffnen Sie den Editor (Start → Ausführen und notepad eingeben)

Öffnen Sie die Datei C:\autoexec.bat

Fügen Sie am Ende der Datei eine neue Zeile ein: set

PHPRC=C:\php (ersetzen Sie C:\php mit

dem Verzeichnis, in dem sich die php.ini befindet). Bitte beachten

Sie, dass der Pfad keine Leerzeichen enthalten darf. Falls Sie PHP

zum Beispiel in C:\Program Files\PHP installiert

haben, müssen Sie stattdessen C:\PROGRA~1\PHP

eingeben.

Speichern Sie die Datei und starten Sie Ihren Computer neu

Ist es möglich, die Apache Content-Negotiation (MultiViews Option) mit

PHP zu verwenden?

If links to PHP files include extension, everything works perfect. This

FAQ is only for the case when links to PHP files don't include extension

and you want to use content negotiation to choose PHP files from URL

with no extension. In this case, replace the line AddType

application/x-httpd-php .php with:

AddHandler php5-script php

AddType text/html php

This solution doesn't work for Apache 1 as PHP module doesn't catch

php-script.

Ist PHP auf die Bearbeitung von Anfragen mit der GET- und POST-Methode

beschränkt?

Nein, es ist möglich, jede Anfragemethode zu bearbeiten, z.B. auch

CONNECT. Ein korrekter Antwortstatus kann mit

Deny from all

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值