Bueno, pues ya he conseguido arreglar el problema. Creo que estaba en los permisos para el directorio /chroot/ pero no puedo saberlo con certeza. Sin embargo, siguiendo estos pasos, el servidor de Apache funciona correctamente y según lo que yo quería:
Una vez que no he conseguido que Apache funcione decentemente, me he decidido a reinstalarlo de nuevo.
1. Borrado de la instalación anterior. Preparando el terreno.
Primero, hemos
"desemergido apache":
Y hemos borrado los archivos que había en:
Limpieza de apache total wrote:
# /var/log/apache2
# /etc/conf.d/apache2
# /etc/apache2
2. Reinstalación de Apache 2.2.6.
Tras esto, hemos reemergido apache:
Las USE de compilación usadas han sido las siguientes:
USE FLAGS para Apache 2.2.6 wrote:
Calculating dependencies... done!
[ebuild N ] www-servers/apache-2.2.6-r1 USE="doc ldap mpm-peruser ssl threads -debug -mpm-event -mpm-itk -mpm-prefork -mpm-worker -no-suexec (-selinux) -static-modules"
Las CFLAGS que se han utilizado son las estándar en mi sistema:
CFLAGS wrote:
# CFLAGS no agresivas
CFLAGS="-march=nocona -O3 -pipe -fomit-frame-pointer"
Tras una compilación satisfactoria de apache según las USE y CFLAGS anteriormente citadas, se ha procedido a configurar el apache según las instrucciones dadas al finalizar la instalación:
Finalización instalación apache wrote:
* The default webroot has not been installed into
* /var/www/localhost because the directory already exists
* and we do not want to overwrite any files you have put there.
*
* If you would like to install the latest webroot, please run
* emerge --config =apache-2.2.6-r1
* GNU info directory index is up-to-date.
Por tanto, hicimos un:
Code: Select all
# emerge --config =apache-2.2.6-r1
NOTA: Este mensaje se hubiese podido obviar de haber eliminado anteriormente el directorio /var/www/localhost/ en su totalidad, pero al no haberlo hecho, no he dado marcha atrás. Para la siguiente ocasión habría que tenerlo en cuenta.
El resultado del anterior comando es el siguiente:
emerge --config =apache-2.2.6-r1 wrote:
Configuring pkg...
* Installing default webroot to /var/www/localhost
Como sabueso suspicaz, nos vamos al directorio /var/www/localhost y vemos lo que contiene:
ls /var/www/localhost wrote:
cgi-bin error htdocs icons php web
3. Configurando el servidor y comprobación de funcionamiento.
Bien, ahora probamos a ver que todo vaya bien en apache.
Primero, iniciamos apache, hay que destacar que no ponemos "a la escucha" en otra ventana (como usuario normal o superusuario) el registro de errores de apache, porque al no haberlo iniciado aún, no tenemos todavía ningún archivo creado, en caso de que dé error, lo utilizaremos:
La retahíla de mensjes que nos aparece en pantalla es la siguiente:
Inicio de apache wrote:
* Caching service dependencies ... [ ok ]
* Service apache2 starting
* Starting apache2 ...
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [ ok ]
* Service apache2 started
Ahora, vamos a ver si todo va bien. Primero, via firefox. Abrimos una ventana en el navegador y ponemos
http://localhost/, o directamente
localhost. Obtenemos el mensaje ya tan conocido de
Itworks!.
Veamos por otros medios cómo comprobar lo que nos dice el navegador:
Poniendo el netcat a las escucha en el puerto 80 y lanzar el comando GET:
La respuesta debe ser algo tal que así:
<html><body><h1>It works!</h1></body></html>
Usando un navegador en modo consola como links:
O alternativamente:
NOTA: Puede que el comando anterior os arroje un mensaje de error, esto es debido a que no estaréis en el directorio en el que se aloja el fichero index.html que viene por efecto con Apache. Para que funcione como $DEITY manda, id al directorio /var/www/locahost/htdocs y poned: links2 index.html. Así os debería funcionar
Todo esto fueron sugerencias e ideas que i92guboj me dio en el Hilo de dudas de Apache que abrí en el foro de Gentoo. También aquí hay ideas de Inodoro_Pereyra y gringo que también ayudaron lo suyo en dicho post. Gracias a todos.
Si por alguna razón os diese problemas apache (puede que no venga puesto por defecto en el puerto 80, aunque es raro, pero nunca se sabe), podéis escanear los puertos con nmap:
Esto os hará un escaneo de todos los puertos de vuestro ordenador abiertos con servicios a la escucha. Deberéis fijar vuestra atención en el que diga:
nmap -vv -p1-65535 localhost wrote:
Starting Nmap 4.20 (
http://insecure.org ) at 2007-10-08 12:28 CEST
Machine 127.0.0.1 MIGHT actually be listening on probe port 80
Initiating Connect() Scan at 12:28
Scanning sanctuary.mc2 (127.0.0.1) [65536 ports]
Discovered open port 80/tcp on 127.0.0.1
Discovered open port 443/tcp on 127.0.0.1
Discovered open port 61035/tcp on 127.0.0.1
Completed Connect() Scan at 12:28, 1.38s elapsed (65536 total ports)
Host sanctuary.mc2 (127.0.0.1) appears to be up ... good.
Interesting ports on sanctuary.mc2 (127.0.0.1):
Not shown: 65533 closed ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
61035/tcp open unknown
Como véis tengo abiertos el puerto 80 (http - Apache que es el que interesa) y otros más (el 443 también lo ha abierto Apache). Si fuese otro puerto el que os abriese apache, probad a poner en el navegador
http://localhost:puerto donde
puerto es el correspondiente al puerto que os dé nmap con el servicio http.
Bien, ahora probamos a cambiar la página de inicio de Apache, para ver si todo va bien hasta ahora.
Code: Select all
$ cd /var/www/localhost/htdocs
$ gvim index.html
Cambiamos donde pone la cadena de texto "It works!" por lo siguiente:
index.html wrote:
<html><body><h1>Funciona! Ya puedes seguir configurando Apache</h1></body></html>
Al haber cambiado la página de inicio por esto, en el navegador obtenemos la cadena que hemos cambiado (sin refrescar el caché en firefox, simplemente cerrando la pestaña del localhost y volviendo a abrir la pestaña de nuevo y tecleando
http://localhost).
Para ser frikis del todo, vamos a usar nuestro querido
netcat:
Obteniendo la respuesta:
GET
<html><body><h1>Funciona! Ya puedes seguir configurando Apache</h1></body></html>
Con esto, hemos obtenido lo que queríamos que era configurar bien apache y permitir que todo funcionase a las mil maravillas cambiando la página de inicio. Ahora, tocaría configurar los servidores virtuales e indagar un poco más en los archivos de configuración de apache.
NOTA: En todo este tiempo, # hace referencia a una consola de administrador, superusuario o root, como se prefiera y $ a una consola de usuario normal.
Una última cosa:
los permisos. En los directorios
/var/www/localhost y subsiguientes los permisos son para el usuario
apache y grupo
apache también. Hay que añadir a nuestro usuario al grupo apache:
Hay que sustituir
usuario con el nombre de usuario correspondiente.
4. Otras consideraciones antes de los siguientes pasos.
En mi caso, ya había seguido la guía para los servidores virtuales, por tanto, podía acceder a mi servidor sin más que teclear lo siguiente:
Code: Select all
$ links2 http://einstein.sanctuary.mc2/
Pero puede que no sea el caso nada más empezar. Todo esto estará configurado cuando uno termine de leer el
Cómo del
Servidor de Hosting Virtual de Linux.
Sin embargo, siguiendo este
CÓMO al pie de la letra no debería de haber más problemas con esto.
*********EDITADO*********
Arreglado un link que no iba
El manual de apache se encuentra, según se puede ver el archivo
/etc/apache2/modules.d/00_apache_manual.conf tecleando en el navegador la dirección:
http://einstein.sanctuary.mc2 en mi caso, o en el caso genérico
http://tuservidor.ejemplo.com
Espero que sirva a otra gente para que no le dé tantos quebraderos de cabeza como a mí
¡Saludos!