PHP es, junto con mysql, el complemento ideal del servidor web apache ya que dota al servidor de un lenguaje script de ejecución en el servidor lo que facilita la creación de aplicaciones web y sitios web dinámicos.

Instalación de PHP

Para instalar PHP en nuestro servidor podemos utilizar apt-get. El paquete a instalar depende de la versión que deseemos instalar y la versión de apache. Lo normal es que utilicemos la versión 2 de apache y que instalemos la versión 5 de php. En tal caso deberíamos instalar libapache2-mod-php5:

// Instalación de php5 para apache 2
sudo apt-get install libapache2-mod-php5

Al instalar libapache2-mod-php5 mediante apt-get, automáticamente se configura para integrarse perfectamente en apache, creando los archivos necesarios en la carpeta de módulos disponibles de apache (/etc/apache2/mods-available) y creando los enlaces necesarios para habilitarlos en la carpeta de módulos habilitados de apache (/etc/apache2/mods-enabled).

Si vamos a conectar a bases de datos mysql desde php, necesitamos instalar el módulo php5-mysql:

// Instalación del módulo php5-mysql
sudo apt-get install php5-mysql

Además, tendremos que editar el archivo /etc/php5/apache2/php.ini y añadir la línea extension=mysql.so como veremos en el siguiente apartado.

Configuración de PHP

El archivo de configuración de php5 es el archivo:

// Archivo de configuración de php5
/etc/php5/apache2/php.ini

Los parámetros más destacables a configurar son:

  • Safe Mode = Off (Modo Seguro. Si el Modo seguro está desactivado, se habilitan todas las funciones del PHP. Para un uso educativo es mejor ser funcional y no activar el modo seguro. Si el Modo seguro está activado, se deshabilitan todas las funciones del PHP consideradas peligrosas. Para servicios de hosting se recomienda activar el modo seguro)
  • Display errors = On (Mostrar Errores. Muestra los errores en las mismas páginas, cuando les haya. Cuando hay errores en los scritps, es más fácil encontrarlos si se muestran en las páginas)
  • max_execution_time=30 (Tiempo máximo en segundos, de ejecución de un script. Si dejamos que un script se ejecute indefinidamente, podría colapsar el sistema)
  • post_max_size=8M (Tamaño máximo de datos que se pueden enviar al servidor mediante POST)
  • upload_max_filesize = 8M (Tamaño máximo de archivo que se puede subir al servidor. Si vamos a trabajar con archivos grandes, debemos subir este parámetro)
  • extension=mysql.so (Activa el acceso a bases de datos MySQL desde PHP)

Probando PHP

Una vez instalado y configurado, antes de probar debemos reiniciar el servidor web apache:
// Reiniciando apache
sudo /etc/init.d/apache restart
Ahora crearemos una página php que utilice la función phpinfo que además de comprobar que apache y php están funcionando, nos mostrará una información de la versión. Crearemos el siguiente archivo:
// Probando PHP. Crear archivo /var/www/phpinfo.php - permisos 644

<HTML>
<H1>Probando PHP</H1>
Salida del comando phpinfo:

<?php
phpinfo();
?>

</HTML>
Ahora tan solo necesitamos arrancar el navegador e ir a la URL: http://ip-del-servidor/phpinfo.php. Si nos aparece la información de la versión de PHP significa que está correctamente instalado.

En el siguiente ejemplo vemos un programa escrito en PHP que, mediante un bucle for que va desde 1 hasta 10, muestra la tabla de multiplicar del 7. Si después observamos la página desde el cliente, no vemos más que la respuesta del programa PHP pero nunca el programa.

// Programa PHP para generar la tabla del 7. Se almacena en el servidor. Se mezcla el HTML con el código PHP

<html>
<body>
<?
// Tabla de multiplicar del 7
echo "<h2>Tabla del 7</h2>";

// Bucle de 1 a 10
for($i=1; $i<11; $i++)
echo "7 x $i = ".(7*$i)."<br>\n";
?>
</body>  
</html>

 

// Lo que ve el cliente, una vez ejecutado el programa en el servidor: HTML puro

<html>
<body>
<h2>Tabla del 7</h2>7 x 1 = 7<br>
7 x 2 = 14<br>
7 x 3 = 21<br>
7 x 4 = 28<br>
7 x 5 = 35<br>
7 x 6 = 42<br>
7 x 7 = 49<br>
7 x 8 = 56<br>
7 x 9 = 63<br>
7 x 10 = 70<br> 

</body>  
</html>

Pregunta Verdadero-Falso
Desde el PC cliente, ¿se pueden ver los programas escritos en PHP?
Verdadero Falso