Telepítés UNIX rendszerre

Ez a fejezet bemutatja, hogy miként kell telepíteni a PHP-t UNIX-on. Nélkülözhetetlen előismeretek és szoftverek:

Gyors telepítési utasítások (az Apache modul verzióhoz)

  1 
  2 1.  gunzip apache_1.3.x.tar.gz
  3 2.  tar xvf apache_1.3.x.tar
  4 3.  gunzip php-x.x.x.tar.gz
  5 4.  tar xvf php-x.x.x.tar
  6 5.  cd apache_1.3.x
  7 6.  ./configure --prefix=/www
  8 7.  cd ../php-x.x.x
  9 8.  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
 10 9.  make
 11 10. make install
 12 11. cd ../apache_1.3.x
 13 12. PHP 3 esetén: ./configure --activate-module=src/modules/php3/libphp3.a
 14     PHP 4 esetén: ./configure --activate-module=src/modules/php4/libphp4.a
 15 13. make
 16 14. make install
 17 
 18   Ehelyett a lépés helyett talán jobb, ha a httpd
 19   futtatható állományát a meglévőre
 20   rámásolod. Győződj meg róla, hogy
 21   előtte leállítottad a szervert.
 22 
 23 15. cd ../php-x.x.x
 24 16. PHP 3 esetén: cp php3.ini-dist /usr/local/lib/php3.ini
 25     PHP 4 esetén: cp php.ini-dist /usr/local/lib/php.ini
 26 
 27   Szerkeszteheted az .ini file-t, hogy beállítsd
 28   a PHP opciókat. Ha ezt a file-t egy másik elérési
 29   útvonalon szeretnéd elhelyezni, használd ezt:
 30   --with-config-file-path=/eleresiut a 8-as lepésben.
 31 
 32 17. Szerkeszd a httpd.conf vagy srm.conf file-t és add hozzá:
 33       
 34      PHP 3 esetén:   AddType application/x-httpd-php3 .php3
 35      PHP 4 esetén:   AddType application/x-httpd-php .php
 36 
 37   Bármilyen kiterjesztést választhatsz itt. A .php
 38   egyszerűen csak egy javaslat.
 39 
 40 18. Használd a szokásos módszert az Apache szerver újraindítására.
 41     (Le kell állítanod és újra kell indítanod a szervert, nem csak
 42     újratölteni egy HUP vagy USR1 jellel.)
 43       

Apache Modul

A PHP-t számos különböző módon lehet lefordítani. Ezeknek egy rövid összefoglalása következik:

  1 
  2 ./configure --with-apxs --with-pgsql
  3       

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

  1 
  2 ./configure --with-apxs --with-pgsql=shared
  3       

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

  1 
  2 ./configure --with-apache=/path/to/apache_source --with-pgsql
  3       

Ez létre fog hozni egy libmodphp4.a library-t, egy mod_php4.c-t, és néhány kapcsolódó file-t, é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 file-t, é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 file, ami minden Apache és PHP funkciót tartalmaz.

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

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 library, é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 scriptben.

fhttpd Modul

Ahhoz, hogy fhhtpd modulként állítsd be a PHP-t, válaszolj "yes"-el a "Build as an fhttpd module?" kérdésre (ez a --with-fhttpd=DIR opció a configure-ban) és add meg az fhttpd könyvtárát. Ez alapbeállításban /usr/local/src/fhttpd. Ha fhttpd-t használsz, a PHP felépítése modulként jobb teljesítményt fog nyújtani, több beavaztkozási lehetőséget és távoli futtatást biztosít.

CGI verzió

Alapbeállításban a PHP-t CGI programként kell használni. Ha egy olyan webszervert futtatsz, amelyhez a PHP modul szintű támogatással rendelkezik, akkor jobb teljesítmény eléréséhez használd inkább azt a módszert. Habár a CGI verzió lehetővé teszi az Apache-ot használóknak, hogy más-más PHP oldalakat más-más user-id-kkel futtassanak. Olvasd el a biztonságról szóló fejezetet, ha CGI-ként szeretnéd használni a PHP-t.

Adatbázis támogatási opciók

A PHP számos adatbázishoz beépített támogatással rendelkezik (beleértve az ODBC-t is):

Adabas D


      --with-adabas=DIR
     

Adabas D támogatással fordítás. A paramétere az Adabas D könyvtára, alapbeállításban /usr/local/adabasd.

Adabas honlap

