Manuales para esto hay a cientos por la red, pero siempre me pasa lo mismo: soy muy despistado y a poco tiempo que haya pasado desde que hice algo, se me olvida ![]()
Esta entrada es una especie de guía rápida para recordar como hacer las cosas, pero intentaré ponerlo lo más clarito posible para todos. Así que, si veis que necesita darle un repaso o añadir alguna cosa más que pueda ser de utilidad, no dejeis de avisarme ![]()
Instalando Apache2
Bueno, esto es relativamente simple pero no está de más recordarlo o poner una pequeña guía que sea útil a todos.
Vamos a partir de la necesidad de montar un wiki (como este). En este caso, es Dokuwiki. Como la gran mayoría de aplicaciones que usamos hoy día, dokuwiki utiliza PHP. Por tanto, vamos a aprovechar para instalar todos los paquetes juntos.
Abrimos una terminal, hacemos un sudo su para convertirnos en administradores del sistema, y hacemos un apt-get update para garantizar que tenemos los repositorios actualizados.
Seguidamente, instalaremos los paquetes de apache2, php, y alguna que otra dependencia necesaria mediante un apt-get install apache2 libapache2-mod-php5 php5-mysql
Dokuwiki no usa MySQL, pero si resultará necesario para otras cosas como un WordPress, un eGroupware u otra aplicaciones que queramos montar en un futuro.
Una vez instalado, seguimos con el paso siguiente.
Entendiendo Apache2, de forma sencilla
Apache2 es, quizás, más simple de configurar que las versiones anteriores por el hecho de contar con varios archivos de configuración en lugar de uno sólo.
Si hacemos un cd /etc/apache2, veremos que en ese directorio encontramos otro llamado “sites-available”. Dentro de él, encontraremos dos archivos de configuración: default y default-ssl
El primero de ellos configura el sitio por defecto que reside en /var/www para acceder por el puerto 80 (el de toda la vida), mientras que el segundo proporciona el acceso mediante web segura.
Estos archivos los usaremos como plantillas a la hora de crear sitios virtuales. No obstante, y dado que queremos alojar más de una web en el mismo servidor, vamos a modificar la instalación para tenerlo todo ordenado.
Ordenando las webs (opcional)
Primer paso. Vamos a crear un directorio dentro de /var/www que llamaremos default (por ejemplo). Para eso hacemos:
cd /var/www mkdir default chmod 777 default chown www-data:www-data default Con esto ya lo tenemos creado, y con todos sus privilegios
Luego haremos un mv /var/www/index.html /var/www/default/index.html, para colocar el archivo index.html de la página por defecto en su sitio. Ahora debemos editar el archivo default que se encuentra en /etc/apache2/sites-available
Pasaremos de esto:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
a esto otro:
<VirtualHost *:80>
ServerAdmin alfonso@alfonsoarjona.net
DocumentRoot /var/www/default
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/default>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Como podemos ver, la línea DocumentRoot /var/www del archivo original, la hemos pasado a DocumentRoot /var/www/default De igual forma <Directory /var/www/> ha pasado a <Directory /var/www/default>
Y finalmente ServerAdmin webmaster@localhost ahora es ServerAdmin alfonso@alfonsoarjona.net
Ahora hacemos un /etc/init.d/apache2 reload, y se aplicarán los cambios.
Creando un host virtual
Vamos a ver como se hace para este dominio.
Creamos un directorio dentro de /var/www que llamaremos wiki.alfonsoarjona.net. Para eso hacemos:
cd /var/www mkdir wiki.alfonsoarjona.net chmod 777 wiki.alfonsoarjona.net chown www-data:www-data wiki.alfonsoarjona.net
Con esto ya lo tenemos creado, y con todos sus privilegios
Ahora viene lo sencillo, que es copiar default a otro archivo. Para que sea claro, haremos esto:
cd /etc/apache2/sites-available cp default wiki.alfonsoarjona.net
Y ahora editaremos wiki.alfonsoarjona.net, para dejarlo de esta forma:
<VirtualHost *:80>
ServerAdmin alfonso.arjona@alfonsoarjona.net
ServerName wiki.alfonsoarjona.net
DocumentRoot /var/www/wiki.alfonsoarjona.net
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/wiki.alfonsoarjona.net>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/wiki-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/wiki-access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Las líneas que hemos cambiado son:
-
ServerAdmin alfonso.arjona@alfonsoarjona.net
-
ServerName wiki.alfonsoarjona.net (esta la hemos añadido)
-
DocumentRoot /var/www/wiki.alfonsoarjona.net
-
<Directory /var/www/wiki.alfonsoarjona.net>
-
ErrorLog /var/log/apache2/wiki-error.log
-
CustomLog /var/log/apache2/wiki-access.log combined
La primera tiene mi dirección de correo, para enviar reportes y avisos. La segunda el nombre del host virtual La tercera, el lugar donde estarán los documentos html/php o lo que sea de nuestra web La cuarta, define los privilegios de acceso del directorio donde está la web La quinta, me genera un log que contiene exclusivamente los errores de la wiki Y la sexta, genera un log con los accesos de la wiki, y sólo de la wiki.
Bien, ahora el paso final. Debemos hacer que apache empiece a trabajar con ese host virtual. Para eso hacemos un a2ensite wiki.alfonsoarjona.net, y después un /etc/init.d/apache2 reload.
¡Listo! Ya tenemos nuestro host virtual funcionando.

