# [APACHE] No consigo cambiar página de inicio (Solucionado)

## Popolous

¡Hola!

Vuelvo a la carga con una duda nueva. Estoy intentando cambiar algunos parámetros de Apache. En particular, la página de inicio que me sale al teclear en el navegador:

 *Quote:*   

> 
> 
> http://localhost
> 
> 

 

Me sale el mensaje de "It Works!". Buscando, he visto que en el directorio /var/www/htdocs/ existe un archivo llamado index.html que es el que tiene el texto de marras. Lo he probado a cambiar por simplemente "Funciona!", pero al reiniciar apache me sigue apareciendo este dichoso mensaje y no sé cómo cambiarlo   :Sad: . No creo que tenga que ver con el idioma, pondré otro texto en inglés a ver si furula pero creo que no van por aquí los tiros....

He estado buscando en el foro y he encontrado [How-to] Configurar Servidor http Apache y he seguido las guías del Wiki. También he mirado en la página oficial de Apache, pero esta documentación me resulta confusa, puesto que ahora está dispersa en varios archivos de configuración y me hago un lío, aunque básicamente, he tocado /etc/conf.d/apache2 y /etc/apache2/httpd.conf y he navegado por /etc/apache2/modules.d/ donde hay más ficheros de configuración que imagino que se cargan después del httpd.conf según la línea siguiente de este archivo de configuración:

 */etc/apache2/httpd.conf wrote:*   

> 
> 
> Include /etc/apache2/modules.d/*.conf
> 
> 

 

Tengo también la siguiente línea en /etc/conf.d/apache2 por si sirve de utilidad:

 */etc/conf.d/apache2 wrote:*   

> 
> 
> APACHE2_OPTS="-D INFO -D LANGUAGE -D MANUAL -D SSL -D SUEXEC -D PHP5 -D SECURITY -D PYTHON -D USERDIR"
> 
> 

 

A pesar de la directiva (o como se llame) "... -D USERDIR" no consigo tampoco navegar por el directorio de mi usuario.

Los permisos de los directorios están dados para el usuario apache y grupo apache y he añadido a mi usuario al grupo apache también, pero no sé qué puede estar pasando   :Crying or Very sad: .

En cuanto al modo de acceso, sólo puedo acceder si pongo http://localhost en el navegador, si pongo http://127.0.0.1. me da el siguiente mensaje de error:

 *Quote:*   

> 
> 
> Imposible realizar la conexión
> 
> 

 

A ver si podemos ir solucionando problemas, porque llevo un buen rato dando vueltas y no hago más que empeorar las cosas....

¡Saludos!Last edited by Popolous on Mon Oct 08, 2007 11:04 am; edited 1 time in total

----------

## Inodoro_Pereyra

Cual es tu DocumentRoot en httpd.conf? Ahi dentro, en el DocumentoRoot, vas a encontrar el index.ht* que hay que modificar.

Salud!

----------

## i92guboj

Cuando estés probando, si usas firefox u otro browser que sea igual de deficiente mental, desactiva las caches o límpialas tras cada intento y reinicialo. Porque si no, te volverás loco al ver que las páginas que editas no cambian.

----------

## Inodoro_Pereyra

 *i92guboj wrote:*   

> Cuando estés probando, si usas firefox u otro browser que sea igual de deficiente mental, desactiva las caches o límpialas tras cada intento y reinicialo. Porque si no, te volverás loco al ver que las páginas que editas no cambian.

 

JA!

Es verdad... No se me había ocurrido.

Salud!

----------

## Popolous

 *Inodoro_Pereyra wrote:*   

> Cual es tu DocumentRoot en httpd.conf? Ahi dentro, en el DocumentoRoot, vas a encontrar el index.ht* que hay que modificar.
> 
> Salud!

 

Mi DocumentRoot es:

 *Quote:*   

> 
> 
> # Directorio de inicio
> 
> DocumentRoot "/chroot/apache/var/www/localhost/web/"
> ...

 

Y ahí tengo un index.html con el texto modificado. Voy a probar a ver lo que dice el amigo i92guboj:

 *i92guboj wrote:*   

> 
> 
> Cuando estés probando, si usas firefox u otro browser que sea igual de deficiente mental, desactiva las caches o límpialas tras cada intento y reinicialo. Porque si no, te volverás loco al ver que las páginas que editas no cambian.
> 
> 

 

Como sea esto realmente, me voy a pegar un tiro  :Evil or Very Mad:   :Evil or Very Mad: 

¡Saludos!

----------

## Popolous

Increíble, acabo de vaciar la caché del firefox y me dice que imposible realizar la conexión   :Confused: . He probado también con links y me dice que la conexión ha sido rehusada.

No uso iptables ni otro firewall que pueda estar bloqueando las peticiones al puerto 80.

El log de error del apache arroja lo siguiente:

 *Quote:*   

> 
> 
> # cat /var/log/apache2/startuperror.log 
> 
> apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
> ...

 

He buscado antes por el foro este error y con las soluciones que se dan (como quitar -D DEFAULT_VHOST del fichero /etc/conf.d/apache2 y similares) no consigo quitar el mensaje de error.

