Szerverek - Apache

Ez a fejezet a PHP Apache szerverre telepítésével foglalkozik, mind a Unix, mind a Windows változatokkal.

A PHP telepítése UNIX-on futó Apache-hoz

Az alábbi 8. sor configure opcióihoz a Configure opciók teljes listájából választhatsz továbbiakat.

Példa 3-5. Gyors telepítési utasítások PHP 4-hez (Apache modul verzió)

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. PHP 3 esetén: ./configure --activate-module=src/modules/php3/libphp3.a
    PHP 4 esetén: ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install

  Ehelyett a lépés helyett talán jobb, ha a httpd futtatható állományát
  a meglévőre rámásolod. Győződj meg róla, hogy előtte leállítottad
  a szervert!

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

  Szerkeszheted az .ini állományt, beállítva az opciókat.
  Ha máshova szeretnéd tenni ezt a fájlt, add meg a
  --with-config-file-path=/eleresi/ut paramétert a 8. lépésben.

17. Szerkeszd a httpd.conf vagy srm.conf fájlt és add hozzá:

     PHP 3 esetén:   AddType application/x-httpd-php3 .php3
     PHP 4 esetén:   AddType application/x-httpd-php .php

  Itt bármilyen kiterjesztést választhatsz. A .php csak a
  mi javaslatunk. Akár a  .html kiterjesztést is megadhatod.

18. Használd a szokásos módszert az Apache szerver újraindítására.
    (Le kell állítanod és újra kell indítanod a szervert, nem csak
    újratölteni egy HUP vagy USR1 jellel.)

Az Apache telepítésétől és a Unix változattól függően, sok módja lehet a szerver leállításának és újraindításának. Itt néhány jellemző utasítást adunk közre, hogyan kell újraindítani a kiszolgálót, de ezek eltérhetnek apache/unix telepítéstől függően. Az /ahol/van/-t cseréld ki arra a könyvtárra, ahol ezek a programok vannak:

1. különféle Linux és SysV változatok esetén:
/etc/rc.d/init.d/httpd restart

2. apachectl szkripttel:
/ahol/van/apachectl stop
/ahol/van/apachectl start

3. httpdctl és httpsdctl (OpenSSL), hasonlóan az apachectl-hez:
/ahol/van/httpsdctl stop
/ahol/van/httpsdctl start

4. mod_ssl vagy más SSL kiszolgáló használatakor esetleg a kézi megoldás:
    a leállításra és újraindításra:

/ahol/van/apachectl stop
/ahol/van/apachectl startssl

Az apachectl és http(s)dctl állományok elérési útvonala gyakran eltérő. Ha tudsz használni locate vagy whereis vagy which parancsokat, akkor azokkal megkerestetheted ezeket a szervert irányító programokat.

A PHP Apache szerverrel történő fordításának néhány példája:

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

Ez létre fog hozni egy libphp4.so megosztott modult, amit az Apache szerverbe egy LoadModule sorral lehet betölteni a httpd.conf fájlban. A PostgreSQL támogatás ebben az esetben beépített a libphp4.so modulba.

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

Ez szintén egy libphp4.so megosztott modult hoz létre az Apache számára, de egy pgsql.so modult is generál, amit később a PHP-be kell tölteni a php.ini extension direktívájával, vagy egy szkriptben a dl() függvénnyel.

./configure --with-apache=/az/apache/forras/eleresi/utja --with-pgsql

Ez létre fog hozni egy libmodphp4.a modult, egy mod_php4.c-t, és néhány kapcsolódó fájlt, és bemásolja az Apache forrás fába a src/modules/php4 könyvtárba. Ezután az Apache fordítása az --activate-module=src/modules/php4/libphp4.a opcióval történik, és az Apache fordító rendszer elő fog állítani egy libphp4.a fájlt, és statikusan befordítja a httpd bináris állományba. A PostgreSQL támogatás közvetlenül a httpd futattható állomány része, tehát a végső eredmény egy egyedülálló httpd fájl, ami minden Apache és PHP funkciót tartalmaz.

./configure --with-apache=/az/apache/forras/eleresi/utja --with-pgsql=shared

Majdnem megegyezik az előzővel, azonban a PostgreSQL támogatás nem közvetlenül a httpd futtatható állományba épül be, hanem létrejön egy pgsql.so megosztott modul, és ezt később a PHP-be töltheted a php.ini extension beállítással, vagy közvetlenül a dl() függvénnyel egy PHP szkriptben.

Amikor eldöntöd, hogy melyik fordítási módszert választod, vedd számba mindeegyik lehetőség előnyeit és hátrányait is. A különálló objektumként való fordításnak megvan az az előnye, hogy lehetőséged van az Apache-ot külön lefordítani, és nem kell mindig újrafordítani, amikor lecseréled a PHP-t. Az Apache-ba építés (statikus módszer) előnye, hogy a PHP gyorsabban fog betöltődni és futni. További információkért lásd az Apache DSO támogatásról szóló oldalát.

PHP telepítése Windows-on futó Apache alá

Két módja van a PHP Windows-on futó Apache 1.3.x alá telepítésének. Az egyik a CGI kezelőként futtatható php.exe, a másik az Apache modulként használandó dll. Mindkét esetben le kell állítanod az Apache-t, és az srm.conf vagy a httpd.conf fájlokat át kell szerkesztened, hogy Apache együttműködjön a PHP-val.

Kevés változata van a PHP beállításának Apache szerver alá, az alábbi verzió elég egyszerű a kezdők számára is. Nézz utána a további konfigurációs lehetőségeknek az Apache dokumentációdban.

Ha kicsomagoltad a PHP disztribúciót a c:\php\ könyvtárba a Kézi telepítés lépései fejezetnek megfelelően, akkor a következő sorokat kell beírnod az Apache konfigurációs fájlába, hogy CGI kezelőként futtassa PHP-t:

A második sorban már szerepel a httpd.conf-ban, csak ki van kommentezve. Miután átírtad a konfigurációs fájlt, ne felejtsd el, újraindítani a szervert, például Apache service-ként futtatásakor a NET STOP APACHE után egy NET START APACHE paranccsal, vagy használhatod a szokványos shortcut-okat.

Ha Apache modulként akarod használni a PHP-t, akkor a php4ts.dll-t másold a windows/system-be - Windows 9x/Me eseén vagy a winnt/system32 könyvtárba - Windows NT/2000/XP esetén (felülírva a régit). Ezután a következő két sort kell az Apache konfigurációs fájlába írni:

Megjegyzés: Apache 1.3.22 for Windows kezdő konfigurációs fájla (httpd.conf-dist-win) alapértelmezésben tartalmaz egy ClearModuleList direktívát. Ha ez a direktíva be van kapcsolva, akkor az AddModule mod_php4.c sort az AddModule listába kell tenni, mert máskülönben PHP nem lesz Apache modulként regisztrálva.

Ahhoz, hogy használhasd a szintaxis kiemelést, egyszerűen készíts egy PHP szkript fájlt és illeszd be ezt a kódot: <?php show_source ("eredeti_php_szkript.php"); ?>. Értelemszerűen helyettesítsd az eredeti_php_script.php részt a megmutatni kivánt forráskódot tartalmazó fájlal. (Ez az egyetlen módja ennek, mivel Windows-on nincs a .phps-hez hasonló lehetőség.)

Megjegyzés: Windows-os Apache alatt minden fordított perjel (backslash) helyett szimpla perjelet kell használni egy elérési út meghatározásakor, pl. "c:\konyvtar\file.kit" helyett "c:/konyvtar/file.kit".