dBase


      --with-dbase
     

Engedélyezi a beépített DBase támogatást. További szoftver nem szükséges.

filePro


      --with-filepro
     

Engedélyezi a beépített (csak olvasásra képes) filePro támogatást. További szoftver nem szükséges.

mSQL


      --with-msql=DIR
     

Engedélyezi az mSQL támogatást. Paramétere az mSQL könyvtára, alapbeállításban /usr/local/Hughes. Ez az mSQL 2.0 default könyvtára. A configure automatikusan detektálja, hogy mely mSQL verziót használod az 1.0 és 2.0 közül, de ha mSQL 1.0-val fordítod le a PHP-t, akkor csak 1.0-ás adatbázisokat fogsz tudni kezelni, és viszont.

Lásd még az mSQL beállítási lehetőségeket a Konfigurációs file című részben.

mSQL honlap

MySQL


      --with-mysql=DIR
     

Engedélyezi a MySQL támogatást. Paramétere a MySQL könyvtára, alapbeállításban /usr/local.

Lásd még a MySQL beállítási lehetőségeket a Konfigurációs file című részben.

MySQL honlap

iODBC


      --with-iodbc=DIR
     

Beépíti az iODBC támogatást. Ezt először az iODBC Driver Manager-hez fejlesztették ki, ami egy ingyenesen terjeszthető ODBC driver manager, ami UNIX platformokon fut. Paramétere az iODBC könyvtára, alapbeállításban /usr/local.

FreeODBC honlap vagy iODBC honlap

OpenLink ODBC


      --with-openlink=DIR
     

Beépíti az OpenLink ODBC támogatást. Paramétere az iODBC könyvtára, alapbeállításban /usr/local/openlink.

OpenLink Software honlap

Oracle


      --with-oracle=DIR
     

Beépíti az Oracle támogatást. Paramétere az ORACLE_HOME könyvtár, de nem kell megadni, ha az Oracle környezet be van állítva. Ez az opció tesztelve volt az Oracle 7.0 és 7.3 közötti verzióival.

Oracle honlap

PostgreSQL


      --with-pgsql=DIR
     

Beépíti a PostgreSQL támogatást. Paramétere a PostgreSQL könyvtára, alapbeállításban /usr/local/pgsql.

Lásd még a Postgres beállítási lehetőségeket a Konfigurációs file című részben.

PostgreSQL honlap

Solid


      --with-solid=DIR
     

Beépíti a Solid támogatást. Paramétere a Solid könyvtára, alapbeállításban /usr/local/solid.

Solid honlap

Sybase


      --with-sybase=DIR
     

Beépíti a Sybase támogatást. Paramétere a Sybase könyvtára, alapbeállításban /home/sybase.

Lásd még a Sybase beállítási lehetőségeket a Konfigurációs file című részben.

Sybase honlap

Sybase-CT


      --with-sybase-ct=DIR
     

Beépíti a Sybase-CT támogatást. Paramétere a Sybase-CT könyvtára, alapbeállításban /home/sybase.

Lásd még a Sybase-CT beállítási lehetőségeket a Konfigurációs file című részben.

Velocis


      --with-velocis=DIR
     

Beépíti a Velocis támogatást. Paramétere a Velocis könyvtára, alapbeállításban /usr/local/velocis.

Velocis honlap

A custom ODBC library


      --with-custom-odbc=DIR
     

Beépíti a támogatást tetszőleges ODBC library-hoz. Paramétere az ODBC könyvtára, alapbeállításban /usr/local.

Ez a paraméter feltételezi, hogy definiáltad a CUSTOM_ODBC_LIBS-et amikor a configure scriptet futtattad. Úgyszintén szükséged van egy megfelelő odbc.h-ra valahol az include path-ban. Ha nincs ilyened, készíts egyet, és onnan illeszd be onnan a specifikus fejlécet. Az általad készített header-nek szüksége lehet még további definíciókra, kifezetten akkor, ha több rendszerre készítetted. Definiáld ezeket a CFLAGS-ben.

Például QNX-en használhatod a Sybase SQL Anywhere-t a következőképpen: CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50

Unified ODBC


      --disable-unified-odbc
     

