Configuração do Mac OS X 10.6 para Apache / MySQL / Perl

3

Acabei de comprar um novo Mac e tentei configurar um ambiente de desenvolvimento local para meus aplicativos perl por alguns dias sem sorte. Não estou chegando rápido, então espero que alguém que tenha feito isso com sucesso possa ajudar.

Eu comecei instalando o MAMP que eu pensei que iria cuidar de tudo para mim, mas infelizmente ele não cuida de alguns importantes módulos de perl. Eu usei o CPAN para instalar todos os nossos módulos requeridos, exceto que parece que o DBD :: mysql não é instalado corretamente através do CPAN. Depois de ler muito online, muitas pessoas relataram problemas com isso e recomendaram usar o MacPorts para instalar o módulo que tentei fazer sem sorte usando o seguinte comando:

sudo port install p5-dbd-mysql

Após o que parece ser uma instalação bem-sucedida do DBD :: mysql, o Apache continua relatando o seguinte erro ao tentar executar qualquer um dos nossos scripts Perl:

[Fri Apr 30 18:51:07 2010] [error] [client 127.0.0.1] install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /Library/Perl/Updates/5.10.0/darwin-thread-multi-2level /Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library/Perl/Extras/5.10.0 .) at (eval 1835) line 3.
[Fri Apr 30 18:51:07 2010] [error] [client 127.0.0.1] Perhaps the DBD::mysql perl module hasn't been fully installed,
[Fri Apr 30 18:51:07 2010] [error] [client 127.0.0.1] or perhaps the capitalisation of 'mysql' isn't right.
[Fri Apr 30 18:51:07 2010] [error] [client 127.0.0.1] Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite, Sponge.

Não sei ao certo para onde ir, mas meu Mac não é muito um ambiente de desenvolvimento se o Perl não conseguir falar com o banco de dados. Eu realmente aprecio qualquer ajuda e conselhos que você possa fornecer para obter a configuração do meu sistema com sucesso. Obrigado antecipadamente!

    
por Russell C. 01.05.2010 / 01:11

2 respostas

4

Passei quase quatro dias lutando com esse problema e aqui está a configuração que finalmente me levou até lá:

  • não use macports
  • use o estoque perl, com uma torção:
    • O Snow Leopard é enviado com 2 perls: 5.10.0 e 5.8.9 - alterne para a versão anterior assim:

% export VERSIONER_PERL_PREFER_32_BIT=yes

% defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes

% defaults write com.apple.versioner.perl Version 5.8.9

  • faça o download da versão 32bit do mysql em dev.mysql.com/downloads/mysql/ ("Mac OS X versão 10.6 (x86, 32 bits)")
    • Encontre as instruções no Google - Acabei de colocar o diretório extraído em / usr / local e vinculado / usr / local / mysql para esse diretório
  • O CPAN parece preferir os locais de instalação específicos do 5.10.0, então eu baixei o DBD :: mysql do search.cpan.org e fiz a instalação usual:

% perl Makefile.PL

% make

% sudo make install

ATUALIZAÇÃO:

  • Para que o CPAN obtenha sua configuração da versão direita do perl e para que o Apache execute CGIs perl com a versão direita do perl, use o seguinte comando em vez do último na lista acima:

% defaults write /Library/Preferences/com.apple.versioner.perl Version 5.8.9

Você terá que ser um administrador para fazer isso. Depois disso, o HUP apache e você estará pronto.

    
por 04.05.2010 / 15:08
0

Eu passei pelas mesmas dores de cabeça que o Steve Ivy, com a mesma solução.

Além disso, como estou usando o mod_perl2, também tive que criar o mod_perl manualmente - se você baixá-lo do CPAN, emita:

    $ cd ~/.cpan/build/mod_perl-2.*

    $ export ARCHFLAGS="-arch i386 -arch x86_64"
    $ export CFLAGS="-arch i386 -arch x86_64"

    $ perl Makefile.PL
            # (will prompt for where apxs is:
            /usr/sbin/apxs

    $ make -j8
            # make test will fail ... had to modify a file:

    $ vi t/response/TestAPI/access2.pm
            # around line 117, comment out the line:

            AuthGroupFile @DocumentRoot@/api/auth-groups

            # (I have no idea *why* this is failing, though)

    $ make test
            # in my case, it failed a couple of tests ... 5 out of 238
            # most were because we're running older versions of
            # modules, or the pure-perl varient (you'll see 'PP' in
            # the module name, or it complains about (something)XS)

            # If you're concerned, see t/logs/error_log

    $ sudo make install

... e depois forçar o Apache2 até 32 bits, seguindo Michael O conselho de Cramer

    
por 04.05.2010 / 15:31