1. Instalación de PHP
PHP
1. Instalación de PHP
En este texto vamos a ver una introducción a PHP. Daremos por sentado que el lector tiene al menos unos conocimientos básicos de programación (en cualquier lenguaje) y de HTML, para centrarnos en las peculiaridades de PHP, no tanto en los conceptos básicos de programación.
Usaremos PHP para crear sitios web dinámicos. Por tanto, necesitaremos tener acceso a un servidor web que tenga soporte de PHP. Existen varias alternativas:
- Tener contratado alojamiento Web con un servidor que permita el uso de PHP. Así, las páginas que vayamos creando podremos publicarlas en nuestro servidor y comprobar que se comportan correctamente. Es una opción muy fiable, pero lenta, porque cada nuevo cambio habría que "subirlo" al servidor para poder probar su resultado.
-
Instalar un servidor web en nuestro ordenador, y así poder probar rápidamente. Así sólo subiríamos a nuestro servidor externo (si es que lo tenemos) las páginas cuando estén terminadas. Aquí nos encontramos nuevamente con dos opciones mayoritarias:
- Usar un "entorno LAMP": un sistema operativo Linux, con el servidor web Apache, la base de datos MySQL y el entorno de PHP. Es lo recomendable, pero exige ser un usuario relativamente avanzado, porque quizá la configuración del sistema no sea trivial.
- Usar un sistema operativo Windows y descargar un entorno que incluya Apache + MySQL + PHP listo para usar. Estos paquetes "WAMP" suelen resultan menos fiables que los LAMP, en ocasiones por problemas de permisos (el cortafuegos de Windows puede bloquearlos), o de haber incluido una versión de MySQL demasiado reciente y que contenga algún "bug", o por no funcionar en todas las versiones de Windows. A cambio, suelen ser muy sencillos de poner en funcionamiento: incluyen una versión instalable o un fichero ZIP que descomprimir, e incluso la posibilidad de instalar como "servicio" (de modo que siempre esté activo) o como "programa" (para que esté activo sólo cuando nosotros lo pidamos, y no consuma recursos el resto del tiempo). En muchas ocasiones incluso son versiones "portables", que pueden funcionar desde un pendrive o un disco externo.
Supondremos que el caso habitual es el de la última opción: un usuario que normalmente trabaja con Windows y que comienza a aprender PHP... En ese caso, tenemos varios entornos WAMP a nuestra elección. Los más conocidos, ordenados desde el que más frecuentemente se actualiza (a fecha noviembre de 2013) al que menos lo hace, son:
- Uniform Server 8.9.2 (de 23/08/2013), que combina el servidor Apache 2.4.6, la base de datos MySQL 5.5.32 y el lenguaje de programación PHP 5.4.19.
- XAMPP 1.8.3 (de 29/08/2013), con Apache 2.4.4, MySQL 5.6.11 y PHP 5.5.3.
- EasyPHP 13.1 VC9 (de 01/05/2013), con Apache 2.4.4, MySQL 5.6.11 y 5.4.14.
- WampServer 2.3 (de 30/11/12), con Apache 2.2.23, MySQL 5.5.28 y PHP 5.4.9.
En la página de EasyPHP se habla de que MySQL 5.6.11 tiene bugs conocidos, hay un enlace para descargar la versión 5.6.12, pero no existe una versión actualizada de todo el paquete EasyPHP (a pesar de que han pasado 6 meses desde el lanzamiento de la versión 13.1). Esa misma versión de MySQL es la que incluye XAMPP 1.8.3, y WampServer lleva un año sin actualizaciones, lo que hace que actualmente la distribución más recomendable parezca ser UniformServer.
Si la descargamos desde www.uniformserver.com/, obtendremos un fichero EXE que realmente no instala nada, sino que descomprime toda la estructura necesaria en la carpeta que le indiquemos.
Dentro de esa carpeta, aparecerá un "Start_as_program", que nos permite lanzar el servidor Apache, el servidor MySQL o ambos:
(Nota: en ciertos casos, por ejemplo si se tiene instalado VmWare, pueden existir conflictos que impidan que nuestro servidor web no se inicie correctamente. El "Apéndice 2" de este texto trata ese caso.
Nosotros no necesitamos MySQL todavía, pero sí deberemos lanzar Apache ("Start Apache"). Quizá aparezca un aviso de seguridad de Windows que nos pregunte si el cortafuegos debería bloquearlo. Lo razonable es que NO lo bloqueemos.
Si hemos llegado hasta aquí, es que nuestro entorno de prueba está listo. Para probarlo, deberemos entrar a nuestro navegador, y como dirección, poner la de nuestro propio ordenador, que es "http://localhost/".
(Nota: en Uniform Server es habitual que no sea necesario: la página de bienvenida se lanzará automáticamente cuando lancemos Apache)
Si nuestro servidor está mostrando páginas correctamente, llega el momento de crear nuestra propia página de prueba en PHP. Por ahora sólo veremos una orden de PHP, que será la que escriba algo en la ventana del navegador:
Para escribir un texto se usa la orden "echo" , seguido del texto entre comillas, y se termina con un punto y coma, así:
echo "Hola!";
Y esta orden (y las demás que iremos viendo de PHP), las escribiremos dentro de un fichero HTML "casi normal", apenas con un par de diferencias:
- Las órdenes en PHP se deben indicar entre <?php y ?>
- El fichero se debe guardar con el nombre que queramos, pero terminado con ".php".
Por tanto, para crear una primera página que simplemente nos salude, podríamos hacer lo siguiente:
<html>
<body>
<?php
echo "Hola, bienvenido a PHP";
?>
</body>
</html>
¿Y esto donde lo guardamos? En la carpeta en la que estuviera instalado nuestro servidor (en mi caso, "D:\Utilidades\UniformServer"), dentro de la subcarpeta "www", y con un nombre que termine con ".php", por ejemplo "php01.php". En otros paquetes WAMP, puede ocurrir que la carpeta no se llame "www" sino "htdocs".
Para comprobar cómo ha quedado, le decimos a nuestro navegador que nos muestre la página "php01.php" de nuestro ordenador ("localhost"), escribiendo en la barra de direcciones
http://localhost/php01.php
El resultado sería este:
Un último detalle importante: PHP es un lenguaje de servidor. El "cliente" que ve la página en su ordenador, no podrá ver qué órdenes de PHP hemos usado, sino su resultado. Si le pedimos a nuestro navegador (Internet Explorer, Firefox, Chrome, Safari, Opera o el que sea) que nos muestre el "código fuente" de la primera página que hemos creado con PHP, vería algo como esto
<html>
<body>
Hola, bienvenido a PHP
</body>
</html>
Como se puede observar, no aparece por ningún sitio la orden "echo", sólo el resultado de esa orden.
Ejercicio propuesto 1.1: Crea una página en PHP que te salude por tu nombre (por ejemplo, "Hola, Juan").