Instalarea limbajului PHP in Linux se poate face, in functie de distributie, folosind „apt-get”, „yum”, „pkg_add”, „rpm” sau altele. Instalarea e rapida dar daca vrem sa avem un PHP optimizat cel mai bine e sa descarcam codul sursa si sa il compilam cu parametri care ne intereseaza.
In general PHP nu se instaleaza singur, deci presupun ca ati instalat deja cel putin Apache si MySQL. PHP nu depinde de cele doua servicii, deci il puteti compila chiar daca nu le aveti instalate, dezavantajul fiind ca fara Apache nu veti putea compila mod_php iar fara MySQL nu puteti compila suportul de MySQL.
Inainte de toate, sa facem un director care il vom folosi pentru instalare si sa descarcam arhiva PHP pentru instalare:
[root@vps ~]# mkdir /root/install [root@vps ~]# cd /root/install [root@vps ~/install]# wget http://ro.php.net/distributions/php-5.3.0.tar.gz Resolving ro.php.net... 194.102.65.226 Connecting to ro.php.net|194.102.65.226|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 13239065 (13M) [application/x-tar] Saving to: php-5.3.0.tar.gz 100%[==============================>] 13,239,065 588K/s in 22s 2009-09-21 14:46:36 (591 KB/s) - php-5.3.0.tar.gz saved [13239065/13239065] [root@vps ~/install]# |
Dupa ce am descarcat tarball-ul care contine sursa PHP il dezarhivam folosind comanda tar:
[root@vps ~/install]# tar -zxvf php-5.3.0.tar.gz php-5.3.0/ php-5.3.0/ext/ php-5.3.0/ext/gd/ php-5.3.0/ext/gd/gd.c .................................. [root@vps ~/install]# cd php-5.3.0 [root@vps ~/install/php-5.3.0]# |
PHP e un limbaj complex iar la instalare ii putem da mai multe optiuni. Pentru exemplificare vom folosi doar cateva, dar pentru a vedea toate optiunile vom rula comanda „./configure –help” in directorul „/root/install/php-5.3.0„, director in care avem codul sursa:
[root@vps ~/install/php-5.3.0]# ./configure --help Usage: configure [options] [host] Options: [defaults in brackets after descriptions] Configuration: --cache-file=FILE cache test results in FILE --help print this message --no-create do not create output files --quiet, --silent do not print checking... messages --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ................................................................ [root@vps ~/install/php-5.3.0]# |
Dupa cum spuneam, vom folosi doar cateva optiuni pentru a pastra PHP la un nivel minim de complexitate. Vom pregati configuratia de instalare ruland urmatoarea comanda:
[root@vps ~/install/php-5.3.0]# ./configure --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/usr/local/etc --with-mysql loading cache ./config.cache checking for Cygwin environment... no checking for mingw32 environment... no checking for egrep... grep -E checking for a sed that does not truncate output... /bin/sed checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for gcc... gcc ............................ [root@vps ~/install/php-5.3.0]# |
Optiunile folosite sunt: „–with-apxs2=/usr/bin/apxs2 –with-config-file-path=/usr/local/etc –with-mysql„. Optiunea „–with-apxs2=/usr/bin/apxs2” va crea un modul pentru Apache (mod_php) pentru ca PHP sa functioneze in mod DSO. Fara aceasta optiune PHP va putea rula impreuna cu serverul web doar ca CGI. Optiunea „–with-config-file-path” mentioneaza locul in care PHP va cauta fisierul de configurare, php.ini, dupa ce acesta va fi instalat. In sfarsit, optiunea „–with-mysql” va instala suport pentru comenzi MySQL. Daca directorul de instalare pentru MySQL difera de cel default, „/usr/local/mysql” putem specifica un alt director dupa optiune: ex. „–with-mysql=/usr/srv/mysql„.
Dupa ce totul e configurat ne ramane doar sa rulam comanda „make” si sa asteptam sa se compileze. Dupa comanda „make„, pentru a ne asigura ca nu apar probleme, e bine sa rulam „make test„. Daca la „make test” totul e in regula, putem rula „make install” care va copia fisierele compilate in directoarele din care urmeaza sa fie utilizate.
[root@vps ~/install/php-5.3.0]# make /bin/sh /root/install/php-5.3.0/libtool --silent --preserve-dup-deps --mode=compile /root/install/php-5.3.0/meta_ccld -Iext/date/lib -Iext/date/ -I/root/install/php-5.3.0/ext/date/ -DPHP_ATOM_INC -I/root/install/php-5.3.0/include -I/root/install/php-5.3.0/main -I/root/install/php-5.3.0 -I/root/install/php-5.3.0/ext/date/lib -I/root/install/php-5.3.0/ext/ereg/regex -I/usr/include/libxml2 -I/usr/include/mysql -I/root/install/php-5.3.0/ext/sqlite3/libsqlite -I/root/install/php-5.3.0/TSRM -I/root/install/php-5.3.0/Zend -D_REENTRANT -DTHREAD=1 -I/usr/include -g -O2 -fvisibility=hidden -pthread -DZTS -c /root/install/php-5.3.0/ext/date ....................... [root@vps ~/install/php-5.3.0]# make test ===================================================================== PHP : /root/install/php-5.3.0/sapi/cli/php PHP_SAPI : cli PHP_VERSION : 5.3.0 ZEND_VERSION: 2.3.0 PHP_OS : Linux - Linux vps 2.6.28-15-generic #49-Ubuntu SMP Tue Aug 18 19:25:34 UTC 2009 x86_64 INI actual : /root/install/php-5.3.0/tmp-php.ini More .INIs : CWD : /root/install/php-5.3.0 Extra dirs : VALGRIND : Not used ===================================================================== [root@vps ~/install/php-5.3.0]# make install Installing PHP SAPI module: apache2handler /usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' libphp5.la /usr/lib/apache2/modules /usr/share/apr-1.0/build/libtool --mode=install cp libphp5.la /usr/lib/apache2/modules/ cp .libs/libphp5.so /usr/lib/apache2/modules/libphp5.so cp .libs/libphp5.lai /usr/lib/apache2/modules/libphp5.la [root@vps ~/install/php-5.3.0]# make install Installing PHP SAPI module: apache2handler /usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' libphp5.la /usr/lib/apache2/modules /usr/share/apr-1.0/build/libtool --mode=install cp libphp5.la /usr/lib/apache2/modules/ cp .libs/libphp5.so /usr/lib/apache2/modules/libphp5.so cp .libs/libphp5.lai /usr/lib/apache2/modules/libphp5.la ............................... [root@vps ~/install/php-5.3.0]# |
Dupa ce s-a finalizat instalarea mai trebuie doar sa adaugam in fisierul „httpd.conf” linia:
LoadModule php5_module modules/libphp5.so |
Pentru ca serverul web sa incarce modulul pentru PHP, iar mai jos, langa alte linii care incep cu AddType, adaugam:
AddType application/x-httpd-php .php |
Linie care va determina serverul web sa interpreteze codul PHP conform modulului incarcat.
Dupa ce am finalizat instalarea tot ce ne ramane de facut e sa restartam serverul web. Daca totul a decurs fara nici o eroare, ar trebui ca serverul web sa poata interpreta fisiere scrise in PHP.