Serwery-Apache

Ten rozdział zawiera wskazówki dotyczące instalacji PHP z serwerem Apache, zarówno na systemach Unix i Windows.

Szczegóły instalacji PHP z Apache na systemach Unix.

Możesz wybrać parametry do dodania do configure w linii 8 z Kompletnej listy opcji konfiguracji.

Przykład 2-5. Instrukcja instalacji (wersja jako moduł Apache)

1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-x.x.x.tar.gz
4.  tar xvf php-x.x.x.tar
5.  cd apache_1.3.x
6.  ./configure --prefix=/www
7.  cd ../php-x.x.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. dla PHP 3: ./configure --activate-module=src/modules/php3/libphp3.a
    dla PHP 4: ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install

  Zamiast tego kroku możesz poprostu skopiować plik binarny httpd przebijając
  istniejący plik. Przedtem upewnij się, że serwer jest zastopowany.

15. cd ../php-x.x.x
16. dla PHP 3: cp php3.ini-dist /usr/local/lib/php3.ini
    dla PHP 4: cp php.ini-dist /usr/local/lib/php.ini

  Możesz wyedytować swój plik .ini aby ustawić opcje PHP. Jeśli
  chcesz użyć innej lokalizacji, użyj
  --with-config-file-path=/path w punkcie 8.

17. Wyedytuj swój plik httpd.conf lub srm.conf i dodaj:
      
     Dla PHP 3:   AddType application/x-httpd-php3 .php3
     Dla PHP 4:   AddType application/x-httpd-php .php
 
  W tym miejscu możesz wybrać dowolne rozszerzenie. .php jest tym sugerowanym.
  Możesz nawet użyć rozszerzenie .html .

18. Użyj zwykłej procedury dla uruchomienia serwera Apache. (Musisz zatrzymać
i ponownie uruchomić serwer, nie tylko spowodować przeładowanie serwera
używając sygnał HUP lub USR1.)

Zależnie od wersji Apache i rodzaju Uniksa, jest wiele możliwości aby zatrzymać i ponownie uruchomić serwer. Poniżej znajdują się typowe polecenia służące do reinstalacji serwera dla różnych wariantów Apache/Uniksa. Powinieneś zamienić /path/to/ na ścieżkę do właściwych aplikacji na swoich systemach.

1. Kilka wariantów Linuksa i SysV:
/etc/rc.d/init.d/httpd restart

2. Używając skrypty apachectl:
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl i httpsdctl (Używając OpenSSL), podobnie do apachectl:
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. Używając mod_ssl, lub innego serwera SSL, możesz ręcznie zatrzymać i
uruchomnić serwer:
/path/to/apachectl stop
/path/to/apachectl startssl

Lokalizacje binariów apachectl i http(s)dctl mogą się różnić. Jeśli twój system ma polecenia locate lub whereis albo which, mogą one pomóc w szukaniu programów contrl serwera.

Różne przykłady kompilacji PHP dla Apache:

./configure --with-apxs --with-pgsql

Stworzony zostanie współdzielona biblioteka libphp4.so które jest ładowana przez Apache używając linii LoadModule w pliku httpd.conf. W pliku libphp4.so zostanie zawarte wsparcie dla biblioteki PostgreSQL.

./configure --with-apxs --with-pgsql=shared

Tu także zostanie stworzona biblioteka współdzielona libphp4.so, ale zostanie stworzona także współdzielona biblioteka pgsql.so która może być załadowana do PHP używając dyrektywy 'extension' w pliku php.ini lub poprzez użycie w skrypcie funkcji dl().

./configure --with-apache=/path/to/apache_source --with-pgsql

Stworzona zostanie biblioteka libmodphp4.a, plik mod_php4.c i kilka dodatkowych plików, które zostaną skopiowane do katalogu src/modules/php4 który znajduje się w drzewie źródeł Apache. Potem skompiluj Apache używając --activate-module=src/modules/php4/libphp4.a a system budowania Apache stworzy libphp4.a który zostanie dołączony statycznie do pliku binarnego httpd. Obsługa PostgreSQLa zostanie włączona bezpośrednio do pliku binarnego httpd, a więc wynikiem będzie pojedyńczy plik binarny httpd który zawiera całe Apache i całe PHP.

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

To samo co powyżej, ale zamiast dołączania obsługi PostgreSQLL bezpośrednio do ostatecznego pliku httpd dostaniesz współdzieloną bibliotekę pgsql.so którą możesz załadować do PHP kożystając z pliku php.ini lub bezpośrednio używając dl().

Wybierając sposób budowania PHP powinieneś rozważyć wszystkie wady i zalety każdej metody. Budowanie jako obiekt współdzielony oznacza, że możesz kompilować osobno Apache i nie musisz rekompilować wszystkiego jeśli chcesz dodać lub zmienić PHP. Wbudowywanie PHP w Apache (metoda statyczna) oznacza, że PHP będzie się ładowało i uruchamiało szybciej. Aby uzyskać więcej informacji, zobacz stronę Apache na stronie wsparcia DSO.

Instalacja PHP na systemie Windows z Apache 1.3.x

Istnieją 2 sposoby aby skonfigurować PHP do pracy z Apache 1.3.x na systemie Windows. Pierwszy to wykorzystanie binariów CGI (php.exe), a drugi to użycie DLLa modułu Apache. W obu przypadkach musisz zatrzymać serwer Apache i wyedytować plik srm.conf lub httpd.conf aby przygotować Apache do pracy z PHP.

Pomimo że istnieje kilka sposobów konfiguracji PHP w Apache, te poniższe powinny wystarczyć każdemu początkującemu. Aby uzyskać więcej informacji o dyrektywach konfiguracyjnych przejrzyj dokumentację Apache'a.

Jeśłi odzipowałeś pakiet PHP do C:\php\ tak jak zostało to opisane w rozdziale Ręczny proces instalacji , musisz dodać do pliku konfiguracyjnego Apache te linie aby ustawić binaria CGI:

Druga z powyższych linii może znajdować się w aktualnych wersjach httpd.conf, ale jest wykomentowana. Po zmianie pliku konfiguracyjnego trzeba zrestartować serwer, na przykład NET STOP APACHE a potem NET START APACHE, jeśli uruchamiasz Apache jako Usługę Windows, lub użyj normalnych skrótów.

Jeśli chcesz używać PHP w postaci modułu Apache, upewnij się że plik php4ts.dll znajduje się w katalogu windws/system (dla Windows 9x/Me) lub winnt/system32 (dla Windows NT/2000/XP), nadpisując jakiekolwiek starsze pliki. Potem powinieneś dodać poniższe 2 linie do pliku konfiguracyjnego Apache:

Notatka: W Apache 1.3.22 dla Windows, domyślny plik konfiguracyjny (httpd.conf-dist-win) ma domyślnie dołączoną dyrektywę ClearModuleList. Jeśli ta dyrektywa znajduje się w pliku konfiguracyjnym, musisz dodać AddModule mod_php4.c do listy AddModule. W przeciwnym razie PHP nie będzie zarejestrowane jako moduł Apache.

Aby użyć opcji podświetlania kodu, po prostu stwórz skrypt PHP i wstaw do niego: <?php show_source ("original_php_script.php"); ?> . Zamień original_php_script.php na nazwę pliku którego źródło chcesz pokazać. (Jest to jedyny sposób na zrobienie tego, ponieważ pod systemem Windows nie ma opcji .phps).

Notatka: Na Win-Apache wszystkie znaki backslash ('\') w ścieżkach, jak na przykład "c:\directory\file.ext", muszą być zamienione na znaki slash ('/'), czyli "c:/directory/file.ext".