Installation auf UNIX Systemen

Dieser Abschnitt wird Sie durch die Konfiguration und Installation von PHP führen. Erforderliche Kenntnisse und Software:

"Quick Installation"- Anleitung (Apache Modul Version)


1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-3.0.x.tar.gz
4.  tar xvf php-3.0.x.tar
5.  cd apache_1.3.x
6.  ./configure --prefix=/www
7.  cd ../php-3.0.x
8.  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
9.  make
10. make install
11. cd ../apache_1.3.x
12. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
13. make
14. make install

  Sie können aber auch alternativ zu oben beschriebenen Schritt
  einfach die httpd binary auf Ihre existierende Binary übertragen In
  jedem Fall sollte darauf geachtet werden, den Server vorher
  herunterzufahren.
  
15. cd ../php-3.0.x
16. cp php3.ini-dist /usr/local/lib/php3.ini

  Sie können nun die php.ini unter /usr/local/lib/php3.ini editieren,
  um Ihre gewünschten PHP-Optionen einzustellen. Wenn Sie die php.ini
  lieber in einem anderen Verzeichnis haben möchten, dann sollten Sie
  Sie in Schritt 8 --with-config-file-path=/path angeben.

17. Editieren Sie nun Ihre httpd.conf or srm.conf folgendermassen: 
      
            AddType application/x-httpd-php3 .php3
 
    Es bleibt Ihnen völlig freigestellt, welche File-Extension Sie
    hier benutzen. ".php3" wird von uns lediglich empfohlen.

18. Starten Sie den Apache Web Server. Sie müssen den Server starten
    und beenden, ein einfacher Reload mittels des HUP oder USR1
    Signales ist nicht ausreichend.
      

Konfiguration

Es gibt zwei Möglichkeiten PHP zu konfigurieren.

Details über einige der verschiedenen Konfiguratrions- Optionen sind weiter unten aufgeführt.

Apache Modul

Um PHP als Modul in den Apache einzukompilieren, antworten Sie bitte "yes" auf die Frage "Build as an Apache module?" (die --with-apache=DIR option zu konfigurieren) und geben Sie das Stammverzeichnis der Apache Distribution an. Wenn Sie also die Apache Distribution in /usr/local/www/apache_1.2.4, entpackt haben, dann ist dieses Ihr Stammverzeichnis. Das Standart-Stammverzeichnis ist /usr/local/etc/httpd.

fhttpd Module

Um PHP als fhttpd Modul in den Apache einzukompilieren, antworten Sie "yes" auf die Frage "Build as an fhttpd module?" (die --with-fhttpd=DIR Option zu konfigurieren) und geben Sie das fhttpd source Stammverzeichnis an. Das Standartverzeichnis ist /usr/local/src/fhttpd. Wenn Sie fhttpd benutzen, wird PHP als Modul performanter und besser kontrollierbar und besitzt mehr Fähigkeiten zur Remote-Ausführung.

CGI version

Standartmäßig wird PHP als CGI-Programm installiert. Wenn Sie einen Webserver betreiben, auf dem PHP Module unterstützt werden, dann sollten Sie diese Variante aus Performancegründen den Vorzug geben. Wie auch immer, die CGI-Variante erlaubt es dem Apache Benutzer, verschiedene PHP-unterstützte Seiten unter verschiedenen Benutzer ID's zu ermöglichen. Sie sollten jedoch daran denken, sich mit den Sicherheitseinstellungen im Security chapter vertraut zu machen, wenn Sie PHP in der CGI - Variante einsetzen wollen.

Database Support Options

PHP unterstützt von Haus aus eine große Anzahl an Datenbanken (wie auch ODBC):

Adabas D


      --with-adabas=DIR
     

Kompiliert mit Adabas D Unterstützung. Parameter sind das Adabas D Installations-Verzeichnis. Standartmäßig ist dieses auf /usr/local/adabasd gesetzt.

Adabas home page

dBase


      --with-dbase
     

Schaltet die Unterstützung für DBase ein. Externe Bibliotheken werden nicht benötigt.

filePro


      --with-filepro
     

Schaltet die Unterstützung für FilePro ein. Nur Lese- Unterstützung. Externe Bibliotheken werden nicht benötigt.

mSQL


      --with-msql=DIR
     

Schaltet die Unterstützung für mSQL-Datenbanken ein. Das Parameter für diese Option ist das mSQL-Installations-Verzeichnis, standartmäßig unter /usr/local/Hughes . Dieses ist das Standartverzeichnis der mSQL2.0 Distribution. configure erkennt automatisch die Version von Ihrem mSQL, PHP unterstützt sowohl Version 1.0 wie auch 2.0 . Wenn Sie PHP mit mSQL 1.0 kompilieren, können Sie aber auch nur auf mSQL 1.0 zugreifen und vica versa.