Os posteo la información de /etc/hosts y /etc/conf.d/hostname:

 */etc/hosts wrote:*   

> 
> 
> # /etc/hosts: Local Host Database
> 
> #
> ...

 

 */etc/conf.d/hostname wrote:*   

> 
> 
> # /etc/conf.d/hostname
> 
> # Set to the hostname of this machine
> ...

 

No sé qué puede estar mal, también tengo puesto la directiva:

 *Quote:*   

> 
> 
> # Nombre del servidor
> 
> ServerName localhost
> ...

 

En el archivo /etc/apache2/httpd.conf. No sé qué más puede estar pasando....

¡Saludos!

----------

## i92guboj

 *Popolous wrote:*   

> Increíble, acabo de vaciar la caché del firefox y me dice que imposible realizar la conexión  . He probado también con links y me dice que la conexión ha sido rehusada.
> 
> 

 

Entonces está claro que era eso lo que pasaba. Ni siquiera estaba leyendo la página del servidor (y ahora está claro), sino que la cogía de su caché local. Este sistema de caché tan horrendo, es solo uno de los motivos por los que considero firefox un browser inútil, sobre todo si tu trabajo ocasionalmente consiste en la creación de páginas web.

----------

## i92guboj

En cuanto a apache, ahora mismo no lo tengo instalado, y de memoria poco puedo ayudar. Solo decirte lo que ya sabes, que mires bien los vhosts, las rutas locales (DocumentRoot) y los nombres de host y todo eso.

Hace tiempo que ya no uno apache, porque realmente no lo necesito. Con lighttpd me va de maravilla, y la ram de mi máquina lo agradece. En cualquier caso, si es apache lo qeu necesitas, no creo que tardes en dar con la solución. Es uno de los servidores mejor documentados y como todo el mundo lo usa, hay bastante soporte en toda la red.

----------

## Popolous

Gracias i92guboj, espero que pronto pueda dar con la solución y postearla aquí. Revisaré de arriba a abajo la configuración y me leeré bien lo de los vhosts, no lo tengo muy claro para qué sirve y si realmente le puedo dar utilidad.

Si se complica mucho, usaré lighttpd. Me decanté por Apache por aprender algo que todo el mundo usaba y sobre el que como dices, hay montón de documentación. Veremos a ver qué tal.

Si hay más ideas por ahí, deseoso de escucharlas, mientras tanto, habrá que seguir peleando con esto.

¡Saludos!

----------

## ZaPa

Hola a todos.

No se si servirá de mucho pero a mi me paso algo parecido en un servidor dedicado que tenia con fedora, revisa los permisos de dicho directorio o de dicho/s fichero/s .html, yo probaria a darle permisos 777 y si asi funciona ya le das permisos para cada usuario.

Saludos.

Cuentanos aver que tal vas.

----------

## gringo

 *Quote:*   

> # IPv4 and IPv6 localhost aliases
> 
> 127.0.0.1 Einstein localhost
> 
> 192.168.1.129 Einstein localhost
> ...

 

como dices que por ip tampoco va no creo que tenga nada que ver, pero esa forma de resolver creo que solo te va dar problemas. 

Usa sólo un host host.dominio por línea, no los mezqules.

 *Quote:*   

> No se si servirá de mucho pero a mi me paso algo parecido en un servidor dedicado que tenia con fedora, revisa los permisos de dicho directorio o de dicho/s fichero/s .html, yo probaria a darle permisos 777 y si asi funciona ya le das permisos para cada usuario. 

 

para hacer pruebas vale, pero no uséis jamás 777 por norma general para los permisos en vuestros servidores web ya que se puede liar una del copón. Le estáis dando permisos de ejecución a tól mundo !!

saluetes

----------

## Popolous

Pues nada, he probado a darle permisos 777 a index.html y sigue sin funcionar.

El navegador links me dice que conexión rehusada por el host  :Sad:  y no sé a qué puede deberse si el servidor parece ser que está funcionando perfectamente. He intentado un ping pero no sé cómo dirigirlo al puerto 80 en el que está mi navegador.

 */var/log/apache2/startuperror.log wrote:*   

> 
> 
> # cat /var/log/apache2/startuperror.log 
> 
> Syntax OK
> ...

 

Voy a ver cómo puedo ver si el servidor está realmente escuchando en el puerto 80 y si no probaré a ponerlo a escuchar otro puerto, aunque no creo que tenga que ver que use un cliente web y un servidor web ambos escuchando el mismo puerto....¿o sí?   :Confused: 

Mil gracias.

¡Saludos!

----------

## gringo

comprueba con netstat -ponatu si está apache escuchando en el 80 o no.

saluetes

----------

## Popolous

 *gringo wrote:*   

>  *Quote:*   # IPv4 and IPv6 localhost aliases
> 
> 127.0.0.1 Einstein localhost
> 
> 192.168.1.129 Einstein localhost
> ...

 

A ver si te he entendido bien gringo...¿te refieres a que haga algo como esto en /etc/hosts?:

```

127.0.0.1 localhost Einstein.midominio

192.168.1.129 localhost Einstein.midominio

```

