jueves, 7 de junio de 2018

Montar un servidor web Apache sobre SUSE Linux



Cómo instalar y configurar el servidor HTTP open source Apache sobre un sistema operativo Linux openSUSE o SUSE Linux Enterprise Server para servir páginas web programadas en HTML y PHP.

El servidor web por excelencia es Apache, un software open source mantenido por la comunidad que lleva años teniendo una cuota de mercado del 50% a nivel mundial. En el siguiente manual veremos cómo instalar un servidor web Apache sobre un sistema operativo SUSE Linux Enterprise Server (procedimiento aplicable también a openSUSE).

Además de Apache, un servidor web suele requerir PHP, pues la mayoría de aplicaciones web de hoy día están programadas en este lenguaje o usan frameworks que corren sobre este lenguaje de programación. También veremos cómo instalarlo.


Instalar Apache



El primer paso, tras desplegar un sistema operativo SUSE con repositorios activos, es instalar Apache.
Es posible realizar la instalación de Apache tanto desde entorno gráfico (mediante YasT) como por terminal. Yo mostraré cómo hacerlo todo desde terminal.

Instalamos Apache:

HOST# zypper install apache2

Una vez instalado Apache, toca arrancarlo:

HOST# systemctl start apache2

En este punto, es interesante configurar el servicio de Apache para que se inicie automáticamente cada vez que se inicie el sistema (por ejemplo, después de un reinicio). Para ello:

HOST# systemctl enable apache2


Configurar Firewall



Con Apache arrancado, si probamos a acceder a la IP del servidor web usando un navegador, nos encontraremos con un error de conexión, algo similar a lo que veríamos si tratamos de acceder a una página web que no existe. Esto sucede al usar SLES ya que el firewall que trae instalado (SUSEfirewall2) bloquea por defecto todas las conexiones entrantes a la máquina (a menos que deshabilitaramos el firewall durante la instalación del SLES).

Para permitir el acceso a páginas ubicadas en este servidor, deberemos configurar el firewall de SLES:

HOST# vi /etc/sysconfig/SuSEfirewall2

Buscamos la línea:

FW_CONFIGURATION_EXT=""

Le añadimos "apache2":

FW_CONFIGURATION_EXT="apache2"

Después de guardar los cambios, debemos reiniciar el firewall para que apliquen:

HOST# systemctl restart SuSEfirewall2

Hay que decir que si el servidor va a estar expuesto a internet detrás de un firewall perimetral y a su vez va a estar protegido en una red local tras un firewall interno, podemos simplemente desactivar SUSEfirewall2 para evitar tener que trastear con él.

Para desactivar SUSEfirewall2:

HOST# SuSEfirewall2 off

Ahora, tanto si hemos desactivado el firewall como si hemos añadido Apache a sus políticas, ya deberíamos poder ver cualquier página html que coloquemos en el "DocumentRoot" o directorio raíz de Apache. En SLES, este directorio es /srv/www/htdocs.


Habilitar soporte para PHP en Apache



Una vez instalado y probado Apache, el siguiente paso es instalar PHP. PHP 5 está ya muy anticuado, así que sólo mostraré como instalar PHP 7. Los módulos de PHP 7 que nos interesan son el princial (php7) y "php7-mysql" y "apache2-mod_php7". Muchas aplicaciones dependen de otros módulos, así que yo recomiendo instalar todos los módulos existentes de PHP 7 para evitar, en un futuro, tener que ir depurando errores de PHP hasta dar con el módulo que falta para que un código determinado funcione.

Para instalar todos los módulos disponibles de PHP 7 de golpe usaremos un wildcard (*):

HOST# zypper in php7*

Habilitamos PHP 7 para que lo use Apache:

HOST# a2enmod php7

Reiniciamos Apache para que el servidor pueda empezar a servir páginas .php:

HOST# systemctl restart apache2

Por eficiencia y escalabilidad es recomendable instalar las bases de datos MySQL/MariaDB en servidores separados de las máquinas donde tengamos instalado Apache. En otra ocasión, mostraré cómo instalar una base de datos MariaDB sobre otro servidor y cómo configurarla para poder conectar con ella desde un servidor web como el que acabamos de montar.
2

2 comentarios:

  1. ¿Sabes donde se guardan las paginas webs del servidor?

    ResponderEliminar
    Respuestas
    1. En un SUSE Linux Enterprise Server, tras instalar Apache, la web que se muestra por defecto está situada en /srv/www/htdocs.

      Eliminar