Como Instalar un Servidor web en Debian

Servicios Informaticos IT

Como Instalar un Servidor web en Debian

Apache2, php 7.4, mysql 10.6

Este es mi primera publicacion en este blog y voy a empezar por escribir una guia de como montar un servidor web con base de datos mysql y php en linux.

Esta clase de servidores se usa mucho para crear paginas de tiendas online o blogs con wordpress tambien puedes instalar un Joomla o Magento etc..

Bueno vamos a empezar suponiendo que tienes unos conocimientos basicos de linux y de informatica.

Necesitas :

Un Servidor linux con acceso ssh .

Un dominio ( nombre en internet .com .es etc.. )

Te voy a hablar un poco de estos requisitos ..

Te puedes montar un servidor en tu casa con un ordenador con tu linea ADSL o Fibra, pero tiene ciertos inconvenientes

Tendras una ip dinamica y tendras un dominio un poco molesto y tendras que cambiar la ip de tu dominio cada 2 x 3.

Lo ideal es contratar un servidor en algun provedor de servicios de internet o en nuestra empersa

Tambien te voy a dar una opcion muy interesante que es registrarte en Oracle.com y dar de alta una instancia gratis de Servidor VPS . Solo que no sabes cuanto tiempo te puede durar ese servidor ya que un dia puede cambiar la politica de oracle y dejar de ser Gratuito.

Bien hasta aqui vamos a empezar con la guia .. suponiendo que ya tienes un servidor y que tienes acceso root con ssh.

Tambien doy por sentado que tienes los puertos 80 y 443 abiertos en tu router o servidor ..

Lo primero es hacer un update actualizar los repositorios con los siguientes comandos dentro del terminal de linux en Debian 10 :

  • apt update

y

  • apt upgrade

A continuacion vamos a instalar el sevidor web Apache2 :

  • apt install -y apache2 apache2-utils

y con el siguiente comando podemos comprovar que esta funcionando :

  • systemctl status apache2

Esta es la respuesta :

Ahora escribe la direccion IP publica que tienes de ese servidor o el dominio que le has asignando a tu servidor y tendras que ver esta pantalla :

Yo en mi caso he creado un servidor en mi oficina y he creado un dominio en www.noip.com ( host4.sytes.net ) he asignado el dominio a la ip de mi servidor .

 Si has instalado el servidor en un equipo local, escribe 127.0.0.1 o localhost en la barra de direcciones del navegador.

Bien hasta aqui tenemos la aplicacion de Servidor web funcionando con el puerto 80.

Si la conexión se rechaza o no se completa, es posible que tengamos un firewall que impida las solicitudes entrantes al puerto TCP 80. Si estás usando el firewall de iptables, debes ejecutar el siguiente comando para abrir el puerto TCP 80:

  • iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Si estás utilizando el firewall UFW, ejecuta para abrir el puerto TCP 80 el comando:

  • ufw allow http

Instalacion Mysql 10.6

Debian 10 viene con la version 10.3 por defecto. Si necesitas instalar alguna version anterior o puede que alguna version mas reciente te dejo el enlace a los respositorios : https://downloads.mariadb.org/mariadb/repositories/

En este servidor vamos a instalar la version 10.6 de la base de datos, como hemos hecho anterior mente vamos instalar los ultimos repositorios de mysql en nuestro servidor te adjunto los comandos :

  • apt-get install software-properties-common dirmngr
  • apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
  • add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirror.rackspace.com/mariadb/repo/10.6/debian buster main'

Provando comando : apt-key adv –fetch-keys ‘https://mariadb.org/mariadb_release_signing_key.asc’

Una vez que hemos importado la llave del repositorio empezamos a instalar :

  • apt update
  • apt upgrade
  • apt install mariadb-server

para comprovar que esta funcionando :

  • systemctl status mysql

Instalacion PHP 7.4

Ahora vamos a instalar php en el servidor .

Debian 10 incluye la versión 7.3 en sus repositorios, pero si prefieres PHP 8.0 ó 7.4 (e incluso versiones anteriores) puedes instalar un repositorio externo:

Ahora agregamos el repositorio sury editamos el archivos php-sury.org.list:

  • nano /etc/apt/sources.list.d/php-sury.org.list

añadimos el repositorio :

  • deb http://packages.sury.org/php/ buster main

Guardamos el archivo y descargamos e instalamos la clave pública con la que se comprueban las firmas de los paquetes de este repositorio:

  • wget -O /etc/apt/trusted.gpg.d/php-sury.org.gpg https://packages.sury.org/php/apt.gpg

Actualizamos de nuevo

  • apt update
  • apt upgrade

Si usamos una versión concreta del repositorio, tendremos que especificar el número de la versión en el nombre de los paquetes; por ejemplo para la 7.4:

  • apt install -y php7.4 php7.4-apcu php7.4-bcmath php7.4-curl php7.4-gd php7.4-imagick php7.4-intl php7.4-mbstring php7.4-memcached php7.4-xml php7.4-zip php7.4-mysql

Hasta aqui ya tenemos el apache la base de datos y el php instalados.

Una forma muy habitual de provar que todo esta enlazado es creando un script en php y lo subimos al nuestro vhost ( carpeta html donde tenemos nuestra web )

Crearemos el script, llamdo info.php, en la ruta /var/www/html/:

  • nano /var/www/html/info.php
  • <?php phpinfo(); ?>

Salimos y guardamos el archivo, y accederemos al servidor usando la dirección IP o dominio de la máquina Debian 10 y añadiendo la ruta /info.php.

http://ejemplo.com/info.php

Permisos

Apartir de ahora cuando subimos archivos de alguna web o algun wordpress o oscommerce etc… Añadimos el usuario al grupo WWW-DATA de apache2: Para que apache pueda leer/escribir sin problemas en sus carpetas (Cambiad USUARIO por vuestro usuario)

  • /sbin/usermod -G www-data USUARIO

Poner los permisos 775 para directorios y 664 para ficheros

  • find $PWD -type d -print -exec chmod 775 {} \;
  • find $PWD -type f -print -exec chmod 664 {} \;

y cambiamos los permisos del directorio del vhost, en nuestro caso seria /var/www/html que es directorio donde apunta nuestro servidor web.

  • cd /var/www/html
  • chown -R USUARIO:www-data *

Por ultimo veamos de forma sencilla como activar el módulo mod_rewrite de Apache en Linux. Este módulo es necesario para que al configurar la opción de enlaces permanentes de WordPress o permalink se pueda llevar a cabo la reescritura de la url.

  • /sbin/a2enmod rewrite
  • systemctl restart apache2

Con esto ya teneis configurado el servidor web con estas 3 aplicaciones instaladas.

Tags: , , , , , ,