Y luego definir el dominio en otro fichero aparte, creo que en /etc/conf.d/net:

```

dns_domain_lo="midominio"

```

En caso de que quiera dominio. Si no quiero dominio, ¿he de poner Einstein también en el archivo hosts o debo definir un alias en apache para que los trate como si Einstein=localhost? Estoy bastante verde en esto.

 *gringo wrote:*   

> 
> 
>  *Quote:*   No se si servirá de mucho pero a mi me paso algo parecido en un servidor dedicado que tenia con fedora, revisa los permisos de dicho directorio o de dicho/s fichero/s .html, yo probaria a darle permisos 777 y si asi funciona ya le das permisos para cada usuario.  
> 
> para hacer pruebas vale, pero no uséis jamás 777 por norma general para los permisos en vuestros servidores web ya que se puede liar una del copón. Le estáis dando permisos de ejecución a tól mundo !!
> ...

 

Sí, para hacer pruebas, luego restauraré los permisos 644 originales o si pensáis en algo más restrictivo, soy todo oidos  :Wink: .  Por cierto, el usuario y grupo que posee los archivos es apache.

¡Saludos!

----------

## Popolous

 *gringo wrote:*   

> comprueba con netstat -ponatu si está apache escuchando en el 80 o no.
> 
> 

 

```

# netstat -ponatu

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    Timer

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      9662/mysqld         off (0.00/0/0)

tcp        0      0 0.0.0.0:4567            0.0.0.0:*               LISTEN      7616/proftpd: (acce off (0.00/0/0)

tcp        0      0 127.0.0.1:64856         0.0.0.0:*               LISTEN      11138/wish          off (0.00/0/0)

tcp        0      0 192.168.1.129:48046     64.4.36.46:1863         CLOSE_WAIT  11138/wish          off (0.00/0/0)

tcp        0      0 192.168.1.129:38772     207.46.111.65:1863      ESTABLISHED 11138/wish          off (0.00/0/0)

tcp        0      0 192.168.1.129:57636     207.46.27.198:1863      CLOSE_WAIT  11138/wish          off (0.00/0/0)

tcp        0      0 ::ffff:127.0.0.1:6880   :::*                    LISTEN      2170/java           off (0.00/0/0)

tcp        0      0 :::51595                :::*                    LISTEN      2170/java           off (0.00/0/0)

tcp        0      0 ::ffff:127.0.0.1:45100  :::*                    LISTEN      2170/java           off (0.00/0/0)

tcp        0   1938 ::ffff:192.168.1.:58708 ::ffff:77.209.156:28802 ESTABLISHED 2170/java           on (0,45/0/0)

tcp        0      0 ::ffff:192.168.1.:47213 ::ffff:189.194.18:61488 ESTABLISHED 2170/java           off (0.00/0/0)

tcp        0  15296 ::ffff:192.168.1.:45894 ::ffff:87.207.197:18778 ESTABLISHED 2170/java           on (1,58/0/0)

tcp        0   2824 ::ffff:192.168.1.:36069 ::ffff:85.56.72.15:6881 ESTABLISHED 2170/java           on (1,58/0/0)

tcp        0      0 ::ffff:192.168.1.:50947 ::ffff:64.125.154:48871 FIN_WAIT2   -                   timewait (33,12/0/0)

tcp        0  28002 ::ffff:192.168.1.:46457 ::ffff:200.90.87.:21797 ESTABLISHED 2170/java           on (1,87/0/0)

tcp        0  14893 ::ffff:192.168.1.:59700 ::ffff:64.42.227.:60611 ESTABLISHED 2170/java           on (3,27/0/0)

tcp        0   6330 ::ffff:192.168.1.:37681 ::ffff:201.222.15:10865 ESTABLISHED 2170/java           on (21,48/0/0)

tcp        0      1 ::ffff:192.168.1.:46272 ::ffff:89.129.171.:3005 SYN_SENT    2170/java           on (17,92/3/0)

tcp        0  35905 ::ffff:192.168.1.:57539 ::ffff:190.160.72:36803 ESTABLISHED 2170/java           on (2,98/0/0)

tcp        0      0 ::ffff:192.168.1.:55578 ::ffff:190.156.13:16623 ESTABLISHED 2170/java           off (0.00/0/0)

tcp        0      0 ::ffff:192.168.1.:44182 ::ffff:62.131.235:25288 ESTABLISHED 2170/java           off (0.00/0/0)

tcp        0   2021 ::ffff:192.168.1.:51323 ::ffff:190.21.213:11556 ESTABLISHED 2170/java           on (18,03/0/0)

tcp        0   8489 ::ffff:192.168.1.:59787 ::ffff:193.153.14:63366 ESTABLISHED 2170/java           on (1,04/0/0)

tcp        0  12218 ::ffff:192.168.1.:37651 ::ffff:87.68.3.11:57418 ESTABLISHED 2170/java           on (10,96/4/0)

udp        0      0 ::ffff:192.168.1.:33162 :::*                                2170/java           off (0.00/0/0)

udp        0      0 :::51595                :::*                                2170/java           off (0.00/0/0)

udp        0      0 :::16680                :::*                                2170/java           off (0.00/0/0)

udp        0      0 ::ffff:192.168.1.1:8008 :::*                                2170/java           off (0.00/0/0)

udp        0      0 :::1900                 :::*                                2170/java           off (0.00/0/0)

```

