如果您希望在 Mac OS X 上使用 PHP CGI,您将需要启用 CGI 的 PHP 构建。默认情况下,PHP 4.3 及更高版本是使用“-enable-cli”选项构建的,因此默认界面是 CLI(命令行界面)。您可以通过从 shell 运行“php -v”来检查这一点。输出可能是这样的:
PHP 4.4.4 (cli) ....
CLI 不输出任何标题,默认情况下输出是纯文本。此处提供了有关此内容的更多详细信息。
为了将 PHP 与 wxWebServer(或任何其他 CGI 应用程序)一起使用,您需要使用 CGI SAPI 构建您自己的 PHP 二进制文件。这很简单,只需要 15 分钟,您会为自己拥有 PHP 的“个人”构建而感到自豪。步骤如下:
从 php.net 下载最新 PHP 版本的完整源代码。此处的说明适用于 PHP 5.2.3,但也适用于 PHP 4。我也用 4.4.7 测试过。
在某处解压下载的存档,例如 ~/Temp/php-5.2.3
打开终端窗口(shell)并转到您解压文件的文件夹:
cd ~/Temp/php-5.2.3
决定您要安装此自定义 PHP 构建并创建文件夹的位置。本文档将假定它是您的主文件夹下的自定义文件夹,例如,如果用户名是 webdev,则它是 /Users/webdev/custom/php5
创建该文件夹(在 Finder 或终端中使用“mkdir ~/custom; mkdir ~/custom/php5”)
回到那个终端窗口,你应该仍然在 ~/Temp/php-5.2.3 中。
如果您计划将此私有 PHP 构建仅用于 CGI,请在禁用 CLI 的情况下运行 ./configure。修改路径和选项以反映您的偏好。
您不需要选项“--disable-cli”,如果您打算将此 PHP 用于更多用途,可以将其替换为“--enable-cli”。您将获得两个二进制文件,但您需要在 wxWebServer 中使用 php-cgi。
这是 .configure 的完整命令行,它应该生成 PHP 并禁用所有常用选项和 CLI:
./configure --prefix=/Users/webdev/custom/php5 --disable-cli --enable-cgi --enable-trans-sid
--enable-mbstring --with-xml --enable-exif --enable-mbregex --enable-dbx --enable-sockets
--with-iodbc=/usr --with-curl=/usr --with-config-file-path=/etc --sysconfdir=/private/etc
--with-mysql=/usr/local/mysql --without-pear
配置完成后,运行
make install
编辑您的配置文件 (~/.profile) 以在现有路径之前添加新的 php 路径。在 .profile 文件的末尾添加类似这样的内容:
PATH=~/custom/php5/bin:$PATH
export PATH
如果您不知道如何从命令行编辑配置文件,只需在 TextEdit 中创建一个包含这两行的纯文本文件,并将其作为 newpath.txt 保存在您的主文件夹 (~/Users/webdev) 中。然后打开终端输入命令:
cat newpath.txt >> .profile
更改生效的最简单方法是注销并重新登录(或者您可以使用 source 命令)。
恭喜,您现在有一个自定义的 php 安装!如果您想使用其他 PHP,只需将您的更改注释到 .profile
验证你的新 PHP 是默认的:
# which php-cgi
/Users/webdev/custom/php5/bin/php-cgi
php-cgi -v
PHP 5.2.3 (cgi)(构建时间:2007 年 7 月 11 日 00:48:59)
版权所有 (c) 1997-2007 PHP 集团
Zend Engine v2.2.0,版权所有 (c) 1998-2007 Zend Technologies
如果您愿意,您现在可以删除 ~/Temp/php-5.2.3 中的源文件。要删除您的自定义 PHP,只需删除目标文件夹,即
"/Users/webdev/custom/php4".
安装自定义 php 后,配置 wxWebServer 以使用新的 php 二进制文件。不管你是启用还是禁用 CLI,你都可以使用 php-cgi(“which php-cgi”的输出,在这种情况下
“/Users/webdev/custom/php5/bin/php-cgi”)。
如果您禁用了 CLI 构建,您也可以使用 php 二进制文件,因为它将是 CGI 构建。就是这样,享受您的个人 PHP 构建吧!
Found It Here