Nginx: PHP y MySQL

Una aplicación con PHP y MYSQL

Introducción

En esta sección vamos a ver el mismo ejemplo de aplicación web utilizando php y mysql que está configurado con docker, solo que, en este caso, vamos a ver cómo se haría la configuración nativa, en el sistema.

El ejemplo en cuestión es el mismo utilizado en la sección contenedores - docker - docker-compose - ejemplo para levantar un sitio web programado con PHP, que se conecta a una DB en MySQL, utilizando la actividad llamada LoginRegister realizada en 1º año de Asix. Para ello necesitamos los servicios activos de:

  • Apache o Nginx para levantar el servicio web

  • MySql para la base de datos

  • PHP para el lenguaje de programación

  • Phpmyadmin, si me quiero conectar a un gestor de DB, aunque no lo voy a utilizar.

Configurando la aplicación web

En el directorio /var/www/ creamos una carpeta que va a contener nuestros archivos de la aplicación web. Yo le he llamado simplemente example.com:

/var/www/example.com

Como podréis observar el dueño de la carpeta se llama www-data y no root, es es porque tenemos que modificar los archivos del directorio:

chown -R www-data:www-data /var/www/example.com

Volcamos el contenido dentro del directorio obteniendo lo siguiente:

Contenido en /var/www/example.com

Tendrás que tener en cuenta que en el archivo conexion.php debes modificar los parámetros de conexión a la base de datos, como mínimo el password:

Archivo conexion.php

Configurando Nginx

Vamos ahora a la configuración de Nginx. Para ello nos vamos al directorio /etc/nginx/sites-available/ creamos (podemos copiar y pegar del archivo default) un archivo con el nombre de nuestro sitio web. En este caso, example.com.conf:

server { 
  listen 80; 
  ## define root path
  root /var/www/example.com;

  error_log  /var/log/nginx/error-example.log;
  access_log /var/log/nginx/access-example.log;
  index index.php index.html;

  ## define location php
  location ~ \.php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  }
}

Recuerda que tenemos que crear un enlace directo en /etc/nginx/sites-enable/example.com.conf

$ sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Ahora solo nos queda comprobar que no hayamos cometido un error con la configuración y actualizar el servicio de Nginx:

sudo nginx -t
sudo nginx -s reload

Para poder acceder a nuestro sitio web con el nombre de dominio que le hemos asignado tenemos que modificar el archivo /etc/hosts:

Archivo /etc/hosts

Finalmente, nos vamos al navegador y accedemos a nuestro sitio:

example.com

Last updated

Was this helpful?