Parece ser que no está escuchando en el puerto 80. Si hago un:

```

 # /etc/init.d/apache2 status

```

Obtengo un:

 *Quote:*   

> 
> 
> * status:  started
> 
> Looking up localhost
> ...

 

Sin duda aquí está el problema, cuando inicio el apache, no me da ningún error. Os pego lo que pone al reiniciar el servidor web de los webos  :Laughing: :

 *Quote:*   

> 
> 
> # /etc/init.d/apache2 restart
> 
>  * Service apache2 stopping
> ...

 

Sin errores, voy a ver si hay alguna forma de iniciarlo más "verbosa" que me dé más información.

¡Saludos!

----------

## i92guboj

 *Popolous wrote:*   

> 
> 
>  *Quote:*   
> 
> # /etc/init.d/apache2 restart
> ...

 

Apache casi nunca da errores al iniciar. Mejor échale un ojo a los logs en /var/log/apache2. Puedes hacer tail -f /var/log/apache2/error_log en un terminal, mientras en otro lanzas apache para ir viendo lo que pasa.

----------

## Popolous

He hecho lo que i92guboj sabiamente ha aconsejado y este es el resultado:

 *tail -f /var/log/apache2/error_log wrote:*   

> 
> 
> [Fri Oct 05 12:21:43 2007] [error] SecServerSignature: original signature too short. Please set ServerTokens to Full.
> 
> [Fri Oct 05 12:21:43 2007] [notice] ModSecurity: chroot checkpoint #1 (pid=12636 ppid=12633)
> ...

 

Creo que eso de /etc/mime.types puede ser la clave, pero no sé cómo atajarlo. El fichero existe, pero no sé si tiene los permisos adecuados para ello:

 *Quote:*   

> 
> 
> # ls -al /etc/mime.types 
> 
> -rw-r--r-- 1 root root 20537 ago 22 16:18 /etc/mime.types
> ...

 

¿Debería cambiarle el grupo, el usuario, ambos?   :Rolling Eyes: 

¡Saludos!

----------

## gringo

 *Quote:*   

> A ver si te he entendido bien gringo...¿te refieres a que haga algo como esto en /etc/hosts?: 

 

si, seguramente sea irrelevante para el problema que tienes pero yo lo dejaría :

127.0.0.1 localhost localhost.localdomain

192.168.1.129 Einstein einstein.tu_dominio

o en fin según como quieres que resuelva, pero no pongas mas de un host por ip y línea, que se liará tarde o temprano.

Por lo que parece apache no encuentra /etc/mime.types, que me imagino que se referirá al /etc/mime.types del chroot. Cópialo al chroot, dale los permisos adecuado y a ver que te cuenta.

saluetes

----------

## Popolous

Bien, he configurado el archivo /etc/hosts/ de la siguiente manera:

 */etc/hosts wrote:*   

> 
> 
> # IPv4 and IPv6 localhost aliases
> 
> 127.0.0.1       localhost localhost.localdomain
> ...

 

Y he añadido al archivo /etc/conf.d/net la siguiente linea:

 */etc/conf.d/net wrote:*   

> 
> 
> dns_domain_lo="relativity"
> 
> 

 

Así sólo tengo un host por lina para que no se haga la picha un lío. Ahora he copiado /etc/mimes.type a /chroot/apache/etc y le he dado propietario y grupo apache y he arrancado de nuevo apache:

 */var/log/apache2/error_log wrote:*   

> 
> 
> [Fri Oct 05 13:15:40 2007] [error] SecServerSignature: original signature too short. Please set ServerTokens to Full.
> 
> [Fri Oct 05 13:15:40 2007] [notice] ModSecurity: chroot checkpoint #1 (pid=14623 ppid=14620)
> ...

 

Con lo cual ahora aparecen nuevos errores...

Gracias por vuestra ayuda, sin ella, no podría avanzar de esta manera.

¡Saludos!

P.D.: Ahora parece que Apache2 está escuchando en el puerto 80:

```

# netstat -ponatu

[Fri Oct 05 13:15:40 2007] [error] SecServerSignature: original signature too short. Please set ServerTokens to Full.

[Fri Oct 05 13:15:40 2007] [notice] ModSecurity: chroot checkpoint #1 (pid=14623 ppid=14620)

[Fri Oct 05 13:15:40 2007] [notice] ModSecurity for Apache 2.1.2 configured - Apache

[Fri Oct 05 13:15:40 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

[Fri Oct 05 13:15:41 2007] [error] SecServerSignature: original signature too short. Please set ServerTokens to Full.

[Fri Oct 05 13:15:41 2007] [notice] ModSecurity: chroot checkpoint #2 (pid=14624 ppid=1)

[Fri Oct 05 13:15:41 2007] [notice] ModSecurity: chroot successful, path=/chroot/apache

[Fri Oct 05 13:15:41 2007] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.

[Fri Oct 05 13:15:41 2007] [notice] mod_python: using mutex_directory /tmp 

[Fri Oct 05 13:15:41 2007] [notice] Apache configured -- resuming normal operations

[Fri Oct 05 11:15:52 2007] [notice] child pid 14632 exit signal Segmentation fault (11)

```

