Instalar y configurar Apache 2.2.3 en Debian Etch

Leyendo varios HOW TO y manuales de instalación y
configuración del servidor web más utilizado del planeta he conseguido
dejar a Apache, en su versión 2.2.3, como lo he deseado y para no
olvidarme de los pasos que seguí aqui dejo un "memo" que seguramente
les ayudará a uds también. Los pasos:

1) Instalar Apache y algunas utilidades que nos serán de ayuda

sudo apt-get install apache2 apache2-doc libapache2-mod-php5 libapache2-mod-vhost-hash-alias

Con esto ya tenemos funcionando de modo standard Apache

Para iniciar el servidor:
sudo apachectl -k start

Para detenerlo:
sudo apachectl -k stop

Ahora
hay que adentrarnos al archivo de configuración de Apache. En este caso
vamos a utilizar solo dos: apache2.conf ubicado en /etc/apache2 y el
archivo de hosts default ubicado en
/etc/apache2/sites-available.Comencemos:

a) Para que apache se inicie con el sistema pondremos, en el archivo /etc/default/apache2

# 0 = start on boot; 1 = don't start on boot
NO_START=0

y sino

NO_START=1.-

b) Para habilitar o deshabilitar modulos de Apache utilizaremos las herramientas respectivamente

sudo a2enmod nombre_del_modulo
sudo a2dismod nombre_del_modulo

por ejemplo si queremos habilitar ssl en nuestro servidor haremos

sudo a2enmod ssl

c) Configurando los hosts. En /etc/apache2/apache2.conf buscamos o agregamos las siguientes lineas:

#Nombre del servidor
ServerName localhost

ahora en /etc/apache2/sites-available/default

NameVirtualHost *
<VirtualHost *>
ServerName localhost
DocumentRoot /var/www/domain
ServerAdmin webmaster@localhost
<Directory />
Options SymLinksIfOwnerMatch
AllowOverride None
</Directory>
<Directory /var/www/>
Options -Indexes -Includes -FollowSymLinks Multiviews
AllowOverride None
Order allow, deny
Allow from all
RedirectMatch ^/$ /mispaginas/
</Directory>
CustomLog /var/log/apache2/access.domain.log combined
ErrorLog /var/log/apache2/error.domain.log
</VirtualHost>
<VirtualHost *>
ServerName www.otherdomain.com
ServerAlias otherdomain.com *.otherdomain.com
DocumentRoot /var/www/otherdomain
ServerAdmin webmaster@otherdomain.com
<Directory />
Options SymLinksIfOwnerMatch
AllowOverride None
</Directory>
<Directory /var/www/otherdomain>
Options -Indexes -Includes -FollowSymLinks Multiviews
AllowOverride None
Order allow, deny
Allow from all
</Directory>
CustomLog /var/log/apache2/access.otherdomain.log combined
ErrorLog /var/log/apache2/error.otherdomain.log
</VirtualHost>

Veamos que hacen algunas directivas de VirtualHost:

Nombre que el servidor utiliza para identificarse (debe figurar en el DNS). Si no tenemos un dominio
registrado usaremos localhost:

ServerName localhost

En caso de tenerlo:
ServerName www.domain.com

Directorio donde se alojan los sitios web, Apache busca por defecto en /var/www/apache2-default/
En este caso lo cambiaremos por "mispaginas":

sudo mkdir /var/www/mispaginas
sudo chmod a+rw -R /var/www/mispaginas

DocumentRoot /var/www/
RedirectMatch ^/$ /mispaginas/

Email del administrador que saldrá cuando haya errores Si no
tenemos un dominio registrado usaremos localhost:

ServerAdmin webmaster@localhost

caso contrario:

ServerAdmin webmaster@domain.com

Archivo donde se guardan los logs de acceso y formato (si pensamos servir varios dominios,
tendremos archivos de logs de acceso diferentes):

CustomLog /var/log/apache2/access.domain.log combined

