请注意以下步骤安装最新的PHP 5.5.x
要检查您是否安装了gd和mcrypt,请使用$ php -m
显示已编译的模块,如果缺少所需模块,请继续,请参阅 accepted answer 。
所以,Apple安装了GD(你正在使用他们的PHP版本,这很好),但不包括对PNG的支持。
如果出现以下情况,您肯定缺少“完整” gd(支持png)模块 imagecreatefrompng()功能缺失。
"Call to undefined function imagecreatefrompng()"
使用 accepted answer 安装brew并使用gd安装省略部分(除非您需要),并使用以下步骤:
$ brew search mcrypt
$ brew install php55-mcrypt
$ php -m | grep mcrypt
查看brew-php-switcher并按照说明操作。
答案 0 :(得分:81)
你是对的,Yosemite的内置PHP没有PNG和FreeType支持。
更新2015/10的El Captian:借助OS X 10.11 El Capitan PNG支持,但FreeType仍然缺失。
<强>解决方案强>
使用Homebrew包管理器轻松构建和安装完整的PHP并将其替换为Apache的配置。如果您按照以下步骤操作,整个过程大约需要十分钟。
快速(但完整)完成
(注1:我在这里使用 Homebrew ,OS X的软件包管理系统。如果您熟悉 MacPorts - 另一个软件包管理器 - 您可以获得同样的功能使用该系统的结果。也可以将我的Homebrew解决方案与您机器上现有的MacPorts安装并行使用。)
(注意2:如果您想阅读有关安装过程的所有详细信息,请查看Homebrew basic installation和Homebrew PHP installation信息。但如果您遵循这些信息,您真的不需要这样做步骤)。
现在让我们走吧......
首先安装Xcode from App Store。如果您已经拥有它,请再次检查App Store,以确保您已获得最新版本!
现在您需要安装 Xcode命令行工具。为此,请打开终端并输入:
xcode-select --install
下一个命令将安装Homebrew包管理器系统:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
脚本解释了它会做什么,然后在它执行之前暂停。
要输入的下一个命令是一种系统状态测试:
brew doctor
这将检查Homebrew安装的基础知识 我收到了警告&#34;您安装了MacPorts或Fink:/ opt / local / bin / port ...&#34; 我已成功忽略。 ;)
现在设置我们需要依赖项的自制软件/ dupes tap:
brew tap homebrew/dupes
设置homebrew / versions tap,它也有我们需要的依赖项:
brew tap homebrew/versions
然后运行以下命令:
brew tap homebrew/homebrew-php
现在您已准备好最终构建PHP。有关可用配置选项的列表,您可以运行以下任一选项:
brew options php55
brew options php56
但我只是使用默认值 为此,请根据您的需要输入这两者中的 ONE :
brew install php55
brew install php56
(这需要一段时间,请耐心等待!)
在Yosemite(10.10.5)上安装php56(5.6.x)时有一个错误,请在github上看到这个issue。请改用
brew install php56 --without-ldap
。
如果您收到&#34类型的错误;找不到OpenSSL&#34; 您没有安装Xcode命令行工具,就像我在开始时告诉您的那样。 ;)继续,安装它们并重新运行最后一个命令。
现在构建了PHP,脚本将以一些有关如何使用它的细节结束:
打开httpd.conf(应该位于/private/etc/apache2/httpd.conf)并通过添加这两行中的 ONE 来启用PHP,具体取决于您刚安装的PHP版本:
LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
不要忘记注释掉Yosemite自己的PHP版本中可能存在的任何现有的 LoadModule php5_module ... 行!
重启Apache
sudo apachectl restart
您的新php.ini文件位于: /usr/local/etc/php/5.5/php.ini
享受!
答案 1 :(得分:21)
来自@Jpsy的答案很好,但还有来自liip,here的人的另一个选择。这是一个为Yosemite预先构建的PHP包(旧版本也可以使用),但它只是一行代码:
curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5
之后,一切都准备好按预期工作。该安装附带的配置非常适合Symfony 2开发,但它应该适用于其他用例。
最后,如果您还需要使用更新的PHP CLI,但是您不想使用操作系统附带的PHP版本,那么您也可以添加到.bash_profile
或类似的这行代码:
export PATH=/usr/local/php5/bin:$PATH
答案 2 :(得分:3)
我没有足够的代表发表评论,但如果您使用OS X Server for Yosemite(App Store中的第4版),则要编辑的文件是:
/library/server/web/config/apache2/httpd_server_app.conf
#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
答案 3 :(得分:0)
标准Apache随Yosemite一起提交要更新的文件
sudo brew install php55
位于/etc/apache2/httpd.conf
请注意,php.ini的位置也会更改。 Yosemite的标准版本在/etc/php.ini中,自制版本的版本在/usr/local/etc/php/5.5/php.ini