Servidores web

Servidor Apache

El servidor web Apache es uno de los más utilizados, es poderoso, flexible y bien documentado. Cada sitio o dominio se denomina virtual host, de forma tal que podremos disponer de varios sitios en una misma IP. Cada dominio configurado enviará al visitante a un directorio específico.

Instalación

sudo apt update
sudo apt install apache2
1
2

Luego de instalar es posible comprobar el estado del servidor mediante la herramienta systemctl, service o ingresando desde el navegador a localhostopen in new window.

Directorios y archivos

Luego de la instalación en las distribuciones procedentes de debian la estructura creada es la siguiente:

ServerRoot              ::      /etc/apache2
DocumentRoot            ::      /var/www
Apache Config Files     ::      /etc/apache2/apache2.conf
                        ::      /etc/apache2/ports.conf
Default VHost Config    ::      /etc/apache2/sites-available/default, /etc/apache2/sites-enabled/000-default
Module Locations        ::      /etc/apache2/mods-available, /etc/apache2/mods-enabled
ErrorLog                ::      /var/log/apache2/error.log
AccessLog               ::      /var/log/apache2/access.log
cgi-bin                 ::      /usr/lib/cgi-bin
binaries (apachectl)    ::      /usr/sbin
start/stop              ::      /etc/init.d/apache2 (start|stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean)
1
2
3
4
5
6
7
8
9
10
11

En estas distribuciones la configuración de apache se divide en varios archivos ordenados de forma jerárquica dentro del directorio /etc/apache2.

   /etc/apache2/
   |-- apache2.conf
   |       `--  ports.conf
   |-- mods-enabled
   |       |-- *.load
   |       `-- *.conf
   |-- conf-enabled
   |       `-- *.conf
   `-- sites-enabled
           `-- *.conf

La estructura para otras distribuciones puede ser vista en la documentación oficial, Httpd Wikiopen in new window.

apache2.conf

El principal archivo de configuración. Incluye todas las demás piezas de configuración juntas al iniciar el servidor.

ports.conf

Contiene las directivas que determinan que puertos TCP Apache2 escuchará.

*-available

Los directorios mods-available/, conf-available/ y sites-available/ contienen los archivos de configuración para el manejo de módulos, fragmentos de configuración global y configuraciones de los virtual hosts respectivamente. Al activarse se generan enlaces simbólicos dentro de los directorios enabled.

Para su manejo existen en debian los helpers a2enmod/a2dismod, a2enconf/a2disconf y a2ensite/a2dissite.

Comprobar estado

Para comprobar el estado del servidor podemos utilizar systemctl

systemctl status apache2

En caso de no tener systemctl instalado se puede utilizar /etc/init.d/apache2 status o service apache2 status

Errores de sintaxis

sudo apache2ctl configtest

Virtual Host

Parametros del archivo del virtual host

ServerAdmin

Indica el correo del administrador, en caso de producirse un error se mostrará para que se le pueda contactar.

Listen

Puerto y opcionalmente IP en que escuchará Apache.

ServerName

Nombre del dominio del sitio, se puede combinar conServerAlias para agregar direcciones adicionales.

DocumentRoot

Directorio raíz del sitio, por defecto: /var/www/html

Habilitar sitio

sudo a2ensite sitiotecnologo
1

Deshabilitar sitio

sudo a2dissite sitiotecnologo
1

Reiniciar Servidor

service apache2 restart
1
systemctl restart apache2.service
1
/etc/init.d/apache2 restart
1

HostNames y DNS

Para conectarse a un server es necesario resolver un ServerName a dirección IP.

Para hacer pruebas locales con virtual host sin necesidad de configurar un servidor DNS es posible editar el archivo /etc/hosts.

127.0.0.1 www.mivirtualhost.com

Establecer server name para suprimir los errores de sintaxis

httpd.conf

ServerName www.tecnologo.com:80

$ sudo apache2ctl configtest $ sudo vim /etc/apache2/apache2.conf

Firewall

sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo netfilter-persistent save
1
2

Enlaces

Last Updated: 10/17/2022, 11:36:11 PM
Contributors: Diego Mascheroni