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
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)
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
Deshabilitar sitio
sudo a2dissite sitiotecnologo
Reiniciar Servidor
service apache2 restart
systemctl restart apache2.service
/etc/init.d/apache2 restart
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
2