¡Esta es una revisión vieja del documento!
Podrás manipular apache ejecutando apache2/bin/httpd segido de -k y alguno de los siguientes parámetros:
start Inicia restart Reinicia graceful Reinicia poco a poco, a medida que acaban las peticiones stop Para el servicio
Si usas Debian y lo has instalado mediante paquetes, Apache estará en /etc/init.d/apache y se tratará como un servicio (para, por ejemplo, reiniciar: /etc/init.d/apache restart
Archivos de configuración según distribución:
apache2/conf/httpd.conf /etc/apache2/apache2.conf
/usr/sbin/apache2ctl -t en Debian, en cualquier otra busca el ejecutable apachectl o apache2ctl.Include), de esa forma también será leido y podremos ternerlo organizado por secciones\ficheros:Include conf/extra/httpd-userdir.conf
Directivas:
ServerName arturito:80 ... ServerName alfred.isa-geek.net:468
La acción 'binding' consiste en escuchar por puertos, para ello se usa la directiva listen. Apache te permite escuchar por uno o varios puertos, elegir a qué IP atenderás… Apache responderá por cada uno de los sitios indicados.
Listen 80
Listen 80 Listen 8080
Listen 192.170.2.1:80 Listen 192.170.2.5:8000
Las scope directives son las indicadas para configurar el servidor 'por partes' específicas. Para ello utilizamos las secciones:
El siguiente código impide el acceso a los ficheros denominados private.html:
<Files private.html> Order allow,deny Deny from all </Files>
Podemos también combinar estas directivas:
<Directory /var/web/dir1> <Files private.html> Order allow,deny Deny from all </Files> </Directory>
Mediante estas limitamos la concfiguración a zonas específicas de nuestro server. Pueden estar anidadas.
También existen directivas de ámbito condicionales, si sus condiciones son ciertas será válida la configuración que contienen:
Estas también pueden pueden realizar comprobaciones negativas usando !.
<IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 20 MaxRequestsPerChild 0 </IfModule>
Es el nombre por defecto del fichero de Acceso (puede ser cambiado, o asignado otros nombres, en la directiva AccessFileName). Este fichero se utiliza para especificar unas directivas concretas a un sitio. La directiva AllowOverride de la configuración principal indica que tipo de directivas pueden ser sobreescritas por los ficheros de acceso.
En Linux, un Sistema Operativo donde pueden existir varios usuarios, es posible que cada uno de ellos tenga su propia web personal. Para ello se ha de usar la directiva UserDir del módulo mod_userdir.
Se puede indicar de formas distintas:
public_html como directorio web./var/html debe existir una carpeta con el nombre de cada usuario la cual será su directorio web./var/html debe existir una carpeta con el nombre de cada usuario y dentro de esta una con nombre docs la cual será su directorio web.
A partir de entonces cada usuario podrá acceder a su web mediante la dirección: host/~usuario.
http://127.0.0.1/~alfred
Existen dos tipos de Hosts Virtuales, los que se basan en nombres y los que se basan en direcciones. A los primeros Apache devolverá la página web adecuada según el nombre indicado, respecto a los que se basan en IP, las webs que devolverán vendrán dadas por la IP que realiza la petición.
Para usar VH (VirtualHosts) basados en nombres tendrás que especificar que dirección y puerto se usarán para atender las peticiones (NameVirtualHost), aunque también puede ser indicado con un *. A partir de ahí ya podemos crear un bloque VH con el argumento al NameVirtualHost correspondiente, dentro de cada uno de estos bloques, como mínimo, necesitarás definir:
La directiva ServerAlias permitirá que a un VH pueda accederse mediante varios nombres.
Cuando llega una petición, el servidor verifica si se está usando una dirección IP que coincide con el valor de NameVirtualHost. Si es así, buscará en cada sección <VirtualHost> la IP que coincida e intentará encontrar si el valor de la directiva ServerName o de la directiva ServerAlias coincide con el nombre del sitio web de la petición. Si encuentra una coincidencia, usa la configuración de ese servidor. Si no la encuentra, usa el primer host virtual de la lista cuya dirección IP coincida con el de la petición.
En la directiva ErrorLog podremos configurar el archivo log (de registro) principal.
La directiva LogLevel se utiliza para controlar los tipos de errores según su gravedad.
Cuando llegue el momento de cambiar de archivos de log (porque, por ejemplo, los que tienes actualmente se han llenado demasiado) el siguiente conjunto de comandos puede ser el más adecuado:
mv access_log access_log.old mv error_log error_log.old apachectl graceful sleep 600 gzip access_log.old error_log.old
También podemos indicar un log específico por VirtualHost que tengamos configurado incluyendo las directivas anteriores dentro del contenedor <VirtualHost>.
Estas se encuentran en el módulo mod_access y son usadas junto con las <Directory>, <File>, <Location> y el archivo .htaccess.
all o un nombre de host (este puede ser un nombre de host, una IP o un rango de IPs).Allow from all Allow from 192.168.1
Deny, Allow El acceso por defecto es permitido. Se evalua primero la directiva Deny.Allow, Deny El acceso por defecto es restringido. Se evalua primero la directiva Allow.Order Allow,Deny Allow from apache.org Deny from foo.apache.org
Esta directiva nos permite redireccionar una url; de esta forma podemos enlazar un directorio que no se encuentra en nuestra web.
Haciendo:
Alias /jorge /mnt/www/jorge
Podremos acceder a: http://127.0.0.1/jorge
Apache es un servidor modular, esto significa que podemos añadirle propiedades añadiendole nuevos módulos.
Al instalarse, Apache se instala con dos módulos por defecto: core.c y mod_so.c; son los correspondientes al núcleo. Luego, a parte, pueden añadirse más, de forma estática, al instalar Apache, indicando qué módulos deben de ser añadidos. O compilándolos y añandiéndolos usando apxs, a estos se les llama módulos DSO (Dynamic Shared Object).
Podemos listar módulos haciendo: ejecutable apache -l
./apache2 -l
Para Construir e instalar un módulo, pongamos mod_foo.c, como un DSO con nombre nombre mod_foo.so con apxs haremos:
$ cd /path/to/3rdparty $ apxs -c mod_foo.c $ apxs -i -a -n foo mod_foo.la
Una vez tengamos un módulo compilado mediante apxs podremos cargarlo al iniciar Apache utilizando la directiva LoadModule.
El Apache del sistema Debian proviene de ciertas herramientas para facilitar algunas tareas:
mods-enabled y mods-available. Se añaden ficheros de configuración .load en mods-available y cuando queramos activar un módulo ejecutaremos el a2enmod seguido del nombre del módulo, se creará un enlace en mods-enabled que será usado por apache para activarlo.sites-enabled y sites-available. Se añaden ficheros de configuración de sitios en sites-available y cuando queramos activar ese sitio ejecutaremos el a2ensite seguido del nombre del site, se creará un enlace en sites-enabled que será usado por apache para activarlo./var/log/apache2ln -s index.htm index.html.apache2.conf, los puertos de escucha se encuentran en ports.conf. Hay dos carpetas para sites y para módulos, para los activos y para los existentes; por ejemplo, para los sites existe el site-avaiable donde están todos los archivos de configuración para VirtualHost. En site-enabled se encuentran enlaces simbólicos hacia ellos, realmente los se importan al archivo de configuración son los de site-enabled.apache2 -Swww-data, aunque esto puede ser editado con User y Group. Ejemplo: User alfred.<Directory /> Options SymLinksIfOwnerMatch AllowOverride None Order Deny,Allow Deny from all </Directory> DocumentRoot "/var/www/htdocs" <Directory "/var/www/htdocs"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory>
… Como por ejemplo .htaccess.
<Files ~ "^\."> Order allow,deny Deny from all </Files> <Files ~ "^\.\.?$"> Order allow,deny Allow from all </Files>