Webs dinámicos con PHP

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.

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.