Yosemite/El Capitan php-gd + mcrypt安装

Kys*_*lik 51 php homebrew php-gd osx-yosemite osx-elcapitan

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

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

要检查是否已安装gd和mcrypt $ php -m用于显示已编译的模块,如果缺少所需的模块,请继续,请参阅接受的答案.


GD

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

如果出现以下情况,您肯定缺少"完整" gd(带png支持)模块: imagecreatefrompng()函数丢失.

"Call to undefined function imagecreatefrompng()"

在此输入图像描述


这个Mcrypt

使用已接受的答案安装brew 并使用gd安装省略部分(除非您需要),并使用以下步骤:

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

想在PHP版本之间切换?

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

Jps*_*psy 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基本安装Homebrew PHP安装信息.但如果您真的不需要你按照这些步骤.)

现在我们走吧......

首先从App Store安装Xcode.如果您已经拥有它,请再次检查App Store,以确保您拥有最新版本!

现在您需要安装Xcode命令行工具.为此,请打开终端并输入:

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

下一个命令将安装Homebrew包管理器系统:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Run Code Online (Sandbox Code Playgroud)

该脚本解释了它将做什么,然后在它执行之前暂停.

下一个要输入的命令是一种系统状态测试:

brew doctor
Run Code Online (Sandbox Code Playgroud)

这将检查Homebrew安装的基础知识.
我收到一条警告"你安装了MacPorts或Fink:/ opt/local/bin/port ...",我成功地忽略了它.;)

现在设置homebrew/dupes tap,它具有我们需要的依赖项:

brew tap homebrew/dupes
Run Code Online (Sandbox Code Playgroud)

设置homebrew/versions tap,它也有我们需要的依赖项:

brew tap homebrew/versions
Run Code Online (Sandbox Code Playgroud)

然后运行以下命令:

brew tap homebrew/homebrew-php
Run Code Online (Sandbox Code Playgroud)

现在您已准备好最终构建PHP.有关可用配置选项的列表,您可以运行以下其中一个:

brew options php55
brew options php56
Run Code Online (Sandbox Code Playgroud)

但我只是使用默认值.
要做到这一点进入ONE这两个,这取决于你的需求:

brew install php55
brew install php56
Run Code Online (Sandbox Code Playgroud)

(这需要一段时间,请耐心等待!)

在Yosemite(10.10.5)上安装php56(5.6.x)时有一个bug请在github上看到这个问题.使用brew install php56 --without-ldap来代替.

如果您收到类型为"找不到OpenSSL"的错误,则表示您没有像我在开始时告诉您的那样安装Xcode命令行工具.;)继续,安装它们并重新运行最后一个命令.

PHP现在已经构建,脚本将以一些有关如何使用它的细节结束:

打开httpd.conf文件(应该位于/private/etc/apache2/httpd.conf),并通过添加使PHP ONE这两条线的,这取决于您刚安装上的PHP版本:

LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
Run Code Online (Sandbox Code Playgroud)

不要忘记注释掉Yosemite自己的PHP版本中可能存在的任何现有的LoadModule php5_module ...行!

重启Apache

sudo apachectl restart
Run Code Online (Sandbox Code Playgroud)

您可以在以下位置找到新的php.ini文件:/usr/local/etc/php/5.5/php.ini

请享用!

  • 我用一行命令"brew install php55-mcrypt"轻松完成了 (3认同)

Pat*_*nio 21

来自@Jpsy的答案很好,但还有另外一个选项,来自liip的人,在这里.这是为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