En mi experiencia como desarrollador de aplicaciones web, PHP ha significado junto al servidor de web Apache, las dos herramientas claves para la creaci�n de aplicaciones. PHP es un lenguaje sencillo, de sintaxis c�moda y similar a la de otros lenguajes como C o C++, es r�pido a pesar de ser interpretado, multiplataforma y dispone de una gran cantidad de librer�as que facilitan much�simo el desarrollo de las aplicaciones.
El c�digo generado es mantenible, se lee muy bien y podemos programar utilizando objetos. PHP es un lenguaje ideal tanto para el que comienza a desarrollar aplicaciones web como para el desarrollador experimentado, y est� alcanzando unos niveles de uso (m�s de 1 mill�n de webs lo utilizan ya) que convierten su conocimiento en algo indispensable para los profesionales del desarrollo en Internet.
Y, adem�s, PHP es un lenguaje basado en herramientas con licencia de software libre, es decir, no hay que pagar ni licencias, ni estamos limitados en su distribuci�n y, podemos ampliarlo con nuevas funcionalidades si as� lo quisi�ramos. Respecto a su licencia, en la versi�n PHP 3.0 era GPL, pasando a ser modificada en su versi�n 4.0, por la incorporaci�n de Zend, un nuevo interprete de PHP mucho m�s r�pido que el anterior de PHP. Este interprete Zend tiene asociado un optimizador opcional, el cual ya est� m�s dentro del mundo comercial que del software libre, tema que ha levantado algunas suspucacias dentro de la comunidad de desarrolladores de software libre.
En esta serie de presentaci�n de PHP mostraremos este lenguaje, como se instala y configura, como se desarrolla con �l, las librer�as fundamentales y como no, su excelente forma de trabajar con casi todas las bases de datos, y en especial, con MySQL, con la que forma un equipo estrella dentro del mundo de desarrollo software.
No olvidaremos por otro lado a PostgreSQL, la base de datos que es realmente software libre, y que avanza con piso firme para convertirse en la base de datos de referencia dentro de cualquier proyecto libre, sobre todo tras la publicaci�n de la versi�n 7.0.
En los art�culos de la serie vamos a describir PHP en su �ltima versi�n, PHP4, que por fin en Mayo del 2000 ha sido publicada. Posiblemente para cuando el lector comience a desarrollar con PHP, esta versi�n 4 ser� la est�ndar. En ella hay muchos cambios y mejoras que detallaremos a lo largo de los art�culos de la serie.
La serie est� orientada al uso conjunto de Apache y PHP, aunque PHP se puede compilar como un ejecutable que puede ser utilizado como cgi-bin. De esta forma, cualquier servidor de web que soporte cgi podr�a ejecutar las p�ginas PHP. La ventaja que tiene Apache frente a estos es que podemos compilar el interprete PHP como un m�dulo de Apache, por lo que la velocidad de ejecuci�n de estas p�ginas PHP es muy superior, as� como el consumo de recursos al cargarse el interprete de PHP una sola vez en memoria.
Para estar al d�a de lo que ocurre en el mundo de PHP tenemos las p�ginas oficiales de web de PHP, en php.net, y las noticias de PHP que van apareciendo dentro de Barrapunto.com.
��Qu� es PHP?
Con estas siglas nos referimos a un lenguaje de programaci�n que est� muy orientado al desarrollo de aplicaciones web. Cuando pedimos a nuestro servidor de web una p�gina PHP, que no es m�s que un programa PHP que genera HTML, antes de enviar dicha p�gina al cliente se la pasa al interprete de PHP. Este la interpreta y es el resultado de esta interpretaci�n del programa PHP, contenido en la p�gina PHP, lo que termina llegando al cliente.
Supongamos que el contenido de una p�gina web que reside en el servidor, y cuyo nombre es "intro.php", tiene el siguiente contenido:
<? echo "<h1>Mensaje desde PHP</h1>";?>
Cuando un navegador le pida al servidor de web la p�gina "intro.php", el servidor de web va a darse cuenta, por la extensi�n ".php", de que esta p�gina ha de enviarse primero al interprete de PHP. Este recibe el contenido de la p�gina y como resultado de esta ejecuci�n (interpretaci�n) genera una p�gina HTML, que es la que env�a al cliente a trav�s de Apache. Como veremos en una p�gina PHP se puede mezclar HTML y PHP, algo muy flexible pero que hay que manejar con cuidado ya que puede llevar a confusiones y, sobretodo, a que el equipo que dise�e las p�ginas web y el que programe la aplicaci�n no puedan ser independientes.
�Instalaci�n de PHP
Sin duda esta secci�n del manual debe de ser actualiazada ya que se refiere a�n a la �ltima beta de PHP4, pero salvo este detalle, el procedimiento sigue siendo v�lido. Tambi�n hay que estar atentos a la publicaci�n de Apache 2.0 ya que quiz�s, implique unos cambios mayores dentro esta secci�n. Si alg�n lector quiere contribuir y actualizar la versi�n ser� gratamente bienvenida.
Uno de los mayores quebraderos de cabeza de PHP en sus comienzos era que obligaba a tener Apache en c�digo fuente y compilarlo. Por fin la instalaci�n de PHP se puede hacer de forma sencilla y sin tener que modificar en casi nada a nuestro servidor de web. Tan s�lo necesitamos tener una versi�n de Apache con soporte DSO para la carga din�mica de objetos. La versi�n con la que se est� desarrollando este art�culo es la 1.3.9 aunque toda la serie 1.3 tiene este soporte.
Si el lector tiene ya instalado PHP3 en su servidor de web Apache debe de tomar la precauci�n de desactivarlo. Se puede tener de forma simult�nea ambas versiones funcionando, pero este proceso es algo complejo y no lo vamos a tratar de momento. Por ello el lector necesita un servidor de web Apache sin soporte para PHP. La mejor forma de comprobar este dato es editar el fichero de configuraci�n de Apache "httpd.conf" (normalmente en el directorio "/etc/httpd") y revisar que no se hagan referencias en �l a PHP. Si las encontrara deber�a de comentarlas y reiniciar el servidor de web.
Es necesario que los paquetes de desarrollo de Apache est�n tambi�n instalados en el entorno del lector. Estos son b�sicamente los ficheros de cabecera de la librer�as de Apache ("/usr/include/apache"), las librer�as para extender Apache y alg�n ejecutable como "apxs" que es una utilidad que permite a�adir m�dulos de carga din�mica a Apache. El resultado de nuestra compilaci�n de PHP va a ser uno de estos m�dulos.
Ha llegado el momento de obtener la �ltima versi�n de PHP de la red. Esta la puede conseguir el lector de http://www.php.net. Una vez que tengamos las fuentes de PHP4beta3 vamos a pasar a instalarla. Los pasos a dar son:
- tar xvfz php-4.0b3.tar.gz
- cd php-4.0b3
- configure --with-apxs=/usr/sbin/apxs
- make
- make install (como superusuario)
Si todo ha ido bien ya tenemos todo preparado para poder reiniciar el servidor de web Apache con el m�dulo de PHP4 entre sus funcionalidades. De la compilaci�n cabe destacar el gran tiempo que transcurre en la compilaci�n de uno de los nuevos componentes de PHP4, Zend, el motor principal para la interpretaci�n del lenguaje PHP.
Si el lector ha estado atento en la fase de "make install" habr� podido observar como se utiliza la herramienta "apxs" para a�adir "libphp4.so" a los m�dulos de carga din�mica de Apache. La instrucci�n en concreto es:
/usr/sbin/apxs -i -a -n php4 libs/libphp4.so
Esta herramienta copia este fichero al directorio donde residen los dem�s m�dulos de carga din�mica, "/usr/lib/apache" normalmente, y modifica el fichero de configuraci�n "httpd.conf" para que se cargue este nuevo m�dulo al arrancar.
En Mandrake 6.1, y probablemente en RedHat 6.0 y superior, este proceso no incluye de forma correcta la referencia al m�dulo dentro de "httpd.conf" lo que nos obliga a editar este fichero y modificar la l�nea con el contenido:
LoadModule php4_module lib/apache/libphp4.so
por la l�nea
LoadModule php4_module modules/libphp4.so
Ahora ya s�lo nos queda decirle a Apache que todos los ficheros que acaben con la extensi�n ".php" sean enviados al interprete de PHP, algo que logramos a�adiendo a "httpd.conf" la l�nea:
AddType application/x-httpd-php .php4
En anteriores versiones de Apache exist�an tres ficheros de configuraci�n y esta �ltima l�nea hab�a que insertarla en el fichero "srm.conf".
Reiniciamos nuestro servidor Apache, "/etc/rc.d/init.d/httpd restart" en sistemas Red Hat y si todo ha ido bien tendremos ya todo preparado para empezar a desarrollar con PHP. Si existe alg�n problema el servidor de web no se arrancar�. Para detectar que puede estar ocurriendo se pueden analizar los ficheros de registro de Apache del directorio "/var/log/httpd" e intentar localizar all� el error. A veces tambi�n es �til iniciar a mano el demonio de Apache sin la ayuda de ""/etc/rc.d/init.d/httpd", ejecutando de forma directa "/usr/sbin/httpd".
Algo que nos puede confirmar de forma definitiva que todo ha ido bien es una l�nea de registro dentro de "/var/log/httpd/error_log" con un contenido similar a:
[notice] Apache/1.3.9 (Unix) (NetRevolution Advanced Server/Linux-Mandrake) PHP/4.0b3 configured -- resuming normal operations
Si has logrado llegar ya hasta aqu�, prep�rate porque ahora viene lo divertido: la programaci�n de p�ginas PHP.