See also mSQL Configuration Directives in the configuration file.

mSQL home page

MySQL


      --with-mysql=DIR
     

Aktiviert die die MySQL-Unterstützung. Als Parameter kann bei dieser Option das MySQL-Installationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local gesetzt.

Siehe auch: MySQL Konfiguration Direktiven in der Konfigurations- Datei.

MySQL home page

iODBC


      --with-iodbc=DIR
     

Aktiviert die iODBC-Unterstützung. Dieses Merkmal wurde erstmals für den iODBC-Treiber-Manager entwickelt, ein frei verteilbarer ODBC-Treiber-Manager, der unter vielen UNIX-Derivaten läuft. Als Parameter zu dieser Option kann das iODBC-Installations-Verzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local gesetzt.

FreeODBChome page or iODBC home page

OpenLink ODBC


      --with-openlink=DIR
     

Aktiviert die OpenLink ODBC-Unterstützung. Als Parameter kann bei dieser Option das OpenLink ODBC Installations-Verzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local/openlink gesetzt.

OpenLink Software's home page

Oracle


      --with-oracle=DIR
     

Aktiviert die Oracle-Unterstützung. Diese Option wurde getestet, und sollte zumindest mit den Orcale-Versionen 7.0 bis 7.3 laufen. Als Parameter kann das ORACLE_HOME Verzeichnis angegeben werden. Sie müssen diesen Parameter aber nicht angeben, wenn die Oracle-Umgebung gesetzt wurde.

Oracle home page

PostgreSQL


      --with-pgsql=DIR
     

Aktiviert die PostgresSQL-Unterstützung. Als Parameter kann bei dieser Option das PostgresSQL- Basisinstallationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local/pgsql gesetzt.

Siehe auch: Postgres Konfiguration Direkiven in der Konfigurations- Datei.

PostgreSQL home page

Solid


      --with-solid=DIR
     

Aktiviert Solid-Unterstützung. Als Parameter kann das Solid Installationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local/solid gesetzt.

Solid home page

Sybase


      --with-sybase=DIR
     

Aktiviert Sybase-Unterstützung. Als Parameter kann das Sybase Installationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /home/sybase gesetzt.

Siehe auch: Sybase Konfiguration Direktives in der Konfigurations- Datei.

Sybase home page

Sybase-CT


      --with-sybase-ct=DIR
     

Aktiviert Sybase-CT Unterstützung. Als Parameter kann das Sybase-CT Installationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /home/sybase gesetzt.

See also Sybase-CT Configuration Directives in the configuration file.

Velocis


      --with-velocis=DIR
     

Aktiviert Velocis Unterstützung. Als Parameter kann das Velocis Installationsverzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local/velocis gesetzt.

Velocis home page

Eine benutzerdefinierte ODBC Bilbliothek


      --with-custom-odbc=DIR
     

Aktiviert Unterstützung für eine benutzerdefinierte ODBC-Bibliothek. Als Parameter kann das Basisverzeichnis angegeben werden. Standartmäßig ist dieses auf /usr/local gesetzt.

Diese option verlangt, dass Sie zuvor eigene CUSTOM_ODBC_LIBS definiert haben, bevor Sie das Konfigurationsskript starten. Ebenfalls müssen Sie einen gültiger odbc.h Header irgendwo in in Ihrem Include-Pfad haben. Wenn Sie keinen haben, erstellen Sie ihn und schließen Sie diesen spezifischen Header mit ein. Ihr Header mag auch einige extra- Definitionen verlangen, besonders wenn es sich um eine Mehrbenutzer-Plattform handelt. Definieren Sie diese in CFLAGS.

Zum Beipspiel können Sie Sybase SQL überall auf QNX wie folgt benutzen: CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50

Unified ODBC


      --disable-unified-odbc
     

Deaktiviert das "Unfified ODBC Modul", bei welchem es sich um ein allgemeines Interface für Datenbanken mit ODBC-Interfaces handelt (z.B. für Solid und Adabas D). Es arbeitet auch mit normalen ODBC-Bibliotheken zusammen. Es wurde getestet mit iODBC, Solid, Adabas D und Sybase SQL. Hierbei ist es erforderlich, dass eines (nur eines) dieser Module oder das Velocis Modul aktiviert sind, oder eine benutzerdefinierte ODBC-Bibliothek spzifiziert ist. Diese Option steht nur zur Verfügung, wenn eine der folgenden Parameter verwendet wurden: --with-iodbc, --with-solid, --with-adabas, --with-velocis, or --with-custom-odbc.

Siehe auch: Unified ODBC Konfiguration Direktiven in der Konfigurations Datei.

