En este momento estás viendo Instalación y configuración de PHP y creación de  Hosts Virtuales

Instalación y configuración de PHP y creación de Hosts Virtuales

Instalación de PHP y creación de Hosts Virtuales

Para completar la pila LAMP, solo nos falta instalar PHP. Tenemos el servidor apache para mostrar su contenido y MySQL para almacenar y administrar los datos. Con PHP consegiremos que Apache y MySQL se comuniquen y se entiendan.

Sumario

  • Instalar PHP
  • Creación de hosts virtuales
  • Habilitamos el nuevo host virtual
  • Probar el funcionamiento de PHP
  • Probar la conexión con la base de datos desde PHP

Instalar PHP

PHP es el lenguaje que procesará el código de nuestro sitio para mostrar contenido dinámico al usuario final.

Vamos a instalar el paquete php y necesitaremos dos paquetes más, uno son librerías y otro para las dependencia de php-mysql, un módulo que permite la comunicación con la base de datos. Así que los instalaremos también.

Para habilitar Apache para la gestión de ficheros php, necesitaremos el paquete libapache2-mod-php. Este paquete se instalará automáticamente como una dependencia.

Y procedemos a su instalación con el siguiente comando:

sudo apt install php libapache2-mod-php php-mysql

Para confirmar la instalación, comprobamos la versión de PHP instalada.

php -v

Y ya tenemos la pila LAMP totalmente operativa.

Creación de hosts virtuales

Para poder alojar varios sitios web en nuestro servidor, tenemos que crear los hosts virtuales que necesitemos.

Estos son similares a los bloques de Nginx, y sirven para encapsular y tener separados los dominios que creemos.

Vamos a crear uno. Ubuntu 20.04 tiene, por defecto, un Document Root para proporcionar el contenido del sitio. Lo encontramos en /var/www/html. Si solo vamos a tener un sitio alojado, con esta configuración sería suficiente, pero si queremos alojar más, tendremos que crear los virtual hosts con su DocumentRoot cada uno.

Para hacer esta configuración, en vez de modificar /var/www/html, vamos a crear una estructura de directorios en /var/www/dominio1.com,…… /var/www/dominion.com

Primero creamos el directorio para dominio1.com

sudo mkdir /var/www/dominio1.com

Para establecer la propiedad del fichero nos ayudamos de la variable $USER, que determinará la propiedad del fichero para el usuario actual.

sudo chown -R $USER:$USER /var/www/dominio1.com

Tenemos que crear un fichero de configuración en el directorio sites-available/dominio1.com.conf. Para ello abrimos un editor de texto en linea de comandos,

sudo nano /etc/apache2/sites-available/dominio1.com.conf

A continuación vemos como nos ha de quedar este fichero:

<VirtualHost *:80>
    ServerName dominio1.com
    ServerAlias www.dominio1.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/dominio1.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost> 

Con esta configuración de VirtualHost, le indicamos a Apache que proporcione dominio1.com usando /var/www/dominio1.com como DocumentRoot.

Habilitamos el nuevo host virtual

sudo a2ensite dominio1.com.conf

Y recargamos Apache

systemctl reload apache2

Deshabilitamos el sitio web que nos ofrece Apache por defecto. Esto es necesario porque si no lo hacemos, la configuración predeterminada de Apache, sobreescribirá, el host virtual que hemos creado.

sudo a2dissite 000-default

Para asegurarnos de que no hemos cometido errores de sintaxis en el fichero de configuración, ejecutamos:

sudo apache2ctl configtest

Y recargamos para que tengan efecto los cambios realizados.

systemctl reload apache2

Y ya hemos acabado de crear y configurar el host virtual de dominio1.com. Pero el directorio /var/www/dominio1.com, está vacío. Para que nos muestre algo cuando accedamos creamos un fichero index.html.

nano /var/www/dominio1.com/index.html

Y copiamos el siguiente contenido:

<h1>Funciona!</h1>

<p>Estas en la página web <strong>dominio1</strong>.</p>

Si accedemos con el navegador, tendremos que ver el contenido que acabamos de completar.

http://ip o dominio del servidor

Si es así, el host virtual está funcionando perfectamente.

Dejaremos este fichero establecido como página de destino hasta que tengamos el fichero index.php definitivo que lo sustituya. Cuando lo hagamos, deberemos eliminar el fichero index.html como DocumentRoot, o cambiarle el nombre, ya que tendría precedencia sobre un fichero index.php por defecto.

Esto es útil para establecer páginas de mantenimiento en aplicaciones PHP, dado que se puede crear un archivo index.html temporal que contenga un mensaje informativo para los visitantes que accedan mientras hacemos mantenimiento.

Como esta página tendrá precedencia sobre la página index.php, se convertirá en la página de destino de la aplicación. Una vez que completemos el mantenimiento, el archivo index.html lo tendremos que eliminar del DocumentRoot, o cambiarle el nombre, para volver mostrar la página principal de la aplicación.

Si quisieramos cambiar este comportamiento, lo podemos hacer en el fichero /etc/apache2/mods-enabled/dir.conf, donde modificaremos el orden en que el fichero index.php se enumera en la directiva DirectoryIndex:

sudo nano /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Guardamos, cerramos y recargamos Apache para aplicar los cambios.

systemctl reload apache2

Probar el funcionamiento de PHP

Con todo configurado para el alojamiento del sitio web, vamos a crear una secuencia de comandos para comprobar que Apache puede gestionar y procesar solicitudes de ficheros PHP.

Creamos un fichero que llamaremos info.php dentro del directorio de nuestro dominio.

sudo nano /var/www/dominio1.com/info.php

Y le añadimos el siguiente contenido:

<?php
phpinfo();

Guardamos y cerramos el fichero

Para probar su funcionamiento, con un navegador, accedemos al nombre de dominio o a la ip del servidor, seguido del fichero que acabamos de crear.

http://dominio1.com_o_ip/info.php

Y veremos la página, por defecto de PHP. Si es así, la instalación de PHP funciona correctamente.

Una vez comprobado, tenemos que borrar el fichero que hemos creado, ya que este contiene información sensible sobre el entorno PHP y el servidor Ubuntu.

sudo rm /var/www/dominio1.com/info.php 

Probar la conexión con la base de datos desde PHP

Esto no es necesario, sabiendo que funciona. Pero si queremos comprobar que PHP puede establecer conexión con MySQL para ejecutar consultas a la base de datos, podemos crear una base de datos de prueba y una tabla con los datos que queramos y realizar consultas con secuencias de comandos PHP. Lo vemos en un post posterior.

Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.

Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.

Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.