适用于Apache / MySQL / Perl的Mac OS X 10.6安装程序

我刚刚得到了一台新的Mac,并试图为我的perl应用程序设置一个本地开发环境几天而没有运气。 我没有得到快速的地方,所以我希望成功的人可以帮助。

我开始安装MAMP,我认为会照顾一切,但不幸的是,它并没有考虑到一些重要的Perl模块。 我使用CPAN来安装我们所需的所有模块,但似乎DBD :: mysql不能通过CPAN正确安装。 在网上阅读了很多,很多人报告这个问题,并build议使用MacPorts安装模块,我已经尝试使用以下命令没有运气:

sudo port install p5-dbd-mysql 

在成功安装了DBD :: mysql之后,当运行我们的Perl脚本时,Apache会继续报告以下错误:

 [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. 

我不确定该从哪里出发,但是如果Perl无法与数据库交谈,那么我的Mac并不是一个开发环境。 我非常感谢您能够提供的任何帮助和build议,使我的系统设置成功。 提前致谢!

我已经花了近4天的时间来处理这个问题,这里的设置终于让我在那里:

  • 不要使用macports
  • 使用股票Perl,扭曲:
    • 雪豹运送2 perls:5.10.0和5.8.9 – 切换到早期版本像这样:

% 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

  • 从dev.mysql.com/downloads/mysql/下载32位版本的mysql(“Mac OS X版本10.6(x86,32位)”)
    • 在Google上查找说明 – 我只是将提取的目录放在/ usr / local中,并将/ usr / local / mysql链接到该目录
  • CPAN似乎更喜欢5.10.0特定的安装位置,所以我从search.cpan.org下载了DBD :: mysql,并进行了常规安装:

% perl Makefile.PL

% make

% sudo make install

更新:

  • 为了让CPAN从正确的perl版本获得它的configuration,并让Apache运行正确的perl版本的perl CGI,使用下面的命令而不是上面的列表中的最后一个:

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

你必须是一个pipe理员才能做到这一点。 在这之后,HUP apache将会全部设置好。

我经历了与史蒂夫·艾维一样的头痛,同样的解决scheme。

另外,因为我使用的是mod_perl2,所以我还必须手动构buildmod_perl – 如果从CPAN下载,则发出:

  $ 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 

然后按照Michael Cramer的build议强制Apache2降低到32位