Forum und email

Telepítés Unix rendszerre

Table of Contents

Ez a fejezet bemutatja, hogy miként kell feltelepíteni és beállítani a PHP-t Unix rendszeren. Mielőtt elkezded a telepítést, nézd meg a rendszerednek ás szerverednek megfelelő fejezetet is!

Mint ahogy azt kézikönyvünk az Általános telepítési szempontok című részben felvázolta, ebben a részben legfőképpen a web-centrikus telepítésekkel foglalkozunk, bár a PHP parancssori használatának telepítését is tárgyaljuk.

Számos módja van a PHP telepítésének a Unix rendszereken, vagy egy fordítási és konfigurálási eljárással, vagy különböző előre-csomagolt megoldások használatával. Ez a dokumentáció legfőképpen a fordítási és konfigurálási folyamatokra fekteti a hangsúlyt. Sok Unix-féle rendszernek van valamilyen telepítőrendszere. Ez segít feltelepíteni egy általános konfigurációt, de ha különböző szolgáltatáskészleteket szeretnél (mint például egy biztonságos szerver, vagy különböző adatbázis-meghajtók), magad kell fordítanod a PHP és/vagy a webszervert. Ha nem vagy jártas saját szoftver fordításában, jobb, ha utánanézel, hogy valaki már lefordított-e egy olyan PHP csomagot, amilyet szeretnél.

A fordításhoz nélkülözhetetlen előismeretek és szoftverek:

  • Alapvető Unix ismeretek ("make" és a C fordító használata)
  • Egy ANSI C fordító
  • flex: 2.5.4-es verzió
  • bison: 1.28-as (ajánlott), 1.35-ös, vagy 1.75-ös verzió
  • A web server
  • Bármilyen modul által igényelt elem (mint például a gd vagy pdf könyvtárak, stb.)

Az alapvető konfigurálási folyamatot a configure számára átadott parancssori paraméterek szabályozzák. A ./configure --help paranccsal kérhetsz egy listát a rendelkezésreálló opciókról, rövid magyarázatokkal. Ez a kézikönyv külön tárgyalja a különböző opciókat. Az alapvető opciókat a függelékben találod, a különböző kiterjesztés-specifikus opciók pedig a referencia oldalakon vannak leírva.

Amikor a PHP konfigurálása megtörtént, elkezdheted létrehozni a modulokat és/vagy a végrehajtható állományokat. A make parancs ezt el kell tudja intézni. Ha hiba lép fel, és nem tudod elképzelni, hogy miért, olvasd el a problémákról szóló részt.

Apache 1.3.x Unix rendszereken

Ez a rész a PHP Apache-hoz történő telepítéséhez tartalmaz megjegyzéseket és javaslatokat Unix rendszerek esetén. Az Apache 2-höz tartozó útbaigazítások és javaslatok külön oldalon találhatóak.

A 10. sorban a configure-nak átadandó argumentumokat a az alapvető konfigurációs beállítások listájából valamint a kiterjesztésekhez tartozó beállításokat a kézikönyv megfelelő részeiből válogathatod ki. A verziószámokat itt elhanyagoltuk, hogy bizonyosak legyünk abban, hogy az utasítások nem helytelenek. Az 'xxx' helyébe a fájlok neveiből származó megfelelő értékeket kell majd behelyettesítened.

Example#1 Telepítési parancsok (Apache osztott modul verzió) PHP-hez

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx

10. Itt konfigurálnod kell a PHP-t. Itt kell testreszabnod a PHP-t
    különféle opciókkal, mint pl. milyen kiterjesztések legyenek 
    bekapcsolva. Hajts végre egy ./configure --help parancsot, hogy
    megkapd a használható opciók listáját. Példánkban egy egyszerű
    konfigurációt készítünk Apache 1 és MySQL támogatással.
    Az apxs űtvonala különbözhet a példában szereplőtől.

      ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

    Ha a configure opciókat telepítés után szeretnéd megváltoztatni,
    csak az utolsó három parancsot kell újra kiadnod. Az új modul
    betöltéséhez, csak újra kell indítanod az Apache-t. Az Apache
    újrafordítása nem szükséges.
  
    Figyelj arra, hogy alapesetben a 'make install' a PEAR-t, 
    különböző PHP eszközöket, mint pl. phpize, a PHP CLI-t és egyebeket
    is telepít.

