Post on 04-Jan-2016
30/04/13 Alcance Libre - Configuración básica de Apache.
www.alcancelibre.org/staticpages/index.php/como-apache/print 7/18
service shorewall restart
Procedimientos.
Archivos de configuración.
Cualquier ajuste que se requiera realizar, ya sea para configurar anfitriones virtuales, u otrafuncionalidad adicional, se puede realizar sin tocar el archivo principal de configuración(/etc/httpd/conf/httpd.conf), utilizando cualquier archivo con extensión *.conf dentro del
directorio /etc/httpd/conf.d/.
UTF-8 y codificación de documentos.
UTF-8UTF-8 es un método de codificación de ASCII para Unicode (ISO-10646), elConjunto de Caracteres Universal o UCS. éste codifica la mayoría de lossistemas de escritura del mundo en un único conjunto de caracteres,permitiendo la mezcla de lenguajes y guiones en un mismo documento sin lanecesidad de ajustes para realizar los cambios de conjuntos de caracteres.
Debido a su conveniencia actualmente se está adoptando UTF-8 como codificación para todo,sin embargo aún hay mucho material codificado en, por ejemplo, ISO-8859-1.
Lo correcto es cambiar a en UTF-8 la codificación de los documentos que están en ISO8859-1, uotras tablas de caracteres, utilizando métodos similares el siguiente:
cd /var/www/html/for f in *.htmldovi -c ":wq! ++enc=utf8" $fdone
Lo anterior sólo tendría sentido si dentro del directorio /var/www/html hubiera documentos HTML
codificados en ISO8859-1.
Si desea continuar viviendo en el pasado y no aceptar el nuevo estándar, también puede
desactivar la función en Apache que establece UTF-8 como codificación predefinida. Edite elarchivo /etc/httpd/conf/httpd.conf:
vim /etc/httpd/conf/httpd.conf
30/04/13 Alcance Libre - Configuración básica de Apache.
www.alcancelibre.org/staticpages/index.php/como-apache/print 8/18
Localice lo siguiente:
AddDefaultCharset UTF-8
Cambie UTF-8 por Off:
AddDefaultCharset Off
Directorios virtuales.
Si, por ejemplo, se quisiera añadir el alias para un directorio localizado en/var/contenidos/ejemplo/ y el cual queremos visualizar como el directorio /ejemplo/ en Apache,
lo primero será crear el directorio:
mkdir -p /var/contenidos/ejemplo
Cambie los contextos de SELinux de este directorio, con la finalidad de que tenga rol de objeto(object_r), creado por usuario de sistema (system_u) y tipo httpd_sys_content_t:
chcon -u system_u /var/contenidos/ejemplochcon -r object_r /var/contenidos/ejemplochcon -t httpd_sys_content_t /var/contenidos/ejemplo
Genere el archivo /etc/httpd/conf.d/ejemplos.conf:
vim /etc/httpd/conf.d/ejemplos.conf
Añada el siguiente contenido:
Alias /ejemplo /var/contenidos/ejemplo
Guarde y cierre el archivo.
Recargue el servicio httpd.
service httpd reload
Asumiendo que realizará la prueba desde el mismo anfitrión local, visualice este nuevo directorio
30/04/13 Alcance Libre - Configuración básica de Apache.
www.alcancelibre.org/staticpages/index.php/como-apache/print 9/18
virtual, con cualquier navegador, a través de http://127.0.0.1/ejemplo/. Se mostrará que eldirectorio existe, pero el acceso a éste está denegado.
Si desea realizar las comprobaciones desde el mismo anfitrión, puede utilizar el navegador Lynx.
lynx http://127.0.0.1/ejemplo/
Lo anterior deberá mostrar un error 403 (acceso denegado), pues el directorio carece de unarchivo índice. Para poder acceder deberá haber un documento índice en el interior (index.html,index.php, etc) o bien que dicho directorio sea configurado para mostrar el contenido.
Edite de nuevo el archivo /etc/httpd/conf.d/ejemplos.conf:
vim /etc/httpd/conf.d/ejemplos.conf
Modifique el contenido para que quede del siguiente modo:
Alias /ejemplo /var/contenidos/ejemplo <Directory "/var/contenidos/ejemplo"> Options Indexes </Directory>
La opción Indexes indica que se deberá mostrar el índice de contenido del directorio.
Recargue el servicio httpd para aplicar la configuración:
service httpd reload
Asumiendo que realizará la prueba desde el mismo anfitrión local, acceda hacia
http://127.0.0.1/ejemplo/ con cualquier navegador y visualice el resultado.
Si se requiere que este directorio tenga aún mayor funcionalidad, se pueden añadir másopciones, como por ejemplo AllowOverride, Includes y FollowSymLinks, como se muestra
en el siguiente ejemplo:
Alias /ejemplo /var/contenidos/ejemplo <Directory "/var/contenidos/ejemplo"> Options Indexes Includes FollowSymLinks AllowOverride all </Directory>
En el ejemplo anterior:
30/04/13 Alcance Libre - Configuración básica de Apache.
www.alcancelibre.org/staticpages/index.php/como-apache/print 10/18
La opción FollowSymLinks habilita el uso de enlaces simbólicos dentro del
directorio. Sólo utilice ésta si necesita acceder a contenidos fuera deldirectorio a utilizar.La opción Includes especifica que se permite la utilización de los SSI
(Server Side Includes). Sólo utilice ésta si así lo requiere la aplicación oprograma utilizado dentro este directorio.La opción AllowOverride, con el valor all posibilita utilizar archivos
.htaccess, los cuales a su vez permiten aplicar opciones de directorio al
vuelo, sin necesidad de modificar otros archivos de configuración.
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio httpd:
service httpd reload
Asumiendo que realizará la prueba desde el mismo anfitrión local, acceda hacia
http://127.0.0.1/ejemplo/ con cualquier navegador y visualice el resultado.
Si desea realizar las comprobaciones desde el mismo anfitrión, puede utilizar el navegador Lynx.
lynx http://127.0.0.1/ejemplo/
Limitar el acceso a directorios por dirección IP.
Si se requiere limitar el acceso de un directorio en particular, para que éste esté disponible sólohacia ciertas direcciones IP o bloques de red, defina algo como lo mostrado en el siguienteejemplo:
Alias /ejemplo /var/contenidos/ejemplo
<Directory "/var/contenidos/ejemplo">
Order deny,allow
Deny from all
Allow from 127.0.0.0/8 192.168.70.0/25
Options Indexes
AllowOverride all </Directory>
El ejemplo anterior establece que el orden de acceso, donde primero se aplicarán las reglas dedenegación y luego las que permitirán el acceso y que se denegará el acceso a todo el mundo,permitiendo el acceso sólo desde 127.0.0.0/8 y 192.168.70.0/25.
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio httpd:
30/04/13 Alcance Libre - Configuración básica de Apache.
www.alcancelibre.org/staticpages/index.php/como-apache/print 11/18
service httpd reload
sumiendo que realizará la prueba desde el mismo anfitrión local, acceda haciahttp://127.0.0.1/ejemplo/ con cualquier navegador y visualice el resultado.
Si desea realizar las comprobaciones desde el mismo anfitrión, puede utilizar el navegador Lynx.
lynx http://127.0.0.1/ejemplo/
Limitar el acceso por usuario y contraseña.
La autenticación para directorios, contra un archivo que incluya nombres de usuario y claves deacceso, que también puede combinarse con el acceso por dirección IP, se realiza a través de lasiguiente sintaxis:
AuthName "Acceso sólo para usuarios autorizados"AuthType BasicRequire valid-userAuthUserFile /cualquier/ruta/hacia/archivo/de/claves
Lo anterior puede ser incluido en la configuración existente para cualquier directorio o bien enarchivo .htaccess.
Genere el directorio /var/www/privado/ ejecutando lo siguiente:
mkdir -p /var/www/privado
Genere un archivo denominado arbitrariamente /etc/httpd/conf.d/ejemplo-autenticar.conf:
vim /etc/httpd/conf.d/ejemplo-autenticar.conf
Añada con el siguiente contenido:
Alias /privado /var/www/privado<Directory "/var/www/privado"> Options Indexes AllowOverride All Order allow,deny Allow from all</Directory>
30/04/13 Alcance Libre - Configuración básica de Apache.
www.alcancelibre.org/staticpages/index.php/como-apache/print 12/18
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio httpd:
service httpd reload
Genere el archivo /var/www/privado/.htaccess.
vim /var/www/privado/.htaccess
Agregue el siguiente contenido:
AuthName "Sólo usuarios autorizados"AuthType BasicRequire valid-userAuthUserFile /var/www/claves
Genere el archivo de claves de acceso como /var/www/claves, ejecutando el siguiente
procedimiento:
touch /var/www/claves
Cambie los permisos de sólo lectura y escritura para usuario y cambie la propiedad al usuario ygrupo apache:
chmod 600 /var/www/claveschown apache:apache /var/www/claves
Agregue algunos usuarios virtuales al archivo de claves, /var/www/claves, ejecutando elmandato htpasswd, usando como argumentos la ruta del archivo de claves de acceso y nombredel usuario a añadir o modificar:
htpasswd /var/www/claves fulanohtpasswd /var/www/claves menganohtpasswd /var/www/claves perenganohtpasswd /var/www/claves zutano
Asumiendo que realizará la prueba desde el mismo anfitrión local, acceda con cualquier
navegador hacia http://127.0.0.1/privado/ y compruebe que funciona el acceso con autenticación,utilizando cualquiera de los dos usuarios virtuales que generó con el mandato htpasswd, es decir
fulano o mengano.
Si desea realizar las comprobaciones desde el mismo anfitrión, puede utilizar el navegador Lynx.