# apache+mod_php+mod_ssl+mod_perl

## ikepa2

Buenas a todos/as, envío este mensaje ya que estoy teniendo problemas a la hora de tener un servidor web Apache con los modulos para PHP, Perl y SSL, concretamente con el modculo mod_perl que es el que no logro hacer funcionar. Aquí os detallo que pasos he seguido:

Hace un rato he instalado los paquetes que en el título de este mensaje especifico. Lo hice mediante emerge, de la siguiente manera:

```
emerge apache mod_perl mod_php mod_ssl
```

No hubo problema alguno en la compilación ni nada. Posteriormente edite el archivo /etc/apache/conf/apache.conf y agregué las siguientes líneas:

```
LoadModule php4_module  extramodules/libphp4.so

LoadModule perl_module  extramodules/libperl.so

LoadModule ssl_module   extramodules/libssl.so

AddModule mod_php4.c

AddModule mod_perl.c

AddModule mod_ssl.c

Include  conf/addon-modules/mod_ssl.conf

Include  conf/addon-modules/mod_php.conf
```

Las linea AddModule mod_perl.c no estoy seguro de si he de agregarla o no. La he agregado ya que en el archivo /etc/apache/conf/commonapache.conf encuentro varias lineas que hacen referencia a el (a mod_perl.c) en varias partes. Por si sirve de algo, aquí os pego las lineas que digo de dicho archivo (commonapache.conf):

```
( ... )

<IfModule mod_perl.c>

    <Location /perl-status>

        SetHandler perl-script

        PerlHandler Apache::Status

        Order deny,allow

        Deny from all

        Allow from 127.0.0.1

        #Allow from .your_domain.com

    </Location>

</IfModule>

( ... )

<IfModule mod_perl.c>

    <Directory /home/*/public_html/perl>

        SetHandler perl-script

        PerlHandler Apache::PerlRun

        Options -Indexes ExecCGI

        PerlSendHeader On

    </Directory>

</IfModule>

( ... )

<IfModule mod_perl.c>

    PerlModule Apache::Registry

        

    #set Apache::Registry Mode for /perl Alias

    <Location /perl/*.pl>

        SetHandler perl-script

        PerlHandler Apache::Registry

        Options -Indexes ExecCGI

        PerlSendHeader On

    </Location>

    

    #set Apache::PerlRun Mode for /cgi-perl Alias

    <Location /cgi-perl/*.pl>

        SetHandler perl-script

        PerlHandler Apache::PerlRun

        Options -Indexes ExecCGI

        PerlSendHeader On   

    </Location>

</IfModule>
```

Y bien, así tengo mis archivos de configuración para Apache. El servidor lo lancé haciendo un /etc/init.d/apache start

```
# /etc/init.d/apache start

 * Starting apache...

[Sun Nov 24 11:47:54 2002] [alert] apache: Could not determine the server's fully qualified domain name, using 192.168.0.1 for ServerN  [ ok ]
```

Funciona todo bien; he probado a cargar paginas en php y funciona y he intentado a abrir scripts en perl (dandole permisos de ejecucion a esos scripts previamente) pero no los ejecuta, solo muestra el codigo, el contenido del script.

He mirado el archivo error_log y parece cargar bien todos los modulos. No da error alguno:

```
# tail -f /var/log/apache/error_log

[Sun Nov 24 11:54:30 2002] [alert] apache: Could not determine the server's fully qualified domain name, using 192.168.0.1 for ServerName

[Sun Nov 24 11:54:31 2002] [notice] Apache/1.3.27 (Unix)  (Gentoo/Linux) mod_ssl/2.8.12 OpenSSL/0.9.6g mod_perl/1.27 PHP/4.2.3 configured -- resuming normal operations

[Sun Nov 24 11:54:31 2002] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

[Sun Nov 24 11:54:31 2002] [notice] Accept mutex: sysvsem (Default: sysvsem)
```

Disculpen por la longevidad del mensaje, solo he intentado dar la mayor informacion posible de como tengo esto colocado. Espero que me podáis ayudar.

Gracias de ante mano y un saludo  :Smile: 

----------

## Pep

Y añadiendo el mod_cgi?

----------

## julio

Cuando haces emerge mod_* te sale un mensaje que dice que ejecutes un script que agrega automáticamente las líneas apache.conf para cargar los módulos que acabas de instalar. 

