Ez a fejezet bemutatja, hogy miként kell telepíteni a PHP-t UNIX-on. Nélkülözhetetlen előismeretek és szoftverek:
Alapvető UNIX ismeretek ("make" és a C fordító használata)
Egy ANSI C fordító
Egy web szerver
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 |
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.
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.
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.
A PHP számos adatbázishoz beépített támogatással rendelkezik (beleértve az ODBC-t is):
--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.
--with-filepro |
Engedélyezi a beépített (csak olvasásra képes) filePro támogatást. További szoftver nem szükséges.
--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.
--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.
--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.
--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.
--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.
--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.
--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.
--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.
--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.
--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.
--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
--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.
--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 |
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 |
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 |
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 |
Bekapcsolja azokat a speciális funkciókat, amiket néhány PHP fejlesztő használ.
--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=DIR |
Megadhatod vele azt a könyvtárat, ahol a PHP induláskor keresse a konfigurációs file-t.
--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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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.
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
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.
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.
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.