Nem engedélyezi a Unified ODBC modult, ami egy általánosan használt felület az ODBC-alapú adatbázisokhoz, mint a Solid és az Adabas D. Ez az opció normál ODBC library-k esetén is működik. Tesztelbe iODBC, Solid, Adabas D és Sybase SQL Anywhere adatbáziskezelőkkel. Ezen opció használatához szükséges, hogy egy (és csakis egy) ODBC modult vagy egy Velocis modult vagy egy saját ODBC modult válassz. Ez a beállítás csak akkor érvényes, ha a következők valamelyikét használod: --with-iodbc, --with-solid, --with-adabas, --with-velocis, or --with-custom-odbc.

Lásd még a Unified ODBC beállítási lehetőségeket a Konfigurációs file című részben.

LDAP


      --with-ldap=DIR
     

Beépíti az LDAP (Lightweight Directory Access Protocol) támogatást. Paramétere az LDAP könyvtára, alapbeállításban /usr/local/ldap.

További információért lásd még az RFC1777-et és az RFC1778-at.

Egyéb beállítási lehetőségek

--with-mcrypt=DIR


      --with-mcrypt
     

Beépíti a támogatást az mcrypt library-hez. További információkért nézd meg az mcrypt dokumentációt. Ha használod az opcionális DIR paramétert, a PHP a DIR/include könyvtárban fogja keresni az mcrypt.h-t.

--enable-sysvsem


      --enable-sysvsem
     

Beépíti a Sys V szemafor támogatást, amit sok Unix származék támogat. Lásd még a Szemafor és megosztott memória dokumentációt.

--enable-sysvshm


      --enable-sysvshm
     

Beépíti a Sys V megosztott memória támogatást, amit sok Unix származék támogat. Lásd még a Szemafor és megosztott memória dokumentációt.

--with-xml


      --with-xml
     

Beépíti ay XML feldolgozó támogatást, James Clark expat library szoftverének felhasználásával. Lásd még az XML függvények referenciáját.

--enable-maintainer-mode


      --enable-maintainer-mode
     

Bekapcsolja azokat a speciális funkciókat, amiket néhány PHP fejlesztő használ.

--with-system-regex


      --with-system-regex
     

A rendszer szabályos kifejezés feldolgozóját használja a beépített helyett. Ha a PHP-t szerver modulként állítod be, akkor ugyanazt a szabályos kifejezés feldolgozót kell használnod, mint amit a szerverhez használtál. Akkor használd ezt az opciót, ha a rendzser által nyújtott speciális funkciókra van szükséged. Ám ha lehetséges a beépített feldolgozót használd.

--with-config-file-path


      --with-config-file-path=DIR
     

Megadhatod vele azt a könyvtárat, ahol a PHP induláskor keresse a konfigurációs file-t.

--with-exec-dir


      --with-exec-dir=DIR
     

Csak a DIR-ben megadott könyvtárban engedélyezi a futtaható állományok meghívását, ha "safe mode"-ban van. Alapbeállításban /usr/local/bin. Ez csak az alapbeállítást teszi lehetővé, később módosítható a safe_mode_exec_dir direktívával a konfigurációs file-ban.

--enable-debug


      --enable-debug
     

Engedélyzi a speciális debug információkat. Lehetővé teszi, hogy még részletesebb adatokat lehessen begyűjteni, amikor valami probléma van a PHP feldolgozóval. Ennek az opciónak nincs semmi köze a PHP scriptek hibakereséséhez!

--enable-safe-mode


      --enable-safe-mode
     

Alapbeállításként engedélyezi a "safe mode"-ot. Ez számos korlátozást jelent a PHP számára, pl. csak a web dokumentumok könyvtárában nyithat meg file-okat. További információkért olvasd el a biztonságról szóló fejezetet. A CGI-t használóknak célszerű mindig beállíttani a "safe mde"-ot. Ez csak az alapbeállítást határozza meg, később ez ki-be kapcsolható a safe_mode direktívával a the konfigurációs file-ban.

--enable-track-vars


      --enable-track-vars
     

Az opció hatására a PHP nyomon követi, hogy honnan jönnek a GET/POST/cookie információk és ezt a HTTP_GET_VARS, HTTP_POST_VARS and HTTP_COOKIE_VARS tömbökben tárolja. Ez csak az alapbeállítást határozza meg, később ez ki-be kapcsolható a track_vars direktívával a konfigurációs file-ban.

--enable-magic-quotes


      --enable-magic-quotes
     

Alapbeállításban engedélyezi az idézőjel kódolást. Ez csak az alapbeállítást határozza meg, később ez ki-be kapcsolható a magic_quotes_runtime direktívával a konfigurációs file-ban. Lásd még a magic_quotes_gpc és a magic_quotes_sybase direktívákat.

