javoaxian cambió a: javoaxian.me
Este blog se mantendrá como histórico del nuevo javoaxian.me. Por tal motivo, sólo serán creados post que harán referencia a los del nuevo blog. Si hay dudas y comentarios, favor de hacerlos en javoaxian.me.

miércoles, 2 de abril de 2008

Instalar Apache desde código fuente en GNU/Linux

En este post exlicaré como instalar un servidor Apache en nuestra máquina GNU/Linux. Ésto deberá funcionar para cualquier distribución, ya sea para Debian, Ubuntu, Fedora, etc., e incluso hasta para equipos con sistema operativo UNIX.

Para fines prácticos la instalación la realizaré en el directorio /usr/local.

Lo primero que hay que hacer es bajar el archivo desde aquí.

En mi caso bajé el archivo httpd-2.2.8.tar.bz2.
Una vez que se haya descargado el archivo realizaremos los siguiente pasos como root. Para ello ejecutaremos ésto en una consola:

$ su -

Ahora que ya somos el usuario root, procederemos a instalar apache.

$ cp /ruta/donde/se/bajo/httpd-2.2.8.tar.bz2 /usr/local/src/
$ cd /usr/local/src/
$ tar -jxvf httpd-2.2.8.tar.bz2
$ cd httpd-2.2.8
$ ./configure --prefix=/usr/local/apache --enable-module=so
o
$ ./configure --prefix=/usr/local/apache --enable-so

Es posible que en esta parte, mande algunos errores de dependencia, como por ejemplo que no tienen instalado gcc, o los fuentes de GCC como es el paquete libc6-dev.

Para instalarlos en sistemas basados en Debian, como Ubuntu, simplemente ejecuten el comando apt-get install con los paquetes que vayan necesitando, por ejemplo:

$ apt-get install gcc libc6-dev

En el caso de otras distribuciones deberán usar sus herramientas para instalar los paquetes necesarios o en su defecto bajar los paquetes e instalarlos.

Una vez resueltos estos problemas seguiremos con la instalación.

$ make
$ make install

Con ésto ya tenemos instalado apache, ahora lo que haremos es configurar el usuario y grupo de trabajo que aparece como dueño de los procesos de apache.

Para ésto, primero crearemos el usuario apache y el grupo apache en caso de que no existan. Como esta cuenta no requiere un shell, la crearemos sin esta propiedad.

$ useradd -s /usr/sbin/nologin apache

o

$ useradd -s /sbin/nologin apache

Ahora editaremos el archivo /usr/local/apache/conf/httpd.conf con el editor de su preferencia. En mi caso me gusta usar vi pero como a algunos se les complica, usare como ejemplo nano.

$ nano /usr/local/apache/conf/httpd.conf

Deberán buscar dos líneas semejantes a éstas:

$ User daemon
Group daemon

Y cambiaremos daemon por apache en las dos líneas.

$ User apache
Group apache

Ahora guardamos los cambios y saldremos presionando Ctrl+S.

Listo, ahora lo único que nos resta es arrancar apache, para ésto, deberemos hacerlo como root siempre.

$ /usr/local/apache/bin/apachectl start

Abrimos nuestro navegador y teclamos la siguiente dirección: http://localhost/

Nos deberá aparecer algo como lo siguiente:


Para detenerlo ejecutaremos:

$ /usr/local/apache/bin/apachectl stop

Para quienes desean ejecutar apache desde que se inicia la máquina y usan Debian, Ubuntu o alguna distribución basada en Debian, pongo el siguiente script. Copien y peguen el código siguiente en un archivo llamado httpd.

#!/bin/sh
#
# description: startup and shutdown the Apache
#
echo "Apache start/stop"

APACHE2_HOME=/usr/local/apache

case "$1" in
'start')
# Start the Apache
echo -n "Starting the Apache Server... "
$APACHE2_HOME/bin/apachectl start
echo
;;
'stop')

# Stop the Apache
echo -n "Shutting down Apache Server... "
$APACHE2_HOME/bin/apachectl stop
echo
;;

'restart')
# Restart the Apache
echo -n "Restarting Apache Server... "
$0 stop
$0 start
echo
;;

*)
echo "Usage: httpd [ start | stop | restart ]"
exit 1
esac
exit 0

Ahora que se tiene el script, deberán colocarlo en el directorio /etc/init.d

$ cp httpd /etc/init.d/

Ahora ejecuten lo siguiente:

$ cd /etc/init.d
$ chmod 755 httpd
$ update-rc.d httpd defaults

Con esto el script se ejecutará apache cada vez que se inicie la máquina.

Con esto finalizamos la instalación de apache, pero como punto extra, pondré aquí cómo habilitar un directorio de nuestra cuenta de usuario para poder poner nuestras páginas y verlas en el navegador.

En este caso, yo habilitaré el directorio htdocs dentro del HOME de mi usuario, entonces para ésto usaré la ruta /home/javoaxian/htdocs.
Como usuario root abriremos el archivo /usr/local/apache/conf/httpd.conf

$ nano /usr/local/apache/conf/httpd.conf

Buscaremos la sección del módulo de alias

<IfModule alias_module>

En esta sección, buscaremos el siguiente párrafo:

    # If you include a trailing / on /webpath then the server will
# require it to be present in the URL. You will also likely
# need to provide a <Directory> section to allow access to
# the filesystem path.

Abajo de este párrafo, agregaremos las siguientes líneas para que quede de la siguiente manera:

    # If you include a trailing / on /webpath then the server will
# require it to be present in the URL. You will also likely
# need to provide a <Directory> section to allow access to
# the filesystem path.

Alias /javoaxian "/home/javoaxian/htdocs"
<Directory /home/javoaxian/htdocs>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

Recuerden cambiar la ruta /home/javoaxian/htdocs a la ruta del directorio en su HOME que vayan a usar, y cambiar el alias que van a usar, que como podrán ver en la línea Alias /javoaxian "/home/javoaxian/htdocs" yo estoy usando el alias javoaxian.

Ahora guardamos el archivo y salimos de él. Posteriormente para que surtan efecto estos cambios, deberemos reiniciar apache en caso de estar activo y sino, en el momento que lo activemos deberán verse los cambios que hicimos.

Para reinicar el servidor de apache detendremos apache:

$ /usr/local/apache/bin/apachectl stop

Y ahora iniciamos apache:

$ /usr/local/apache/bin/apachectl start

Ha quedado configurado nuestro alias, ahora con nuestra cuenta de usuario crearemos el directorio htdocs dentro de nuestro HOME.

javoaxian@darthmaul:~$ mkdir htdocs

Ahora crearemos una página de prueba llamada index.html dentro del directorio htdocs, por ejemplo:

javoaxian@darthmaul:~$ cd htdocs
javoaxian@darthmaul:~$ nano index.html

Pondremos lo siguiente dentro del archivo:

Hola apache

Guardamos los cambios y salimos del archivo.

Para comprobar que se creó nuestro alias, abriremos nuestro navegador y teclearemos la dirección: http://localhost/javoaxian/index.html

Deberá mostrarse el mensaje Hola apache. Como podrán observar en la dirección http://localhost/javoaxian/index.html aparece el alias javoaxian, por lo cual, deberán cambiar éste por el que ustedes hayan puesto.

Con ésto concluyo este post.

2 comentarios:

Anónimo dijo...

Muy buen post javoaxian, me fue muy util se agradece.

Jazmin dijo...

Que buen post.. me fue de gran ayuda.