Por ejemplo, esto es lo que sale cuando termina de hacer emerge mod_ssl

 *Quote:*   

>  * Execute "ebuild /var/db/pkg/net-www/mod_ssl-2.8.12/mod_ssl-2.8.12.ebuild config"
> 
> * to have your apache.conf auto-updated for use with this module.
> 
> * You should then edit your /etc/conf.d/apache file to suit.
> ...

 Aunque no creo que esta se tu problema igual deberías ejecutar estos scripts después que resuelvas el problema.

Ahora, lo que yo creo que es tu problema es un módulo que se llama unique_id_modules. Intenta poniendo un comentario a las siguientes líneas en apche.conf

```
LoadModule unique_id_module  modules/mod_unique_id.so

...

AddModule mod_unique_id.c
```

----------

## ikepa2

Hola, gracias por las respuestas y sugerencias pero no he conseguido mejora alguna. mod_perl sigue sin funcionar  :Sad: 

Respecto a lo de incluir mod_cgi, de hecho ya lo tenia añadido en apache.conf.

Y sobre lo de comentar las lineas referentes a mod_unique_id lo he hecho y he reiniciado el apache pero sigue sin funcionar perl  :Sad: 

En fin... gracias de todas formas; esperando nuevas sugerencias...  :Smile: 

Un saludo

----------

## julio

ejecutaste

```
ebuild /var/db/pkg/dev-perl/mod_perl-1.27-r1/mod_perl-1.27-r1.ebuild config
```

  :Question: 

----------

## ikepa2

hola julio, gracias por la sugerencia pero ya lo he intentado así y tampoco he conseguido gran cosa (nada mejor dicho  :Sad: )

Otra cosa que se me olvidó comentar en el mail inicial es que modifique el archivo /etc/conf.d/apache descomentando la variable APACHE_OPTS dejandola de este modo:

```
APACHE_OPTS="-D SSL -D PHP4 -D PERL"
```

Y bueno, creo que ya he probado con todo (aunque se me debe de estar escapando algo...) gracias por las respuestas y a ver si a alguien se le ocurre que puede faltar/pasar  :Smile: 

Saludos

----------

## julio

en los foros en ingles sugieren que hagas emerge de ExtUtils-MakeMaker y despues mod_perl otra vez. Prueba a ver si te ayuda de algo

----------

## ikepa2

Saludos, ExtUtils-MakeMaker ya lo tenia instalado

```
# emerge --pretend ExtUtils-MakeMaker

These are the packages that I would merge, in order.

Calculating dependencies ...done!

[ebuild   R  ] dev-perl/ExtUtils-MakeMaker-6.05-r1
```

De todos modos, lo intente de este modo. Pero no ha funcionado. Hice un emerge ExtUtils-MakeMaker y posteriormente hice un emerge mod_perl. Pero no ha funcionado  :Sad: 

No se que puede estar pasando... la verdad que siempre he tenido problemas a la hora de agregar mod_perl a Apache. Lo raro es que el fichero error_log no da ningun error al levantar el servidor Apache. Y al realizar una peticion de una pagina web o un script en PERL, el fichero access_log no da ningun tipo de programa, demuestra que el fichero lo entrega bien y todo (solo eso, que aparece el codigo del script en vez de ser ejecutado)

Muchas gracias por todo. Si alguien tiene en marcha un servidor Apache junto con mod_perl, estaría genial que nos contara por aquí cómo lo hizo  :Smile:  a ver si se me está olvidando algo, que, seguramente, debe ser eso.

Un saludo y hasta pronto

----------

## julio

Lo mas lógico: revisa los permisos.

Tambien deberias revisar suexec, que es una especie de programa que permite a apache correr scripts con los permisos de otro usuario. Intenta moverlo a un sitio donde apache no lo encuentre. Por ejemplo

```
mv /usr/sbin/suexec /usr/sbin/suexec.tmp
```

----------

## ikepa2

Saludos de nuevo, Julio. Nuevamente, gracias por tu nueva sugerencia  :Smile: 

Ya parece pesado decirlo pero... desgraciadamente tampoco ha funcionado intentado esto que dices.

Respecto a los permisos de suexec, los tengo de este modo:

# ls /usr/sbin/suexec 

-rws--x---    1 root     apache        12K Nov 24 02:52 /usr/sbin/suexec*

Venian así por defecto.

Un saludo

----------