----------

## gringo

 *Quote:*   

> [Fri Oct 05 11:15:52 2007] [notice] child pid 14632 exit signal Segmentation fault (11) 

 

whoa ! con que parámetros estás ejecutando apache ( /etc/conf.d/apache) ? Usas sql, ssl y/o php por casualidad y has migrado de versiones anteriores ?

Comprueba los demás logs, que en algún lao tiene que aparecer porque se dá la ostia. ( /var/log/daemon.log quizás - aunque depende de como tengas confgurao tu logger ).

saluetes

----------

## Popolous

Los parámetros de ejecución de apache son los siguientes:

 *Quote:*   

> 
> 
> APACHE2_OPTS="-D INFO -D LANGUAGE -D MANUAL -D SSL -D SUEXEC -D PHP5 -D SECURITY -D PYTHON -D USERDIR -D SSL_DEFAULT_VHOST -D DEFAULT_VHOST"
> 
> 

 

En cuanto a los logs del resto de aplicaciones no he visto mensajes relevantes ni de error. Uso SSL y PHP5. No he migrado de versiones anteriores, pero sí que se han ido actualizando con los emerge --sync correspondientes y luego los emerge -uavDN world de rigor...No sé si esto tiene algo que ver....

¡Saludos!

----------

## gringo

prueba cargando apache sin ningún tipo de módulo, si va bien entonces ya está, alguno de los módulos anda jodiendo. 

Mis candidatos serían los dos que te he mencionado mas arriba, php o ssl. A mi me pasó algo muy similar en dos máquinas con centos y el culpable era php. 

saluetes

----------

## Popolous

Creo que como bien dices hay que ir probando a quitar módulos. Lo haré desde httpd.conf, creo que es la mejor opción, ¿verdad?

¡Saludos!

----------

## gringo

en gentoo creo que lo suyo es hacerlo con el APACHE2_OPTS, déjalo en blanco y a ver que cuenta.

saluetes

----------

## Popolous

He hecho eso y me sale lo siguiente al ejecutar apache:

 *Quote:*   

> 
> 
> # /etc/init.d/apache2 start
> 
>  * Caching service dependencies ...                                       [ ok ]
> ...

 

Revisando los logs:

 *Quote:*   

> 
> 
> Syntax error on line 7 of /etc/apache2/modules.d/16_mod_python.conf:
> 
> Invalid command 'PythonHandler', perhaps misspelled or defined by a module not included in the server configuration
> ...

 

Creo que lo siguiente es "deshacerse" (renombrar o mover a otro sitio) del módulo de python o ir a httpd.conf y evitar que se cargue.

¡Saludos!

----------

## Popolous

Pues he dejado la línea de APACHE2_OPTS en blanco y luego he movido el archivo 16_mod_python.conf de /etc/apache2/modules.d y he iniciado apache. No me ha dado ningún error, pero sigue sin cargarme localhost.

Cuando pongo http://localhost en mi navegador abajo en la izquierda me pone que intenta abrir el sitio http://www.localhost.com  :Confused:  y este mensaje me lo daba también antes de poner en blanco la línea anterior y mover el módulo de python.....  :Rolling Eyes: 

En los logs no he encontrado ningún error....Puede que ahora sea cuestión de decirle a apache que localhost es 127.0.0.1..pero ¿cómo se hace esto?

¡Saludos!

----------

## Cereza

Hablo un poco sin saber y solo he mirado el  hilo por encima, pero creo que eso es cosa /etc/hosts yo tengo una linea como esta:

```
127.0.0.1       gentoo.linux gentoo localhost.localdomain localhost
```

....... ¿acabo de decir un disparate?

----------

## Inodoro_Pereyra

Pregunta tonta, por donde se aloja tu documentroot, apache corre en una jaula chroot verdad?

Si es así, está montado /dev en /chroot/dev ?

Podés probar a que direcciones está respondiendo correctamente apache (o cualquier otro servicio) con el viejo amigo netcat - está en portage - teniendo una pequeña conversación con apache:

```
escritorio@escritorio ~ $ nc 192.168.1.2 80

GET

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

```

Osea, probar nc localhost o nc 127.0.0.1 o nc einstein al puerto 80 y una vez conectado pasarle el comando GET.

tambien te podrías escanear los puertos abiertos solo, con nmap

```
escritorio@escritorio ~ $ nmap -vv -P0 localhost

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-05 14:00 ART

Initiating Connect() Scan at 14:00

Scanning localhost (127.0.0.1) [1697 ports]

Discovered open port 22/tcp on 127.0.0.1

Discovered open port 873/tcp on 127.0.0.1

Discovered open port 631/tcp on 127.0.0.1

Completed Connect() Scan at 14:00, 0.04s elapsed (1697 total ports)

Host localhost (127.0.0.1) appears to be up ... good.

Interesting ports on localhost (127.0.0.1):

Not shown: 1694 closed ports

PORT    STATE SERVICE

22/tcp  open  ssh

631/tcp open  ipp

873/tcp open  rsync

Nmap finished: 1 IP address (1 host up) scanned in 0.121 seconds

```

