Práctica: instalación del servidor web
Enunciado práctico
- Descargar de Internet el código del servidor Apache e instalarlo
en algún subdirectorio dentro del directorio de nuestro usuario. Debemos
instalar la última versión disponible, además de asegurarnos de
que se ha realizado una instalación correcta de los siguientes módulos:
- Configurar el servidor previamente instalado para que responda
a las peticiones HTTP en el puerto 1234.
- Configurar el servidor web para que sirva los documentos que se
hallan en el subdirectorio web dentro del directorio de trabajo de nuestro usuario.
- Configurar el servidor web para que pueda ejecutar programas CGI del
subdirectorio cgi dentro de directorio de trabajo de nuestro usuario.
Resolución
Una vez hallamos obtenido el código fuente de Apache, lo descomprimimos:
[david@bofh m2]$ tar xvzf httpd-2.0.48.tar.gz
httpd-2.0.48/
httpd-2.0.48/os/
httpd-2.0.48/os/os2/
httpd-2.0.48/os/os2/os.h
httpd-2.0.48/os/os2/core.mk
httpd-2.0.48/os/os2/config.m4
httpd-2.0.48/os/os2/Makefile.in
httpd-2.0.48/os/os2/core_header.def
....
httpd-2.0.48/include/ap_release.h
httpd-2.0.48/include/.indent.pro
httpd-2.0.48/include/util_cfgtree.h
httpd-2.0.48/acconfig.h
[david@bofh m2]$
Una vez tengamos el código fuente dentro de nuestro directorio,
podemos configurarlo para compilarlo. Le indicaremos
a Apache dónde queremos instalarlo. Nosotros
hemos escogido el subdirectorio "apache" dentro nuestro directorio de
trabajo.
Nos aseguraremos también de que se incluyan los módulos deseados.
[david@bofh m2]$ cd httpd-2.0.48
[david@bofh httpd-2.0.48]$ ./configure \
--prefix=/home/carlesm/apache \.
--enable-cgi
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
....
creating srclib/pcre/Makefile
creating test/Makefile
config.status: creating docs/conf/httpd-std.conf
config.status: creating docs/conf/ssl-std.conf
config.status: creating include/ap_config_layout.h
config.status: creating support/apxs
config.status: creating support/apachectl
config.status: creating support/dbmmanage
config.status: creating support/envvars-std
config.status: creating support/log_server_status
config.status: creating support/logresolve.pl
config.status: creating support/phf_abuse_log.cgi
config.status: creating support/split-logfile
config.status: creating build/rules.mk
config.status: creating include/ap_config_auto.h
config.status: executing default commands
[david@bofh httpd-2.0.48]$
Ha llegado el momento de compilar.
[david@bofh httpd-2.0.48]$ make
Making all in srclib
make[1]: Entering directory ‘/srcs/httpd-2.0.48/srclib’
Making all in apr
make[2]: Entering directory ‘/srcs/httpd-2.0.48/srclib/apr’
Making all in strings
....
make[1]: Leaving directory ‘/srcs/httpd-2.0.48’
Si la compilación se ha realizado con éxito, instalamos Apache en el directorio
elegido:
[david@bofh httpd-2.0.48]$ make install
Making install in srclib
make[1]: Entering directory ‘/srcs/httpd-2.0.48/srclib’
Making install in apr
make[2]: Entering directory ‘/srcs/httpd-2.0.48/srclib/apr’
Making all in strings
....
mkdir /home/carlesm/apache/man
mkdir /home/carlesm/apache/man/man1
mkdir /home/carlesm/apache/man/man8
mkdir /home/carlesm/apache/manual
Installing build system files
make[1]: Leaving directory ‘/srcs/httpd-2.0.48’
[david@bofh httpd-2.0.48]$ cd /home/carlesm/apache/
[david@bofh apache]$ ls
bin build cgi-bin conf error htdocs
icons include lib logs man manual
modules
[david@bofh apache]$
Seguidamente configuramos Apache con los parámetros solicitados.
Editamos el fichero /home/carlesm/apache/conf/httpd.conf y modificamos los siguientes parámetros:
Listen 1234
ServerAdmin admin@uoc.edu
DocumentRoot "/home/carlesm/web"
<Directory "/home/carlesm/web">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ "/home/carlesm/cgi/"
<Directory "/home/carlesm/cgi">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
|