Sobre PHP
Introducción
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.