Ubicación de los logs de error (si pensamos servir varios dominios, usaremos archivos
de logs de error diferentes:

ErrorLog /var/log/apache2/error.domain.log

Tipo de mensajes que se guardarán en los logs de error (de menos a más gravedad:
debug, info, notice, warn, error,
crit, alert y emerg):

LogLevel warn

Con la directiva Directory definimos opciones que se aplican al directorio indicado y sus
subdirectorios. Lo habitual es configurar unos permisos por defecto muy restrictivos:

<Directory />
Options SymLinksIfOwnerMatch
AllowOverride None
</Directory>

y posteriormente habilitar el acceso y permisos más amplios en directorios específicos.
Por ejemplo, para la raíz del árbol de documentos y sus subdirectorios:

<Directory /var/www/>
Options -Indexes -Includes -FollowSymLinks Multiviews
AllowOverride None
Order allow, deny
Allow from all
</Directory>

La opción SymLinksIfOwnerMatch sólo permite que puedan seguirse
los enlaces simbólicos si el propietario del link y el del archivo apuntado es el mismo.

La opción FollowSymLinks permite que puedan seguirse
los enlaces simbólicos. Por seguridad, esta opción la desactivamos.

Con la opción Indexes, si se solicita un directorio y no existe la
página especificada con DirectoryIndex (index.html,
index.htm, etc.), Apache mostrará el contenido del directorio.

Es preferible desactivar esta opción con -Indexes para no arriesgarnos
a que el usuario pueda acceder a archivos del directorio, Apache mostrará el error Forbidden - You don’t have permission.

c) Continuando con la seguridad. En el archivo apache2.conf editaremos o agregamos las siguientes líneas:

#Para mostrar el minimo de informacion acerca del sistema y del servidor
ServerTokens Prod
ServerSignature Off

Podemos indicar que página se mostrará cuando ocurra un error (por ejemplo: 404 Not Found) con

ErrorDocument 404 /mispaginas/missing.html

Seria
bueno engañar al intruso mostrando el mismo error cuando quiera
ingresar a un directorio que sí existe pero no tiene acceso al mismo
entonces:

ErrorDocument 403 /mispaginas/missing.html

d)
Redireccionando a directorios fuera del árbol de la raíz. Por ejemplo
si queremos ver archivos que estan en el directorio "documentos" del
home del usuario X debemos utilizar la directiva Alias en apache2.conf
buscaremos el bloque <IfModule alias_module> y dentro escribimos:

Alias /docs"/home/X/documentos"

<Directory "/home/X/documentos">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

con
esto al ingresar en la barra de direcciones del navegador
http://domain.com/docs se visualizará el contenido de ese directorio.-

Pues
bien sería bueno que ahora el directorio "documentos" del home del
usuario X requiera de contraseña para acceder, para ello podemos
utilizar la autenticación BASIC o DIGEST ambas hacen lo mismo pero
BASIC envía la contraseña sin encriptar por la red mientras que DIGEST
la encripta con MD5. Por ese motivo utilizaremos DIGEST.-

Habilitamos el modulo de digest

sudo a2enmod auth_digest

creamos a los usuarios con

sudo htdigest -c /etc/apache2/.passwd Private nombre_usuario

La opción -c es para crear el archivo .passwd en caso de que no exista. Nos pedirá una contraseña y su confirmación.-

Ahora en /etc/apache2/sites-available/default agregamos

<Directory /home/X/documentos/>
AuthType Digest
AuthName "Private"
AuthDigestProvider file
AuthUserFile /etc/apache2/passwd
Require valid-user
</Directory>

Ahora cada vez que quieras ingresar a ese directorio te deberás loguear.

Espero que haya servido este pequeño memo.-

fuente: www.larepaweb.com.ar

Tags:

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de gaston
Muy bien

Buen aporte Luis, espero les sirva a todos.

Enviado por gaston el Mié, 19/03/2008 - 20:35.
Imagen de oaglp
muy bueno

la verdad que esta bueno el aporte

Enviado por oaglp el Mié, 19/03/2008 - 23:34.
Imagen de Jose Tapia
Excelente aporte

Gracias de verdad que estaba buscando en google alguna info adicional de las directivas de apache y tu tuto me resulto bastante util habia un par de cositas q no manejaba aun, gracias y siempre para adelante

Enviado por Jose Tapia (no verificado) el Mar, 10/06/2008 - 19:20.

Inicio de sesión

CAPTCHA
Esta pregunta sirve para asegurarnos de que eres una persona y no un robot que envía spam
10 + 6 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Comentarios