Ejecutando mod_perl en El Capitán

0

Estoy intentando ejecutar mod_perl en El Capitán.

Proceso

  1. Siguiendo enlace an enlace

  2. El repositorio correcto es diferente para El Capitán, así que usa svn co https://svn.apache.org/repos/asf/perl/modperl/tags/2_0_9/

    2. perl Makefile.PL MP_CCOPTS=-std=gnu89 ; make ; sudo make install podría obtener /usr/libexec/apache2/mod_perl.so

  3. En el directorio /etc/apache2/other , agregué cgi.conf con el siguiente contenido.

LoadModule perl_module libexec/apache2/mod_perl.so
#PerlModule ModPerl::Registry

<Location "/Library/WebServer/Documents/cgi/">
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    Options ExecCGI
    PerlSendHeader On
    Order allow,deny
    Allow from all
</Location>

Copié el script perl cgi simple en el directorio /Library/WebServer/Documents/cgi/ , pero en lugar de ejecutar el script perl, se muestra el código perl.

¿Qué podría estar mal?

AÑADIDO

Después de agregar estas líneas en el archivo conf:

<Files ~ "\.(pl|cgi)$">
    SetHandler perl-script
    PerlResponseHandler ModPerl::PerlRun
    Options +ExecCGI
    PerlSendHeader On
</Files>

En su lugar, tengo errores:

[perl:error] [pid 26307] [client ::1:60248] failed to resolve handler 'ModPerl::PerlRun': Can't locate ModPerl/PerlRun.pm in @INC (you may need to install the ModPerl::PerlRun module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 ...
    
pregunta prosseek 30.01.2016 - 03:52

1 respuesta

0

Para Mac OS X, /Library/WebServer/CGI-Executables ya se ha configurado, por lo que no debería haber ninguna configuración. Entonces, solo copie echo.pl en el directorio, y use el script perl con localhost/cgi-bin/echo.pl .

Para que funcione de todos modos

Necesitamos un ModPerl::PerlRun para instalar el módulo CPAN antes de la compilación.

sudo cpan ModPerl::PerlRun

Esto también crea e instala el perl_mod.so , pero esto rompe el apache, por lo que necesitamos reconstruir el módulo. Esta es la configuración de trabajo.

LoadModule perl_module libexec/apache2/mod_perl.so

<Location "/Library/WebServer/Documents/cgi/">
    Options ExecCGI
    Order allow,deny
    Allow from all
</Location>

<Files ~ "\.(pl|cgi)$">
    SetHandler perl-script
    PerlResponseHandler ModPerl::PerlRun
    Options +ExecCGI
    PerlSendHeader On
</Files>

Ahora localhost/cgi/echo.pl es la dirección de acceso.

    
respondido por el prosseek 30.01.2016 - 05:42

Lea otras preguntas en las etiquetas