在 Mac OS X Yosemite 上安装 php-cgi

3

在Mac OS X Yosemite上安装php-cgi是否可能,同时保留操作系统提供的标准PHP版本?

谢谢, 阿尔贝托


2
使用像Homebrew这样的工具。 - Gergo Erdosi
是的,我已经尝试过使用Homebrew,但我只找到了需要更改系统PHP版本的解决方案。例如: brew tap homebrew/dupes brew tap josegonzalez/homebrew-php brew install php54 - ninjabachelor
为什么不使用Vagrant或类似的工具呢?我喜欢保持我的操作系统更新。 - Arda
1
如果你的意思是在命令行中输入php时,解析为Homebrew的PHP而不是OS X的PHP,那只是因为/usr/local/bin在你的PATH中的优先级比/usr/bin高。它们两个都还在那里。 - deceze
是的,正确的。我只是想知道是否有可能不安装另一个PHP版本,保留已安装在OS X上的版本,并向其添加php-cgi模块,就像您在Ubuntu中执行sudo apt-get install php5-cgi命令一样。 - ninjabachelor
显示剩余5条评论
2个回答

11

你可以使用Homebrew轻松安装PHP:

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php

brew install php54

Homebrew不会更改系统PHP的版本。系统和Homebrew版本位于不同的目录中。这是我的情况:

系统/usr/bin/php

/usr/bin/php -v
PHP 5.4.30 (cli) (built: Jul 29 2014 23:43:29)

Homebrew /usr/local/bin/php:

家庭酿造 /usr/local/bin/php:
/usr/local/bin/php -v
PHP 5.6.2 (cli) (built: Nov 14 2014 10:30:28)

1
谢谢Gergo。是的,这就是我找到的解决方案。我只是想知道是否有可能不安装另一个PHP版本,保留已安装在OS X上的那个,并添加php-cgi模块,就像你在Ubuntu中所做的那样,使用sudo apt-get install php5-cgi - ninjabachelor
不认为只使用Homebrew安装php-cgi是可能的。Homebrew的安装会引起任何问题吗? - Gergo Erdosi
我曾认为有一种简单的方法可以仅安装模块,而不会对标准系统进行太多更改...但看起来您的解决方案更好,所以我将坚持使用它。谢谢。 - ninjabachelor
1
出现错误:homebrew/dupes已被弃用。此存储库现在为空,因为其所有配方都已迁移。 - aircraft

4
如果您希望在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。修改路径和选项以反映您的喜好。如果您计划在其他地方使用此PHP,则无需选项"--disable-cli",您可以将其替换为"--enable-cli"。您将得到两个二进制文件,但您需要在wxWebServer中使用php-cgi。
这是一个完整的.configure命令行,应该生成带有所有常见选项且CLI已禁用的PHP:
./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

如果您不知道如何从命令行编辑配置文件,请创建一个纯文本文件,包含以下两行内容,并将其保存在主目录(~/Users/webdev)下的newpath.txt中。然后打开终端并输入以下命令:

cat newpath.txt >> .profile

最简单的让更改生效的方法是注销并重新登录(或者您可以使用source命令)。 恭喜,您现在拥有自定义的PHP安装!如果您想使用其他PHP版本,只需将更改注释到.profile文件中即可。 验证您的新PHP是否为默认版本:
# which php-cgi

/Users/webdev/custom/php5/bin/php-cgi

的意思是指定了一个路径,用于运行PHP脚本。

php-cgi -v

PHP 5.2.3 (cgi) (built: Jul 11 2007 00:48:59) 版权所有 (c) 1997-2007 PHP Group 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 构建吧! 在此处找到

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接