Y deberías ver el puerto 80 abierto... Todo esto después de haber solucionado el problema de que apache no carga, que no sabría a que atribuirlo sinceramente.

Salud!

----------

## Popolous

¡Hola!

La verdad que no sé si solucionaré el problema, pero aprender, aprenderé un rato, eso seguro. Vayamos por partes, como las integrales  :Razz: .

Cereza No sé si será un disparate lo que dices, yo creo que no, pero te hago una pregunta, localdomain...¿lo tienes definido como tal en otro sitio? Me refiero a si tienes una entrada en /etc/conf.d/net del estilo:

 *Quote:*   

> 
> 
> dns_domain_lo="localdomain"
> 
> 

 

¿O simplemente lo has puesto en /etc/hosts y no lo has puesto en ningún otro sitio?

Inodoro_Pereyra Voy a ir probando todo lo que me has ido diciendo. Te digo que el documentroot de apache se encuentra en:

 *Quote:*   

> 
> 
> DocumentRoot "/chroot/apache/var/www/localhost/htdocs/"
> 
> 

 

No tengo montado /dev/ en /chroot/dev. Seguí la Guía de chroot para Apache del Wiki y no ví nada de eso. ¿Es necesario hacerlo? ¿Por qué? La verdad es que ni se me había pasado por la cabeza el ver si esto está así o no, yo seguí todos los pasos de la guía.

Lo que me escama es este mensaje de error:

 *Quote:*   

> 
> 
>  # /etc/init.d/apache2 status
> 
>  * status:  started
> ...

 

Tengo puesta la directiva del archivo STATUSURL en /etc/conf.d/apache2, pero quitada me da el mismo mensaje de que no puede acceder a server-status...¿Cómo podría vivir sin este archivo? Creo que comentando la línea no consigo nada. Otra cosa adicional, cuando reinicio apache me da primeramente un mensaje de error de que no puede iniciar el servidor. Si hago un:

```

# ps aux | grep -i apache   

root      7282  0.0  0.1   7876  2856 ?        Ss   18:30   0:00 /usr/sbin/apache2 -d /chroot/apache/usr/lib/apache2 -f /etc/apache2/httpd.conf -E /var/log/apache2/startuperror.log -k start

apache    7283  0.0  0.1   7812  2136 ?        S    18:30   0:00 /usr/sbin/apache2 -d /chroot/apache/usr/lib/apache2 -f /etc/apache2/httpd.conf -E /var/log/apache2/startuperror.log -k start

nobody   11624  0.0  0.1   7876  2204 ?        S    23:32   0:00 /usr/sbin/apache2 -d /chroot/apache/usr/lib/apache2 -f /etc/apache2/httpd.conf -E /var/log/apache2/startuperror.log -k start

```

Y tengo que matar cada proceso por separado para poder reiniciar apache. Esto imagino que se solucionará cuando solucione el problema que tengo ahora, porque no me lo ha hecho siempre.

A lo que iba...Si le quito la línea de STATUSURL del archivo me sigue dando el mismo error que antes...No sé esto cada vez se me complica más....  :Confused: 

Gracias mil de nuevo.

¡Saludos!

----------

## Popolous

Acabo de probar las dos vías de investigación con netcat y nmap (me las he tenido que instalar, son herramientas que no pueden fallar en mi colección jeje):

Con netcat:

```

# nc localhost 80

GET

# 

```

Es decir, no hace absolutamente nada cuando le mando un comando GET. Lo que me ha dejado flipado es el nmap:

 *Quote:*   

> 
> 
>  # nmap -vv -p0 localhost
> 
> Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-05 23:46 CEST
> ...

 

Cuando tengo corriendo el proftpd en el puerto 4567... aunque no tengo muchos conocimientos de nmap, pero creo que solamente me ha escaneado un puerto...y en la salida de Inodoro_Pereyra el nmap dice que ha escaneado 1697 puertos....¿Qué más puede estar saliendo mal?

¡Saludos!

----------

## Popolous

Jeje, vuelvo a la carga (al final me cambiaré el nick por el de cansino  :Laughing:   :Laughing: ).

