Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Comentariile sunt închise pentru Compilare PHP in Linux

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.

PHP

Comments are closed.