Índice de contenidos
Instalación en Windows
Instalación en Ubuntu
Servidores seguros
Páginas dinámicas
Sintaxis básica
Operaciones
Arrays
Formatos de presentación
Operadores
Bucles
Extraer y ord. información
Funciones
Ficheros externos
Imágenes dinámicas
Gestión de directorios
Cookies y sesiones
Clases y objetos
Ficheros en formato PDF
Bases de datos MySQL
PHP y XML
PDO - Bases SQLite / MySQL
MySQL a traves de misqli
Algo de JavaScript y AJAXInstalación de Apache y PHP
La instalación de Apache y PHP no presenta ninguna dificultad. Los paquetes de instalación –tanto de Apache 2 como de PHP5– se encuentran en los repositorios oficiales de Canonical. Si se escribe, en la consola de Ubuntu, el comando:
sudo apt-get install apache2 php5 libapache2-mod-php5
comenzará en el terminal un proceso (que solo nos requerirá una conformación) mediante el cual se instalará en nuestro equipo el software del servidor Apache, PHP5 y la librería de Apache que permite utilizar PHP5 como módulo.
El proceso automático de instalación hace del directorio /var/www el directorio raíz de servidor (seria el equivalente a htdocs en la instalación de Windows). Ese directorio solo tiene permisos de lectura y escritura para el usuario root. Para facilitar la labor en un entorno de desarrollo como el que nos ocupa cambiaremos los permisos de ese directorio y de sus eventuales subdirectorios de modo que nos resulte fácil agregar, editar, borrar o modificar los ficheros que contenga. Para otorgar tales permisos haremos uso del comando
sudo chmod -R 777 /var/www
Sí, concluida la instalación, abrimos el navegador y escribimos como dirección http://localhost nos aparecerá una página como esta:

será el momento de efectuar algunas modificaciones de configuración pero antes veamos como arrancar y parar el servidor Apache.
Arrancar y parar el servidor Apache
Al efectuar la instalación Apache se instala como un servicio que se inicia automáticamente al arrancar el equipo. Si pretendemos parar el servidor desde la consola, tendremos que escribir en el terminal lo siguiente:
sudo /etc/init.d/apache2 stop
Para arrancarlo el comando sería este:
sudo /etc/init.d/apache2 start
Si se tratara de reiniciarlo (pararlo, si estuviera en marcha y arrancarlo nuevamente) podríamos utilizar este:
sudo /etc/init.d/apache2 restart
Modificaciones en la configuración
Al intentar parar el servidor siguiendo el proceso descrito más arriba, puede aparecernos un mensaje de advertencia (dependiendo de la versión de Ubuntu), tal como el que vemos en la imagen.

Para evitar ese mensaje bastará con crear un fichero con nombre fqdn (Fully Qualified Domain Name) con el siguiente comando
sudo gedit /etc/apache2/conf.d/fqdn
e incluir en él la línea de texto que ves en la imagen

Un script de prueba
Para comprobar que todo funciona correctamente deberemos escribir nuestro primer script PHP. Abriremos el editor –Bluefish o nuestro editor preferido– y escribiremos exactamente esto:
<?php phpinfo(); ?>
Ahora lo guardaremos en /var/www –recuerda que este es el directorio raíz del servidor– con el nombre info.php, reiniciaremos el servidor, abriremos el navegador, escribiremos la dirección: http://localhost/info.php y deberá aparecernos algo como esto:

Libreria gráfica GD
Una vez configurado Apache y comprobado el correcto funcionamiento de php mediante la ejecución del script info.php es conveniente que completemos la instalación de PHP. El paquete de instalación no incluye la librería GD que se requiere el manejo de imágenes dinámicas. Como quiera que puede serte muy útil podemos completar la instalación agregando este nuevo módulo.
El comando para efectuar esta instalación es el siguiente:
sudo apt-get install php5-gd
Ahora la página info.php debe mostrarlos algo como esto:

