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
Luego de instalar es posible comprobar el estado del servidor mediante la herramienta systemctl, service o ingresando desde el navegador a localhost.
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)
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 Wiki.
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