LDAP


      --with-ldap=DIR
     

Aktiviert die LDAP (Lightweight Directory Access Protocol)Unterstützung. Als Parameter kann das LDAP Standart Installationsverzeichnis angegeben werden, welches standartmäßig auf /usr/local/ldap gesetzt ist.

Zusätzliche Informationen zu LDAP sind unter RFC1777 und RFC1778 verfügbar.

Weitere Konfigurations-Optionen

--with-mcrypt=DIR


      --with-mcrypt
     

Aktiviert die Unterstützung für die mycrypt Bibliothek. Siehe auch mcrypt Dokumentation für weitere Informationen. Wenn Sie das optionale DIR Argument benutzen, wird PHP in DIR/include nach mycrypt.h suchen.

--enable-sysvsem


      --enable-sysvsem
     

Aktiviert die Unterstützung für Sys V Semaphores (wird von den meisten UNIX-Derivaten unterstüzt). Siehe auch Semaphore und Shared Memory Dokumentation für weitere Informationen.

--enable-sysvshm


      --enable-sysvshm
     

Aktiviert die Unterstützung für Sys V Shared Memory (wird von den meisten UNIX-Derivaten unterstützt). Siehe auch Semaphore und Shared Memory Dokumentation für weitere Informationen.

--with-xml


      --with-xml
     

Aktiviert die Unterstützung für einen "nicht-validierenden" XML-Parser auf Basis von James Clarks's expat library. Siehe auch XML Funktions-Referenz für mehr Details.

--enable-maintainer-mode


      --enable-maintainer-mode
     

Aktiviert Extra- Dependenzen und Compiler Warnungen, welche von einigen PHP Entwicklern benutzt werden.

--with-system-regex


      --with-system-regex
     

Benutzt mehr die System Bibliothek für Regular Expression als als die gebündelte. Wenn Sie PHP als Servermodul benutzten, müssen Sie die gleiche Bibliothek bei der Installtion von PHP wie beim Linking des Servers verwenden. Aktivieren Sie diese Option, wenn die System-Bibliothek Features beinhaltet, die Sie unbedingt benötigen. Es wird jedoch empfohlen, die beiliegende Bibliothek wenn möglich zu benutzen.

--with-config-file-path


      --with-config-file-path=DIR
     

Mit dieser Option kann das Verzeichnis angegeben werden, in dem PHP nach der PHP.INI (Die Konfigurations Datei) sucht, wenn PHP gestartet wird.

--with-exec-dir


      --with-exec-dir=DIR
     

Erlaubt die Ausführung von ausführbaren Dateien in einem Verzeichnis nur, wenn PHP im safe mode betrieben wird. Standartmäßig ist dieses Verzeichnis /usr/local/bin. Diese Option setzt den Pfad nur auf den Standartwert. Wenn dieser geändert werden soll, kann dieses mit der safe_mode_exec_dir Direktive in der Konfigurations Datei später geändert werden.

--enable-debug


      --enable-debug
     

Aktiviert extra debug Informationen. Dieses ermöglicht es, genauere Informationen zu erhalten, wenn Probleme mit PHP auftreten. (Bedenken Sie, dass diese Option nichts mit Debugger-Fähigkeiten oder Informationen, die zu PHP-Skripten erhätlich sind, zu tun hat).

--enable-safe-mode


      --enable-safe-mode
     

Aktiviert "safe mode" standartmäßig. Diese Option zieht einige Restriktionen betreffend den Möglichkeiten von PHP nach sich, so z.B. das Öffnen von Dateien nur im DocumentRoot zu erlauben. Lesen Sie auch Security chapter für weitergehende Informationen. CGI-Benutzer sollten "safe mode" immer aktivieren. Diese Option setzt nur die standartmäßige Behandlung von PHP. Sie kann später per safe_mode Direktive in der Konfigurations Datei geändert werden.

--enable-track-vars


      --enable-track-vars
     

Aktiviert PHP_TRACK_VARS. Ermöglicht PHP zu verfolgen, von wo GET/POST/COOKIES Variablen in den Arrays HTTP_GET_VARS, HTTP_POST_VARS und HTTP_COOKIE_VARS kommen. Diese Option setzt lediglich den Standartwert, welcher später mit der track_vars Direktive in der Konfigurations Datei aktiviert bzw. deaktiviert werden kann.

--enable-magic-quotes


      --enable-magic-quotes
     

Aktiviert magic quotes. Diese Option setzt nur einen Standartwert. Die Option kann später mit der magic_quotes_runtime Direktive in der Konfigurations Datei aktiviert bzw. deaktiviert werden. Siehe auch die magic_quotes_gpc und die magic_quotes_sybase Direktiven.

