Inicio > PAPI > mod_perl en el Apache de MacOSX

mod_perl en el Apache de MacOSX

martes, 15 de junio de 2010 Dejar un comentario Ir a comentarios

He estado varios dias tratando de poder arrancar un despliegue de PAPI similar al que tenemos en el GPoA SIR en mi Mac con el objetivo de poder depurar nuevas caracteristicas del protocolo (del que ya haremos un post mas adelante). La cuestion era que no habia manera de que el mod_perl que viene con el sistema fuera capaz de arrancar dentro del Apache2 que tambien forma parte del MacOSX estandar.

Al final he encontrado que el bundle de Apache2 contiene un ejecutable de 64 bits:

file /usr/sbin/httpd
/usr/sbin/httpd: Mach-O universal binary with 4 architectures
/usr/sbin/httpd (for architecture ppc7400):	Mach-O executable ppc
/usr/sbin/httpd (for architecture ppc64):	Mach-O 64-bit executable ppc64
/usr/sbin/httpd (for architecture i386):	Mach-O executable i386
/usr/sbin/httpd (for architecture x86_64):	Mach-O 64-bit executable x86_64

Mientras que el bundle de Perl solo contiene un ejecutable de 32 bits:

file /usr/bin/perl
/usr/bin/perl: Mach-O universal binary with 2 architectures
/usr/bin/perl (for architecture ppc7400):	Mach-O executable ppc
/usr/bin/perl (for architecture i386):	Mach-O executable i386

Para que el Apache2 pueda ejecutar modulos Perl es necesario arrancarlo en modo 32 bits:

sudo arch -arch i386 /usr/sbin/httpd

Y para que el Apache2 arranque en modo 32 bits desde el panel de las Preferencias del Sistema hay que modificar /System/Library/LaunchDaemons/org.apache.httpd.plist para que tenga este aspecto:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>Label</key>
<string>org.apache.httpd</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/arch</string>
<string>-arch</string>
<string>i386</string>
<string>/usr/sbin/httpd</string>
<string>-D</string>
<string>FOREGROUND</string>
</array>
<key>SHAuthorizationRight</key>
<string>system.preferences</string>
</dict>
</plist>
Categories: PAPI Tags:
  1. jaime
    martes, 15 de junio de 2010 a las 16:58 | #1

    Diego, te he cambiado los “code” por “pre” para que tengas resaltado de sintaxis y se vea un poco mejor el código 😉

  2. Enrique
    miércoles, 16 de junio de 2010 a las 11:55 | #2

    Interesante es saberlo. Mis experiencias con el Apache de Mac OSX han terminado mal siempre. Por ejemplo, con mcrypt: recompilación masiva.

  1. Sin trackbacks aún.
Debes estar registrado para dejar un comentario.