El módulo mod_rewrite
El mod_rewrite es un módulo de Apache que permite, entre otras cosas, modificar lo que aparece en la barra de direcciones. Sin su uso y configuración estaríamos obligados a escribir las direcciones respetando escrupulosamente los caracteres en mayúsculas o minúsculas. Quiere esto decir que si escribiéramos una dirección tal como: http://localhost/prueba.PHP podría darnos el típico mensaje de error página no encontrada por la razón de que la extensión .PHP no concuerde con la real de la página (suponemos que es .php). Esta restricción de distinguir entre mayúsculas y minúsculas en las direcciones de las páginas puede acabar resultando bastante incómoda por lo que merece la pena evitarla.
El primer paso será activar el módulo rewrite (en la instalación por defecto no se activa) ejecutando desde la consola el siguiente comando:
sudo a2enmod rewrite
Una vez activado el módulo deberemos modificar el fichero de configuración para incluir las directivas que permitirán que las letras mayúsculas que se incluyan en una dirección del navegador se transformen automáticamente en minúsculas. Para ello, tendremos que modificar el fichero 000-default que está en /etc/apache2/sites-enabled siguiendo los pasos que se describen a continuación.
Modificaciones en el fichero 000-default
Empezaremos editándolo desde la consola (con permisos de superusuario) escribiendo:
sudo gedit /etc/apache2/sites-enabled/000-default
Deberemos incluir las cuatro líneas que se indican en rojo (son las directivas del módulo rewrite). Aprovecharemos para agregar también el guión (-) marcado en rojo en la línea donde dice: Options -Indexes FollowSymLinks MultiViews.
Si escribiéramos una dirección como: http://localhost/images/ el navegador intentaría encontrar una página llamada index.php, index.html ó index.htm y dado que en ese directorio no existe tal página nos mostraría una lista de todo el contenido de ese directorio. Para subsanar ese problema tanto estético como de seguridad basta con incluir el guión que comentamos. Una vez hecha esa modificación en vez del listado de contenidos nos aparece un mensaje de advertencia indicándonos que no tenemos permiso de acceso a ese directorio.
<VirtualHost *:80> RewriteEngine On RewriteCond %{REQUEST_URI} [A-Z] RewriteMap lc int:tolower RewriteRule (.*) ${lc:$1} [R=301,L] ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/> Options -Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
Una vez hechas las modificaciones debemos guardar los cambios y ya podremos salir de la consola. La configuración de Apache habrá terminado.
Desactivar arranque automático y arranque en modo gráfico
Durante el proceso de instalación Apache2 se configura como un servicio que se pone en marcha de forma automática al iniciar el equipo. Teniendo en cuenta que nuestra instalación solo tiene fines de aprendizaje es posible que no tenga ningún interés mantener activo el servidor Apache más que en los momentos en que sea neceario. En este supuesto podremos desactivar el servicio de la forma que puedes ver en la secuencia de imágenes que tienes aquí debajo.
En el mismo archivo gráfico se describe el procedimiento para configurar el entorno gráfico de Ubuntu de modo que podamos arrancar / detener el servidor Apache con solo pulsar sobre un icono del menú de Aplicaciones.
Nuevo lanzador de aplicaciones Unity
Las distribuciones de Canonical parecen ir abandonando la interface de usuario GNOME Shell e irse decantando por Unity. Ello significa que los antiguos lanzadores de aplicaciones tal como el que estamos viendo en la imagen anterior están en vias de desaparición a menos que el usuario de las nuevas versiones de Ubuntu (en este momento la recién lanzada Ubuntu 11.10) instale gnome-session-fallback.
Este inconveniente puede solventarse utilizando un nuevo interface tal como que el puedes ver aquí debajo. La visualización de este menú requiere únicamente pulsar el botón derecho del ratón sobre el icono Carpeta personal tal como aparece en la imagen. La configuración de estas opciones requiere ejecutar el siguiente proceso:
[Desktop Entry] Por cada uno de los items incluidos en la línea anterior debe agregarse un bloque cuyo contenido ha de ser del tipo:
dónde los contenidos marcados en rojo son obligatorios y comunes a todos los items. Los contenidos marcados en verde detrás de Exec= son los comandos de ejecución de los programas (arrancar Apache en este caso) y tanto el texto que sigue a Name= con el que precede a Shortcut Group son los nombres descriptivos del comando incluido como exec.
Aunque sea anticiparse un poco a los contenidos incluidos en páginas siguientes en este fichero de texto tienes la configuración de nautilus-home.desktop para obtener un resultado como el que ves en la imagen y para poder ejecutar desde ese menú todas las aplicaciones cuya instalación iremos describiendo en las páginas siguientes.