dilluns, 19 de maig del 2008

Instalació de PHP5 i Apache2 a partir de codi font

M'he trobat amb el problema a la feina d'haver d' instalar apache2 i la versió de php 5.2. De fet això no seria un problema si pogués tirar d'apt-get, però els repositoris de la versió Ubuntu Dapper 6.06 que utilitzo en el meu servidor de proves (altrament dit development server i amb la mateixa configuració que tenen els del servidor on pengem les aplicacions web de l'empresa) no tenen una versió de php 5 més enllà de la 5.1.2, tot degut a que la Dapper és LTS. Aquesta versió m'és insuficient ja que estic desenvolupant una aplicació utilitzant la API de YouTube i vull utilitzar la llibreria Google GData de Zend per PHP, que requereix la 5.2 com a mínim. És més que probable que existeixin alternatives millors o si més no, alternatives diferents com ara instalar utilitzant repositoris de versions posteriors. El fet però, és que m'he llançat a instalar tant l'apache com el php a partir del codi font. El primer pas ha estat descarregar tant l'Apache (versió 2.2.6) com PHP5 (versió 5.2.5) i descomprimir-los amb tar. Un cop descomprimits, comencem per instalar l'Apache. Dins del directori on haguem descomprimit l'Apache, executem el següent:
./configure –enable-so make sudo make install
En el meu cas, com que també necessito el mòdul mod-rewrite i mod-ssl, la configuració del primer pas és una mica més complicada per obligar a que em compili els mòduls durant la instalació:
./configure -enable-so --enable-module=so --enable-module=shared --enable-rewrite=shared --enable-ssl=shared
Si tot surt bé ja tindrem instalat a /usr/local/apache2 el nostre servidor web i un cop iniciat amb la comanda
sudo /usr/local/apache2/bin/apachectl start
hauriem de poder accedir al servidor amb el navegador a través de la direcció http://localhost i rebre un missatge de conformitat. Parem el servidor substituint "start" per "stop" (també existeix "restart", molt útil quan es fan canvis a la configuració de l'Apache) i passem a instalar el PHP5. Ens coloquem a la carpeta on hem descomprimit el PHP, on podem executar ./configure --help per fer un cop d'ull a les opcions que ens dóna PHP5. En el meu cas, utilitzo una sèrie d'opcions on les més importants indiquen la situació del apache2 i de mysql. La resta, com la llibrería GD, depèn de les vostres necessitats.
./configure -with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/lib/mysql --with-zlib --with-openssl --enable-sockets --enable-soap --with-gd
make
sudo make install clean
Abans de poder veure els nostres arxius PHP al navegador haurem de copiar el php.ini que controla la configuració del PHP a /usr/local/lib
cp php.ini-dist /usr/local/lib/php.ini
i fer uns petits canvis a la configuració de l'Apache. Per canviar la configuració de l'Apache hem d'editar el fitxer httpd.conf, que si no hem indicat el contrari es trobarà a /usr/local/apache2/conf/httpd.conf. Ens hem d'assegurar que la línia “LoadModule php5_module modules/libphp5.so” està descomentada i en cas contrari, descomentar-la. Posteriorment hem d'afegir
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
perquè ens reconegui els php i per últim, buscar DirectoryIndex i afegir-hi index.php perquè el reconegui i el mostri per defecte.
<ifmodule>
DirectoryIndex index.html index.php
</ifmodule>
Tornem a iniciar el servidor apache i creem un arxiu index.php que copiarem al directori /usr/local/apache2/htdocs, que és per defecte l'arrel del nostre servidor (es pot canviar al httpd.conf indicant un nou DocumentRoot i canviant totes les aparicions del directori per defecte). El contingut del fitxer index.php serà el següent:
<?php phpinfo()?>
Si accedim a http://localhost/index.php i el navegador ens mostra informació de la configuració de PHP, hem acabat la feina amb èxit. Ja tenim PHP5 i Apache2 instalats a partir del codi font.

diumenge, 18 de maig del 2008

Inauguració del blog

Dono per inaugurat aquest bloc sense cap interès més enllà de saciar les meves ganes d'escriure -no massa freqüents- i deixar constància de coses que em puguin haver dut algun mal de cap més del normal en l'art de picar tecles.

Així doncs, Picant Tecles comença com un bloc "egoista" on aniré escribint coses que considero que poden ser útils sobre aspectes dels meus interessos, ara per ara bàsicament aplicacions web amb CakePHP. Però no per això, espero que el bloc sigui inútil pels demés. Ans el contrari, si pot ajudar a algú, millor que millor.