martes, 18 de septiembre de 2007

Modulo de apache de php en Gentoo

Hace un par de dias actualice mi sistema con un emerge -va world con la mala pata que cuando termino la compilacion y en vista de que tenia que actualizar 17 archivos de configuracion hice el gañan y movi el contenido de los nuevos sobreescribiendo los viejos

Una vez terminada la faena y en vista que todo parecia funcionar yo segui a lo mio hasta que hoy al intentar entrar a una de las paginas que tengo alojadas en mi ordena me descargaba el codigo php :D. ¿Gracioso no?

Acto seguido pare el apache ya que como es obvio el codigo libre pero no las passwords de los ficheros de configuracion del wordpress :P

Bueno pues ahora por la tarde me disponia a meter el modulo de php5 que imagine se les habria pasado a estos maravillosos ebuildsnasters de gentoo con la mala pata que al ponerlo me dio el siguiente error

Apache2 has detected a syntax error in your configuration files:
apache2: Syntax error on line 169 of /etc/apache2/httpd.conf: Syntax error on line 4 of /etc/apache2/modules.d/70_mod_php5.conf: API module structure 'php5_module' in file /usr/lib64/apache2/modules/libphp5.so is garbled - expected signature 41503232 but saw 41503230 - perhaps this is not an Apache module DSO, or was compiled for a different Apache version?


Buscando por internet me di cuenta que me veo obligado a re-emergear el php (que no es poco)

En fin, no todo ha sido tiempo perdido, he aprendido algo nuevo que me interesa reflejar aqui a modo de apunte acerca de la configuracion de apache en gentoo

Para cargar el modulo php puedes hacerlo de varias formas

La que yo ya sabia era metiendo en alguno de los archivos de configuracion como por ejemplo en....

/etc/apache2/modules.d/default

...la carga de el modulo...

LoadModule php5_module modules/libphp5.so

Tambien puedes editar el archivo en /etc/conf.d/apache2 y añadir -D PHP5 a las opciones de arranque de apache2

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D MANUAL -D SSL -D SSL_DEFAULT_VHOST -D SUEXEC -D PHP5"

Estas dos primeras opciones cargan el modulo de php... la pregunta del millon es ¿Que diferencia una de la otra?

La primera solo carga el modulo, luego tu tienes que establecer en que sitio deseas que se pueda ejecutar el php que extensiones etc.... con la segunda, tira de un archivo en mi caso /etc/apache2/modules.d/70_mod_php5.conf que contiene ya toda la configuracion tipica de un servidor que admita php.

El contenido del mismo es:

<IfDefine PHP5>
  # Load the module first
  <IfModule !mod_php5.c>
    LoadModule php5_module modules/libphp5.so
  </IfModule>
  
  # Set it to handle the files
  <IfModule mod_mime.c>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .phtml
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php4
    AddType application/x-httpd-php .php5
    AddType application/x-httpd-php-source .phps
  </IfModule>
  
  AddDirectoryIndex index.php index.phtml
</IfDefine>


La decision de usarlo o no ya recae en cada uno y varia segun a quien esta destinado los virtuales... en mi caso que solo estoy programando web en php y que soy el unico usuario de este servidor me ahorra mucha morralla a la hora de configurar nuevos servidores virtuales.

3 comentarios:

Anónimo dijo...

Saludos, bueno llegue a tu blog buscando una solucion al problema q tengo con apache que es casi similar "expected signature 541503232 but saw ..." yo no iniciaba el php sino configuraba el Subversion(control de versiones) copiando un archivo mod_dav_svn.so, bueno no se como solucionarlo y veo q tu lo solucionast y es muy parecido al mio, y kisiera saber como lo hiciste, gracias :-)

moz667 dijo...

Que distro usas?
Gentoo?
Si es asi, este wiki puede que resuelva tu problema.

http://gentoo-wiki.com/HOWTO_Apache2_with_subversion_SVN_and_DAV

Sino, busca info para tu distro, te lo digo por que gentoo es un poco especial para el tema apache.

moz667 dijo...

Este tambien tiene buena pinta...
http://www.marblestation.com/blog/?p=148

Salud3!

Seguidores