--enable-debugger


      --enable-debugger
     

Engedélyezi a beépített PHP debugger-t. Ez a szolgáltatás még mindig kísérleti stádiumban van. Lásd még a Debugger beállítási lehetőségeket a konfigurációs file-ban.

--enable-discard-path


      --enable-discard-path
     

Ha ezt engedélyezed, a PHP CGI állomány biztonságosan elhelyezhető a web könyvtáradon kívülre és akkor nem tudják kijátszani a .htaccess biztosításodat. Olvasd el a megfelelő bekezdést a biztonságról szóló fejezetben is!

--enable-bcmath


      --enable-bcmath
     

Engedélyezi a bc stílusú tetszőleges pontosságú matematikai műveleteket. Lásd még a bcmath.scale beállítási lehetőségeket a konfigurációs file-ban.

--enable-force-cgi-redirect


      --enable-force-cgi-redirect
     

Engedélyezi a biztonsági ellenőrzését a belső szerver átirányításoknak. Akkor veheted hasznát ennek az opciónak, ha Apache-on a CGI verziót használod.

Ha a PHP-t CGI-ként használod, alapbeállításban a PHP mindig ellenőrzi, hogy átirányítással hívodott-e meg (pl. Apache alatt az Action direktívával). Ez biztosítja, hogy a PHP-t ne lehessen a standard web szerver azonosítás kijátszására használni egy közvetlen meghívással, mint http://nevem.hu/cgi-bin/php/titkos/oldal.html. Ez a példa a http://nevem.hu/titkos/oldal.html címet éri el, de figyelmen kívül hagyja a /titkos könyvtárra vonatkozó biztonsági beállításokat.

Ha nem kapcsolod be ezt az opciót, akkor megakadályozod az ellenőrzést és engedélyezed a httpd biztonságának ilyenfajta megkerülését. Csak akkor tedd ezt, ha a szervered nem képes jelezni, hogy ez egy biztonságos átirányítás volt, és minden file-od a web könyvtáradban valamint a user könyvtárak bárki által elérhetőek.

Olvasd el az erre vonatkozó bekezdést a biztonságról szóló fejezetben.

--disable-short-tags


      --disable-short-tags
     

Kikapcsolja a rövid formájú <? ?> PHP tag-eket. Ha a PHP-t XML-el szeretnéd használni, ezt a kikapcsolást kell használnod. Így csak a <?php ?> PHP tag lesz használható. Ez csak az alapbeállítást határozza meg, késpőbb ez ki-be kapcsolható a short_open_tag direktívával a the konfigurációs file-ban.

--enable-url-includes


      --enable-url-includes
     

Lehetővé teszi, hogy külső HTTP vagy FTP szervereken más kódokat futtass PHP-n belülről az include()-al. Lásd még az include_path opciót a konfigurációs file-ban.

--disable-syntax-hl


      --disable-syntax-hl
     

Kikapcsolja a szintaxis kiemelést.

CPPFLAGS és LDFLAGS

Ahhoz, hogy a PHP telepítés más könyvtárakban keresse a header és library file-okat, módosítsd a CPPFLAGS és LDFLAGS környezeti változókat. Ha érzékeny shelled van: LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure

Fordítás

Ha beállítottad a PHP-t, kész vagy, hogy létrehozd a CGI futtatható állományt vagy a PHP library-t. A make parancs ezt elvégzi neked. Ha ez nem megy, és nem jössz rá miért, nézd meg a the problémákról szóló részt.

Tesztelés

Ha CGI programként fordítottad le a PHP-t, tesztelheted az eredményt azzal, hogy beírod make test. Mindig jól jön, ha leteszteled, mert így rögtön észlelhetsz olyan problémákat, amik esetleg csak később bukkantak volna fel.

Szintmérés (benchmarking)

Ha CGI progarmként fordítottad le a PHP-t, tesztelheted a sebességét azal, hogy beírod make bench. Ha a "safe mode" be van kapcsolva, talán nem fog jól lefutni a benchmark, a megengedett 30 másodperc alatt. Ez azért van, mert a set_time_limit() nem használható safe mode-ban. Használd a max_execution_time konfigurációs beállítást, hogy megadhasd ezt az időt a scriptjeidnek. A make bench nem veszi figyelembe a konfigurációs file-t.