13. A php.ini állomány beállítása:

      cp php.ini-dist /usr/local/lib/php.ini

    PHP opciók beállításához szerkeszd az .ini fájlt. Ha szeretnéd a 
    php.ini-t máshova tenni, a 10. lépésben használd a 
    --with-config-file-path=/ut/vonal
    
    Ha a php.ini-recommended fájlt választod, ne felejtsd el elolvasni
    a változtatások listáját, mivel az befolyásolhatja a PHP működését.

14. Módosítsd a httpd.conf állommányt úgy, hogy a PHP modult töltse be.
    A LoadModule jobb oldalán szereplő útvonal a rendszereden lévő
    PHP modul útvonala kell legyen. A fenti make install parancs már
    el kellett végezze ezt helyetted, de jobb ha megbizonyosodsz róla.
        
    PHP 4 esetén:
            
      LoadModule php4_module libexec/libphp4.so

    PHP 5 esetén:
                      
      LoadModule php5_module libexec/libphp5.so
      
15. A httpd.conf AddModule részében, valahol a ClearModuleList alá
    tedd be ezt:
    
    PHP 4 esetén:
    
      AddModule mod_php4.c
      
    PHP 5 esetén:
    
      AddModule mod_php5.c

16. Meg kell mondani az Apache-nak, hogy bizonyos kiterjesztéssel
    rendelkező fájlokat a PHP-vel szerint értelmezzen. Például
    mondjuk meg az Apache-nak, hogy a .php fájlokat PHP-vel 
    interpretálja. Több kiterjesztést úgy adhatsz meg, hogy
    egyszerűen szóközzel választod el őket. Példaképpen itt még
    a .phtml-t adjuk meg.

      AddType application/x-httpd-php .php .phtml

    Elég népszerű, hogy a .phps kiterjesztést úgy állítják be, hogy
    a színezett PHP-t mutassa, ez így érhető el:
    
      AddType application/x-httpd-php-source .phps

17. Használd a normális eljárást az Apache szerver elindítására. (Le kell
    állítanod, majd elindítanod, nem elegendő a szerver újratöltése
    HUP vagy USR1 szignállal.)

A PHP-t statikus objektumként is telepítheted:

Example#2 Telepítési parancsok (Apache statikus modul verzió) PHP-hez

1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
2.  cd apache_1.3.x
3.  ./configure
4.  cd ..

5.  gunzip -c php-4.x.y.tar.gz | tar xf -
6.  cd php-4.x.y
7.  ./configure --with-mysql --with-apache=../apache_1.3.x
8.  make
9.  make install

10. cd ../apache_1.3.x

11. ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
    (Mindamellett, hogy ezen a ponton a libphp4.a nem létezik, a fenti sor
    helyes. Nem is kell léteznie, létre lesz hozva.)

12. make
    (most kell rendelkezzél egy httpd binárissal, amelyet az Apache bin 
    könyvtárába másolhatsz, ha ez az első telepítésed, majd a "make install" 
    parancsot is ki kell adnod)

13. cd ../php-4.x.y
14. cp php.ini-dist /usr/local/lib/php.ini

15. Szerkeszd a /usr/local/lib/php.ini állományt a PHP opciók beállításához. 
    Szerkeszd a httpd.conf vagy a srm.conf állományt és add hozzá ezt a sort:
    AddType application/x-httpd-php .php

