Apache2

toc

Instalación
$apt-get install apache2

Estructura
El fichero de configuración es: /etc/apache2/apache2.conf La configuración propia del usuario se recomienda que se introduzca en: /etc/apache2/httpd.conf

Cuando se modifican estos ficheros, para comprobar que todo está bien, se puede lanzar el siguiente comando: code format="apache" apache2ctl configtest code Tiene dos carpetas:
 * 1) **sites-available**: que contiene la configuración de todos los sitios o VirtualHost definidos en apache2.
 * 2) **sites-enabled**: que contiene enlaces a las configuraciones definidas en el directorio anterior, indicando cuáles de ellas están activas.

Crear un Virtual Host
1) Hacemos una copia del VirtualHost por defecto: cd /etc/apache2/sites-available cp default pruebas 2) Editamos pruebas para cambiar el ServerName y el DocumentRoot, las variables que definen el nombre al que responderá este sitio y la ruta en disco a los ficheros de ese sitio, respectivamente. También estaría bien cambiar la directiva "Directory" para que en lugar de hablar de /var/www hable de la nueva ruta: ServerName pruebas.dominio.org DocumentRoot /var/www/pruebas/



...

 3) Habilitamos el site, utilizando los comandos para habilitar y deshabilitar sites del apache2: a2ensite pruebas 4) Recargamos la configuración del apache2: /etc/init.d/apache2 force-reload Los comandos para habilitar y deshabilitar sites y módulos en el apache2 tienen nombres bastante lógicos:
 * a2ensite: apache2 enable site, habilita sites.
 * a2dissite: apache2 disable site, deshabilita sites.
 * a2enmod: apache2 enable module, habilita módulos.
 * a2dismod: apache2 disable module, deshabilita módulos.

Usar .htaccess para poner contraseñas
Protección de recursos mediante contraseña:

Tres pasos: 1) Crear un archivo con claves y usuarios:

code format="apache" htpasswd -c /etc/passwd.apache username code con la opción -c estamos indicando la ruta del archivo de claves ( **que es recomendable que esté fuera del árbol web público para que nadie se lo pueda bajar**). Además estamos poniendo el username o nombre de usuario que queremos crear en dicho archivo, que puede ser uno que esté en el sistema o no, es independiente. Nos pedirá la contraseña para dicho usuario. Con el fin de establecer la seguridad necesaria, cambie los atributos de lectura y escritura solo para el usuario apache:

//chmod 600// /etc/passwd.apache //chown apache:apache// /etc/passwd.apache

Si más tarde querríamos añadir más usuarios a dicho archivo para que puedan acceder al recurso web: code format="apache" htpasswd /etc/passwd.apache username code

2) Crear otro archivo descriptivo del recurso a proteger:

Posteriormente, en el directorio web que queramos proteger, deberemos crear un archivo oculto llamado **.htaccess** con el siguiente contenido: code format="apache" AuthName “Privado” AuthType Basic AuthUserFile /etc/passwd.apache Require valid-user code 3) Hacer que el Apache proteja dicho recurso:

Por último, deberemos indicar a Apache que para dicho directorio busque el archivo .htaccess que en la configuración por defecto, habíamos puesto en la directiva AllowOverride None para que no lo hiciera. Entonces, si el directorio a proteger es /var/www/privado/ deberemos añadir en /etc/apache/httpd.conf algo como: code format="apache"  AllowOverride AuthConfig  code y recargar la configuración del servidor.

AllowOverride
La directiva AllowOverride sirve para redefinir directivas declaradas anteriormente. Puede tener varios valores: Si estamos en un servidor compartido, puede ser peligroso ponerlo a All.
 * AuthConfig: permite el uso de todas las directivas de autorización.
 * FileInfo: permite el uso de directivas de manejo de tipos de archivos.
 * Indexes: permite el uso de directivas que controlen la creación de índices de directorios.
 * Limit: permite el uso de directivas relacionadas con el límite en accesos.
 * Options: permite el uso de directivas relacionadas con las propiedades de un determinado directorio.

Alias dentro de un mismo VirtualHost
 ServerAdmin admin@midireccion.es ServerName www.midireccion.es DocumentRoot /var/www/pagina DirectoryIndex index.php Alias /blog "/var/www/blog" Alias /wiki "/var/www/wiki" 