Viendo la página man de nmap le he cambiado el modo de escaneo (no sé por qué con la opción -p0 no me escanea los puertos (es un cero después de la p, ¿verdad?).

Ahora hago:

```

# nmap -vv -p1-65535 localhost

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-05 23:51 CEST

Initiating SYN Stealth Scan at 23:51

Scanning localhost (127.0.0.1) [65535 ports]

Discovered open port 80/tcp on 127.0.0.1

Discovered open port 61490/tcp on 127.0.0.1

Discovered open port 51595/tcp on 127.0.0.1

Discovered open port 6880/tcp on 127.0.0.1

Discovered open port 4567/tcp on 127.0.0.1

Discovered open port 45100/tcp on 127.0.0.1

Completed SYN Stealth Scan at 23:51, 2.56s elapsed (65535 total ports)

Host localhost (127.0.0.1) appears to be up ... good.

Interesting ports on localhost (127.0.0.1):

Not shown: 65529 closed ports

PORT      STATE SERVICE

80/tcp    open  http

4567/tcp  open  unknown

6880/tcp  open  unknown

45100/tcp open  unknown

51595/tcp open  unknown

61490/tcp open  unknown

Nmap finished: 1 IP address (1 host up) scanned in 2.663 seconds

               Raw packets sent: 65535 (2.884MB) | Rcvd: 131076 (5.505MB)

```

Con lo que tengo el puerto 80 abierto....pero uno ya no sabe si está puesto a la escucha o es por el navegador web, mis conocimientos (escasísimos) de protocolos me dice que esos puertos están a la escucha de algún servicio (me ha detectado el proftpd y otros tres servicios que no tengo ni idea de qué son, pero no son puertos pasivos del protfpd, esos los tengo atados en corto...).

En fin, no sé qué más puedo ir mirando...perseverancia que dicen que al final, se consigue todo....

¡Saludos!

----------

## Inodoro_Pereyra

La opción P0 (si, es un cero) es para que escanee aun que el host no responda a los pings icmp... Depende de como hayas configurado iptables si hace falta o no. En mi caso sí.

Respecto a por que apache no te responde, ahora si, es evidente que el servicio esta corriendo y unido al puerto correspondiente, le acabo de dar una pasadita a la guia que seguiste y no, no hace falta montar /dev en tu caso.

Respecto al problema en si, lamento no poder ayudarte mas, no se me ocurre mas nada, estoy lejos de ser un literado en apache, pero una cosa es segura, es problema de configuración y es de apache pura y exclusivamente, así que vas bien encaminado.

Aveces no viene mal borrón y cuenta nueva. Si necesitás apache y nada mas, un par de paginas mas atrás, Sefirotsama hizo una guia bastante buena de como ponerlo a andar en dos patadas, o podés seguir esta otra guia que te puedo garantizar que funciona 100%.

Cualquiera de las dos puede ser tanto dentro como fuera de una jaula chroot, como mas te guste.

Salud!

----------

## Popolous

Muchas gracias, yo también creo que es exclusivamente de configuración. Quizás como dices, un borrón y cuenta nueva solucione el problema. Así solucioné otro problema que tuve con apache, así que no me sorprendería que ahora también funcionase.

Indagaré un poco más, a ver si consigo dar con el problema y puede valer en el futuro para ahorrar quebraderos de cabeza a la gente. Y si no, pues habrá que reiniciar el camino, qué remedio.

La guía que me has pasado no la he leído, trataré de seguirla antes de nada para poder ver si con eso consigo que resuelva bien apache. Hay otros servicios, como proftpd que no necesitan nada más que un:

```

# ftp localhost 4567

```

Y resuelven bien....

En cuanto a iptables, todavía no tengo nada configurado con eso, por eso lo del -p0 del nmap no me cerraba....

Gracias de nuevo. Os tendré informados. Cualquier otra sugerencia, de más decir que bienvenida.

¡Saludos!

----------

## Popolous

Bueno, parece ser que alguna mejora he hecho (todavía no he empezado de cero).

Mis sospechas apuntaban al tema de los vhosts (mala configuración) y que como tenía configurado un host virtual en el puerto 8080 pues al intentar acceder al 80 no lo tenía definido y por eso buscaba el www.localhost.com en vez de http://127.0.0.1 ó http://localhost.

He seguido La Guía de los servidores Virtuales que el amigo Inodoro_Pereyra  me ha aconsejado y ahora al arrancar apache tengo la siguiente secuencia en el archivo de errores:

[quote=tail -f /var/log/apache2/error_log"]

[Sun Oct 07 13:50:52 2007] [error] SecServerSignature: original signature too short. Please set ServerTokens to Full.

[Sun Oct 07 13:50:52 2007] [notice] ModSecurity: chroot checkpoint #1 (pid=13701 ppid=13698)

[Sun Oct 07 13:50:52 2007] [notice] ModSecurity for Apache 2.1.2 configured - Apache

[Sun Oct 07 13:50:52 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

[Sun Oct 07 13:50:53 2007] [error] SecServerSignature: original signature too short. Please set ServerTokens to Full.

[Sun Oct 07 13:50:53 2007] [notice] ModSecurity: chroot checkpoint #2 (pid=13702 ppid=1)

[Sun Oct 07 13:50:53 2007] [notice] ModSecurity: chroot successful, path=/chroot/apache

[Sun Oct 07 13:50:53 2007] [notice] Apache configured -- resuming normal operations

[/quote]

El error de ServerTokens no sé todavía a qué se debe, pero buscaré en la documentación oficial de apache para eliminarlo. Mientras, he intentado acceder a mi servidor en el puerto 80 y me sale el mensaje siguiente:

 *Quote:*   

> 
> 
> Forbidden
> 
> You don't have permission to access / on this server.
> ...

 

Me he hecho un escaneo de puertos de nuevo y he conseguido lo siguiente:

```

# nmap -vv -p0-65535 localhost 

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-07 13:56 CEST

Initiating SYN Stealth Scan at 13:56

Scanning sanctuary.mc2 (127.0.0.1) [65536 ports]

Discovered open port 80/tcp on 127.0.0.1

Discovered open port 4567/tcp on 127.0.0.1

Discovered open port 45100/tcp on 127.0.0.1

Discovered open port 8080/tcp on 127.0.0.1

Discovered open port 51595/tcp on 127.0.0.1

Discovered open port 6880/tcp on 127.0.0.1

Completed SYN Stealth Scan at 13:56, 2.93s 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: 65530 closed ports

PORT      STATE SERVICE

80/tcp    open  http

4567/tcp  open  unknown

6880/tcp  open  unknown

8080/tcp  open  http-proxy

45100/tcp open  unknown

51595/tcp open  unknown

```

Tengo el puerto 8080 definido como un host virtual en el archivo /etc/apache/vhosts.d/00_default_vhost.conf . Aparte, le tengo definido que escuche tanto el puerto 80, como el 8080 (esto lo cambiaré una vez que ande y dejaré uno nada más, de momento no quiero tener más de un host corriendo en mi máquina...)

Parece ser que ahora he acotado el problema con los permisos de los directorios...Habrá que ponerse a investigar a ver qué permisos hay....Seguiré posteando  :Wink: 

¡Saludos!

----------

## Popolous

Bueno, ahí van los permisos que tengo en el directorio /var/www/  ó /chroot/apache/var/www/  (uno es un enlace simbólico del otro como se muestra en la Guía para chrootear Apache.

```

 ls -al

total 0

drwxr-xr-x 3 apache apache 112 oct  7 13:24 .

drwxr-xr-x 8 apache apache 192 oct  4 11:14 ..

lrwxrwxrwx 1 root   root    13 oct  7 13:24 localhost -> sanctuary.mc2

drwxr-xr-x 8 juanjo apache 192 oct  4 18:34 sanctuary.mc2

```

Intento cambiarle los permisos a localhost, pero no puedo hacerlo, se queda igual....¿Alguna sugerencia?  :Rolling Eyes: 

Gracias.

¡Saludos!

----------

## Popolous

He conseguido cambiarle los permisos a localhost, había que emplear la opción -R en el comando chown.

Sin embargo, sigue sin funcionar, me sigue diciendo que no tengo acceso al servidor...  :Crying or Very sad: 

¡Saludos!

----------

## Popolous

Tras darle muchas vueltas a la configuración, he decidido empezar de nuevo e ir haciendo una bitácora para ir viendo los pasos e ir comprobando que todo sale bien.

Voy a empezar siguiendo la Guía para Apache con PHP y MySQL. Luego después, seguiré la guía de Servidores de Hosting Virtual en Linux y por último la de Guía de Chroot de Apache. Os iré contando cómo van los avances en este mismo post.

Aunque no haya dado con el problema, quisiera agradecer a la gente que me ha ayudado en este post por sus consejos y por darme otras herramientas para testear y mecanismos para ir viendo las cosas. La verdad es que es un placer tener a gente de esa clase por aquí. Se aprende muchísimo.

Hasta el próximo post  :Wink: 

¡Saludos!

----------

## Popolous

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":

```

# emerge -C apache

```

Y hemos borrado los archivos que había en:

 *Limpieza de apache total wrote:*   

> 
> 
> # /var/log/apache2
> 
> # /etc/conf.d/apache2
> ...

 

2. Reinstalación de Apache 2.2.6.

Tras esto, hemos reemergido apache:

```

# emerge -av 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
> ...

 

Por tanto, hicimos un:

```

# 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.

 :Arrow:  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:

```

# /etc/init.d/apache2 start

```

La retahíla de mensjes que nos aparece en pantalla es la siguiente:

 *Inicio de apache wrote:*   

> 
> 
>  * Caching service dependencies ...                                       [ ok ]
> 
>  * Service apache2 starting
> ...

 

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:

 :Idea:  Poniendo el netcat a las escucha en el puerto 80 y lanzar el comando [b]GET:

```

$ nc localhost 80

GET

```

La respuesta debe ser algo tal que así:

 *Quote:*   

> 
> 
> <html><body><h1>It works!</h1></body></html>
> 
> 

 

 :Idea:  Usando un navegador en modo consola como links:

```

$ links2 http://localhost

```

O alternativamente:

```

$ links2 localhost

```

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[b]. Así os debería funcionar

Todo esto fueron sugerencias e ideas que [b]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:

```

# nmap -vv -p0-65535 localhost

```

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
> ...

 

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.

 :Arrow:  Bien, ahora probamos a cambiar la página de inicio de Apache, para ver si todo va bien hasta ahora.

```

$ 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:

```

$ nc localhost 80

GET

```

Obteniendo la respuesta:

 *Quote:*   

> 
> 
> 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:

```

# gpasswd -a usuario 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:

```

$ 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í  :Wink: 

¡Saludos!

----------