Az Apache telepítéstől és a Unix változattól függően, több módon lehet a szervert leállítani vagy újraindítani. Az alábbiakban felsorolunk néhány a tipikus sorokat amelyeket különböző apache/unix konfigurációkon szerver-újraindításra használnak. Az /útvonal/ helyébe helyettesítsd a megfelelő alkalmazás útvonalát.

Example#3 Példa-utasítások az Apache újraindításához

1. Számos Linux és SysV variáns:
/etc/rc.d/init.d/httpd restart

2. Az apachectl szkriptek használata:
/útvonal/apachectl stop
/útvonal/apachectl start

3. A httpdctl és a httpsdctl (OpenSSL használata 
   esetén), hasonlóan az apachectl-hez:
/útvonal/httpsdctl stop
/útvonal/httpsdctl start

4. mod_ssl vagy más SSL szerver használata esetén, 
   kézzel kell leállítani és elindítani:
/útvonal/apachectl stop
/útvonal/apachectl startssl

Az apachectl és a http(s)dctl helyen gyakran változik. Ha van a rendszeredben locate, whereis vagy which parancs, ezek segíthetnek megtalálni a szervervezérlő programokat.

Itt egy másik példa a PHP Apache-hoz való fordítására:

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

Ez létrehozza a libphp4.so osztott könyvtárat ami az Apache-ba töltödik be a httpd.conf LoadModule sora által A PostgreSQL támogatás bele van építve ebbe a libphp4.so fájlba. library.

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

Ez létrehoz egy libphp4.so osztott könyvtárat az Apache számára, de egy pgsql.so osztott könyvtérat is készít, amely a PHP-be a php.ini extension direktívája által vagy a szkriptben szereplő dl() függvénnyel kerül betöltésre.

./configure --with-apache=/útvonal/apache_source --with-pgsql

Ez létrehoz egy libmodphp4.a könyvtárat, egy mod_php4.c-t és néhány velejáró fájlt és bemásolja ezeket az Apache forrásfájának src/modules/php4 könyvtárába. Ezután lefordítod az Apache-t --activate-module=src/modules/php4/libphp4.a opcióval, majd az Apache fordító rendszere létrehozza a libphp4.a-t, majd statikusan belinkeli a httpd binárisba. A PostgreSQL támogatás közvetlenül ebben a httpd binárisban van benne, így a végeredmény egy egyedüli httpd bináris, ami tartalmazza az egész Apache-t és az egész PHP-t.

./configure --with-apache=/útvonal/apache_source --with-pgsql=shared

Ez hasonló az előzővel, kivéve, hogy a PostgreSQL-t nem építjük közvetlenül bele a végső httpd-be, hanem készítünk egy pgsql.so osztott könyvtárat, amit betölthetsz a PHP-be php.ini-ből, vagy a dl() függvénnyel.

Amikor a PHP különféle fordítási módjai közül választasz, figyelembe kell venned a különböző módszerek előnyeit és hátrányait. Ha osztott fájlt hozol létre, az Apache-t külön fordíthatod, és nem kell mindent újrafordítanod, ha valamit hozzá akarsz adni, vagy módosítani a PHP-ben. Ha a PHP az Apache-ba építed be, azt jelenti, hogy a PHP gyorsan töltődik be és gyorsan fut. További információkért lásd » az Apache DSO támogatásról szóló weboldalát.

Note: Az Apache alapértelmezett httpd.conf fájlja jelenleg egy hasonló részt tartalmaz:

User nobody
Group "#-1"
Amíg nem változtatod meg "Group nogroup"-ra vagy valami hasonlóra (a "Group daemon" elég általános) a PHP nem fog tudni fájlokat megnyitni.

Note: Győződj meg róla, hogy az Apache-nak a telepített verzióját adod meg a --with-apxs=/útvonal/apxs opcióban. NE használd a apache forráskódban szereplű apxs verziót, hanem azt, amelyik ténylegesen telepítve van a rendszeredre.