Yosemite / El Capitan php-gd + mcrypt安装

时间:2014-10-21 18:32:50

标签: php homebrew osx-yosemite osx-elcapitan php-gd

如何在Yosemite 10.10 - PHP 5.5.14版本中安装/启用 php-gd mcrypt

请注意以下步骤安装最新的PHP 5.5.x

要检查您是否安装了gd和mcrypt,请使用$ php -m显示已编译的模块,如果缺少所需模块,请继续,请参阅 accepted answer


GD

  

所以,Apple安装了GD(你正在使用他们的PHP版本,这很好),但不包括对PNG的支持。

如果出现以下情况,您肯定缺少“完整” gd(支持png)模块 imagecreatefrompng()功能缺失。

"Call to undefined function imagecreatefrompng()"

enter image description here


这个Mcrypt

使用 accepted answer 安装brew并使用gd安装省略部分(除非您需要),并使用以下步骤:

  1. 搜索 - $ brew search mcrypt
  2. 选择您想要的PHP版本
  3. 安装 - $ brew install php55-mcrypt
  4. 使用$ php -m | grep mcrypt
  5. 确认

    想要在PHP版本之间切换?

    查看brew-php-switcher并按照说明操作。

4 个答案:

答案 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 installationHomebrew 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

我现在看起来像这样,并确认它在使用来自自制程序的PHP 5.6之后正在工作。

#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