为 MacOS 构建 PHP

为 MacOS 构建 PHP

我之前使用 XAMPP,决定卸载它并使用 MacOS 内置的 apache 和 php 模块。但在卸载 XAMPP 时,我意外删除了 /usr/bin/php 文件和其他 PHP-CLI 文件。我决定安装最新版本的 PHP (5.5.12),而不是重建当前版本 (5.4.24)。下载并解压。之后执行此命令,如上所述本指南

./configure '--with-apxs2=/usr/sbin/apxs' '--enable-cli' '--with-config-file-path=/etc' '--with-zlib=/usr' '--enable-bcmath' '--with-bz2=/usr' '--enable-calendar' '--disable-cgi' '--with-curl=/usr' '--enable-dba' '--enable-ndbm=/usr' '--enable-exif' '--enable-fpm' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf' '--enable-mbregex' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pear' '--with-pdo-mysql=mysqlnd' '--with-mysql-sock=/var/mysql/mysql.sock' '--with-tidy' '--enable-wddx' '--with-xmlrpc' '--enable-zip'
make
make install

当我检查 phpinfo() 时,它仍然是版本 5.4.24 。以下是我的httpd配置文件

LoadModule php5_module libexec/apache2/libphp5.so

/usr/libexec/apache2/libphp5.so 来自旧版本,我无法为新版本找到 libphp5.so。模块目录中没有 libphp5.so 文件。

如何在 Apache 中使用新构建的 PHP?

更新

结果php-v 命令命令 。

PHP 5.5.12 (cli) (built: May 27 2014 05:17:21) Copyright (c) 1997-2014 The PHP GroupZend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

答案1

作为使用 Mac 原生 PHP 安装的替代方案,我建议自制。与 XAMPP 不同,您不必在限制性的 shell 中工作,因此您可以将 PHP 和其他模块(PHPMyAdmin、Apache 等)更新到最新版本。

由于您不会摆弄 Mac有缺陷的精致系统文件夹,因此您不必担心依赖地狱,也不必担心意外删除文件和文件夹。Homebrew 不会让您在不升级依赖项的情况下升级任何内容,所有内容都包含在其自己的存储库(称为地窖)中。

答案2

刚刚删除了 libphp5.so 并尝试重新安装,现在似乎可以正常工作了。我不确定为什么安装命令没有覆盖。

答案3

我会避免尝试构建与 Apple 提供的版本相匹配的新版本的 Apache。您构建的版本可能与 Apple 提供的版本不完全相同。Apple 通常会对 MacOS 附带的开源软件进行细微调整,最终发布在http://opensource.apple.com/。因此,自己构建一个与 Apple 版本相匹配的版本并非不可能,只是很烦人。

此外,一般来说,你应该不要管 Apple 提供的 POSIX 内容。他们往往会用系统更新来覆盖/更改内容。(这就是为什么我提倡通过 MacPorts、VM 等方式使用单独的开发堆栈/环境。)

我建议尝试恢复您删除的版本.有几条路线可以到达那里:

  • 从您最近的系统备份(Time Machine 等)中恢复丢失/不同的文件。
  • 使用类似工具从最新的操作系统安装包中提取原始文件和平主义者。从 App Store 获取最新的操作系统。或者询问拥有相同操作系统版本的朋友(显然,他们没有修改过文件)。
  • 重新安装操作系统,将修改后的文件恢复到原始状态。显然,这是最核心的选项,并且有其自身的风险(会弄乱其他东西),尽管 Apple 通常非常擅长确保其安全。

使用前两个选项,您将提取已删除的原始文件/目录到新目录,然后diff将其移至当前系统。然后cp通过 以 root 身份将文件/目录放回原位sudo。(提示:使用history来确定您rm要做什么。)

相关内容