【问题标题】:Source install Apache 2.2.13 + PHP 5.3 + Snow Leopard源码安装 Apache 2.2.13 + PHP 5.3 + Snow Leopard
【发布时间】:2025-12-29 00:25:12
【问题描述】:

谁能指导我或写下他们在 Snow Leopard 上安装 Apache 和 PHP 的经验?

我过去在 Leopard 上运行过这个,它会在安全更新后死掉,但很简单:

$ ./configure --enable-layout=Darwin --enable-mods-shared=all
$ make
$ sudo make install

然后我又开始运行了。

自从 Snow Leopard 更新后,我在 make 命令中遇到以下问题

libtool: link: cannot find the library `/usr/lib/libexpat.la' or unhandled argument `/usr/lib/libexpat.la'
make[2]: *** [htpasswd] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

【问题讨论】:

  • 我知道有人对此有答案。通过安装缺少的库和符号链接,我在编译中取得了进一步的进展,但仍然出现错误。
  • 1K 浏览量,太棒了,看起来不仅仅是我自己需要这个问题的答案。有人请加紧并提供解决方案吗?谢谢。
  • 真希望我能弄清楚这个……
  • 更新:接近解决方案,不幸的是,iconv 在 php 5.3 制作期间存在严重问题:未定义符号:“_libiconv_open”,引用自:gdkanji.o 中的_do_convert 编码.o 中的_convert “_libiconv” ,引用自:_do_convert in gdkanji.o _convert in encodings.o "_libiconv_close",引用自:_do_convert in gdkanji.o _convert in encodings.o ld:未找到符号 collect2:ld 返回 1 个退出状态 make:** * [libs/libphp5.bundle] 错误 1
  • 终于有 2k 次浏览,大量的研究,把我的头撞在桌子上,在 ./configure 期间消除的过程,这里没有可行的答案;我有一个解决方案和 Apache 2.2.14 + PHP 5.3 + Snow Leopard 的工作源安装!不幸的是,我无法在我的解决方案中使用 XMLRPC 或 ICONV,因为在编译 PHP 时存在某种冲突。

标签: php mysql apache osx-snow-leopard


【解决方案1】:

众所周知,Snow Leopard (SL) 基于 64 位架构,当您安装 SL 附带的 Xcode 3.2 时,gcc 编译器默认为 4.2.1,并且似乎默认为 x86_64 而不是 i386。

感谢以下网站:

我的解决方案:

  1. 按照 hivelogic.com 上的说明在 SL 上安装 MySQL

  2. 通过http://projects.serenity.de/php/ 上的说明安装 Apache 2.2.14 - 它使用 2.2.13,但用 14 替换 13 很容易,对吧? ;) 安装 Apache (x86_64) 后,请执行以下操作:

    cd /usr/local/apache2/bin
    cp httpd /usr/sbin/
    cp apachectl /usr/sbin/
    

    http://www.kevinkorb.com/post/24 中所述

  3. 编译和安装包(freetype、gettext、libjpeg、libpng、mcrypt、mhash 等)在http://projects.serenity.de/php/ 上的 Apache 安装说明之后提到,直到 IMAP,如果您需要 IMAP,请尝试上面 url 中提到的说明,但是因为不需要所以没有安装。

    注意:这些都编译为 x86_64,除了 libpng 需要将以下内容编译为 64 位:

    *export CFLAGS="-arch x86_64" ./configure

  4. 这就是所有的头撞在桌子上和反复试验发生的地方。 PHP 5.3.0 的安装。最大的问题是 ICONV 存在链接问题。我搜索了整个谷歌,其他一些人通过编辑 iconv.c 文件和 Makefile 通过在执行 ./configure 字符串后将 -lresolv 添加到 EXTRA_LIBS= 来成功。我没那么幸运,但仍然需要对 --without-iconv 参数进行编辑才能正常工作。 --with-xmlrpc 也不起作用。有关 iconv hack,请参阅blog entry

这是我的 ./configure 字符串:

./configure 
--prefix=/usr/local/php5
--without-iconv
--with-apxs2=/usr/local/apache2/bin/apxs
--enable-pdo
--with-gd 
--with-zlib 
--with-jpeg-dir=/usr/local 
--with-png-dir=/usr/local 
--with-libxml-dir=/usr/local 
--with-curl 
--with-mcrypt 
--with-pdo-mysql=/usr/local/mysql 
--with-mysqli=/usr/local/mysql/bin/mysql_config 
--with-mysql=/usr/local/mysql 
--with-mhash 
--with-libxml-dir=/usr/local 
--with-t1lib=/usr/local 
--with-xsl 
--with-freetype-dir=/usr/local 
--with-gettext 
--with-bz2=/usr 
--with-openssl=/usr 
--enable-bcmath 
--enable-calendar 
--enable-cgi 
--enable-exif 
--enable-ftp 
--enable-gd-native-ttf 
--enable-mbstring 
--enable-soap 
--enable-sqlite-utf8 
--enable-cli 
--enable-wddx 
--enable-zip

make
sudo make install

最后,我下载了 PHP-5.3.2-dev (http://snaps.php.net/),它似乎解决了 ICONV 和 XMLRPC 的链接问题。我对上述 ./configure 字符串所做的唯一更改是将 --without-iconv 替换为 --with-iconv=/usr/local 并添加了 --with-xmlrpc。这是一个开发版本,我确信它仍然存在错误,因此请自行决定使用。

如果您有任何问题,请随时发表评论,我会尽力提供帮助!

【讨论】:

  • 嘿,我知道这很旧,但您安装 apache2 的链接不再有说明...您可以随时更新您的答案,包括如何安装 apache2 吗?
【解决方案2】:

请看这里: http://bugs.php.net/bug.php?id=49267

基本上:

  1. 将“-lresolv”添加到 MH_BUNDLE_FLAGS、EXTRA_LDFLAGS 和 “Makefile”中的 EXTRA_LDFLAGS_PROGRAM

  2. 更改“ext/iconv/iconv.c”

    #define iconv libiconv

    到:

    #define iconv iconv

正如他们所说,为我工作。

【讨论】:

    【解决方案3】:

    在apache源目录中

    cd srclib/apr-util/xml/expat
    ./configure
    # OR ./configure --prefix=/{{YOURDIR}}/apache/source/httpd-2.2.22/srclib/apr-util/xml/expat/
    sudo make install
    # OR make install
    

    make install 失败后记得清理你之前的 apache 安装

    cd {{YOURDIR}}/apache/
    ls -la
    rm -r bin
    rm -r build
    rm -r include
    rm -r lib
    

    【讨论】:

      【解决方案4】:

      好吧,如果您不需要自定义构建的 PHP 版本,那么 Apple 提供的版本可能会这样做,但情况并非如此,对于提出问题的人,或者在我寻求答案时的我来说对同一个问题。还有其他人有建议吗?

      【讨论】:

      • 嗨艾伦,你找到解决办法了吗?
      【解决方案5】:

      也许你没有安装开发者工具!

      【讨论】:

        【解决方案6】:

        来自 Liip 的人为 OS X 上的 PHP 和 Apache 维护了一个很棒的包,安装非常简单。该软件包非常适合开发。你可以在这里查看:http://php-osx.liip.ch/

        此软件包在 /usr/local/php5 中的 OS X 10.6(又名 Snow Leopard)和 OS X 10.7(又名 Lion)上安装(通常)最新的 PHP 5.3.x/5.4.x。它安装了许多有用的扩展(见下文)和 ini 设置,是我们在 Liip 和 Local.ch 用于开发的工具。它特别适合 Symfony 2 开发。它还提供了一个不错的 php.ini,所有设置都根据“最佳实践”配置。

        然后,您可以使用标准 Apache 并使用来自 MySQL 网站的软件包安装 MySQL (x64)。

        【讨论】:

          【解决方案7】:

          Mac OS X Snow Leopard 已经预装了 Apache 2.2 和 PHP 5.3。请看:

          http://www.brandonsavage.net/first-glance-apples-snow-leopard/

          最好不要管这些,因为它们已针对 Snow Leopard 进行了最佳配置。

          【讨论】:

          • 谢谢迈克尔,我知道这些是默认安装的,我更喜欢从源代码编译的方法。