--enable-debugger


      --enable-debugger
     

Aktiviert die interne PHP Debugger Unterstützung. Dieses Merkmal ist immer noch im Experimentier- Stadium. Siehe auch Debugger Konfiguration Direktiven in der Konfigurationsdatei.

--enable-discard-path


      --enable-discard-path
     

Wenn diese Option aktiviert ist, kann die PHP CGI-Binär-Datei sicher ausserhalb des Web-Verzeichnisses plaziert werden, und niemand wird .htaccess-Sicherheit umgehen können. Lesen Sie die Sektion im Sicherheitskapitel über diese Option.

--enable-bcmath


      --enable-bcmath
     

Aktiviert bc mathematische Funktionen zur Präzesion. Siehe auch bcmath.scale Option in der Konfigurationsdatei.

--enable-force-cgi-redirect


      --enable-force-cgi-redirect
     

Aktiviert den Sicherheits-Check für interne Server-Redirects. Sie sollten dieses Option aktivieren, wenn Sie die CGI-Version mit dem Apache benutzen.

Wenn Sie PHP als CGI Binärdatei benutzen, überprüft PHP selber zuerst immer, ob es als Redirekt benutzt wird (z.B. unter Apache mittels Action Direktiven). Dieses stellt sicher, dass PHP in dieser Variante nicht missbraucht werden kann, um Authentifizierungsmodelle des Webservers über direkte Aufrufe wie http://my.host/cgi-bin/php/secret/doc.html zu umgehen. Dieses Beispiel greift zwar auf http://my.host/secret/doc.html zu, aber berücksichtigt keine Sicherheitseinstellungen die durch die Directory-Einstellungen /secret in der httpd gesetzt wurden.

Wenn Sie diese option nicht aktivieren, erlauben Sie das Umgehen von httpd Sicherheits- und Authentifizierungs- Einstellungen. Tun Sie dieses nur, wenn Ihre Serversoftware nicht fähig ist, zu erkennen, ob ein sicherer Redirect erfolgt ist und alle ihre Dateien unterhalb des Document- Root und Benutzer-Verzeichnisse für jedermann zugänglich sein sollen / können.

Lesen Sie die Sektion im Sicherheits-Kapitel um mehr über diese option zu erfahren.

--disable-short-tags


      --disable-short-tags
     

Deaktiviert die Kurzform <? ?> PHP Tags. Sie müssen diese Option deaktivieren, wenn Sie PHP im Zusammanhang mit XML benutzen wollen. Wenn Sie die Kurzform deaktiviert haben, ist die einzige gültige Syntax für PHP-Code-Tags <?php ?>. Diese Option setzt nur den Standartwert. Die Option kann später in der short_open_tag Direktive in der Konfigurationsdatei geändert werden.

--enable-url-includes


      --enable-url-includes
     

Erlaubt es, Programme direkt von anderen HTTP- oder FTP- Servern mittels include() laufen zu lassen. Siehe auch include_path Option in der Konfigurationsdatei.

--disable-syntax-hl


      --disable-syntax-hl
     

Deaktiviert Syntax-Highlighting.

CPPFLAGS and LDFLAGS

Um die PHP-Installation dazu zu veranlassen in verschiedenen Verzeichnissen für Header unf Bibliotheken zu suchen, modifizieren Sie die CPPFLAGS und LDFLAGS Umgebungsvariablen. Wenn Sie eine sensible shell benutzen, sollte es möglich sein folgendes zu tun: LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure

Building

Wenn PHP fertig konfiguriert ist, können Sie die CGI-ausführbare Datei oder PHP-Bibliothek gerstellen. Das Kommando make sollte das für Sie erledigen. Wenn dieser Weg fehlschlägt, und Sie nicht herausfinden können warum, schauen Sie hier nach Problem- Sektion.

Testing

Wenn Sie PHP als CGI-Programm gergestellt haben, können Sie das Programm mit make test testen. Es ist immer eine gute Idee, Ihr Programm zu testen. So können Sie ein Problem möglicherweise früher erkennen und beseitigen.

Benchmarking

Wenn Sie PHP als CGI-Programm hergestellt haben, können Sie mit make bench ein Benchmark Test machen. Bedenken Sie, dass wenn der safe_mode standartmäßig aktiviert wurde, es sein kann, dass der Benchmark nicht fähig ist, den Benchmark zu vollenden, wenn der Vorgang länger als 30 Sekunden (die erlaubt sind) dauert. Dieses kommt daher, weil die Funktion set_time_limit() im safe_mode nicht benutzt werden kann. Benutzten Sie die max_execution_time Konfigurationseinstellungen um die Zeit für Ihre eigenen Skripte einzustellen. make bench ignoriert die Konfigurationsdatei.