为 CLI 安装 PHP MCrypt

Posted

技术标签:

【中文标题】为 CLI 安装 PHP MCrypt【英文标题】:Install PHP MCrypt for CLI 【发布时间】:2013-11-30 08:05:27 【问题描述】:

为 Laravel 4 应用程序设置 CRON 作业,我遇到了障碍。 CRON 正在工作,但它向我设置的 CRON 日志文件返回“Laravel 需要 Mcrypt php 扩展”错误。

这是我每分钟执行一个 Artisan 命令的 CRON 作业:

* * * * * /usr/bin/php /Users/Tim/Dropbox/orbis/artisan orbis:clear-players > /Users/Tim/cron.log

如果我 cd 进入 Laravel 项目文件夹 (/Users/Tim/Dropbox/orbis),此命令将运行,但未检测到 CRON 的 MCrypt。

我读到有时 CLI 使用不同的 php.ini 文件,并且可能没有专门为 CLI 启用 MCrypt。如何也为 CLI 安装 MCrypt?

不确定这有多相关,但我已将以下内容添加到我的 .bash_profile 中:

export PATH=/Applications/MAMP/bin/php/php5.4.4/bin:$PATH

这是否意味着 CLI 应该使用与 MAMP 相同的 PHP 配置文件等?

对不起,如果这是一个愚蠢的问题,但我的知识有限。

谢谢!

【问题讨论】:

【参考方案1】:

您的 cron 表明您使用的 PHP 路径是在/usr/bin/php 中安装 PHP 的 OS X:

* * * * * /usr/bin/php /Users/Tim/Dropbox/orbis/artisan orbis:clear-players > /Users/Tim/cron.log

但是您的导出路径显示了 MAMP PHP 安装路径,这意味着 /Applications/MAMP/bin/php/php5.4.4/bin/php:

export PATH=/Applications/MAMP/bin/php/php5.4.4/bin:$PATH

很确定这无关紧要……但也许它可以帮助您考虑所有事情……继续阅读以了解。

基本上mcrypt 不是 PHP 的 OS X 安装的一部分。有关于如何处理here 和here 的指南和讨论。一般来说,PHP 的基本 OS X 安装永远达不到标准。部分原因是像 MAMP 这样的工具存在。您基本上可以在 OS X 安装上从源代码编译它。哪个可以工作,但是是的。 MAMP。

但是就是说,如果你安装了 MAMP,你可以修改你的 cron 来使用 PHP 的 MAMP 安装,它应该安装了 mcrypt。从浏览器中检查 MAMP 中的 phpinfo() 并搜索 mcrypt 进行确认。

如果是这样,只需将您的 cron 更改为使用 MAMP 的 PHP,如下所示:

* * * * * /Applications/MAMP/bin/php/php5.4.4/bin/php /Users/Tim/Dropbox/orbis/artisan orbis:clear-players > /Users/Tim/cron.log

它应该可以工作。

【讨论】:

太棒了。我改变了我的 CRON,所以我使用的是 MAMP 的 PHP 版本,现在似乎一切正常。谢谢! 不客气。请记住:MAMP 是一个自包含的环境。因此,如果您从命令行运行 PHP 并且您想更喜欢 MAMP,您可以按照自己的方式设置 BASH 设置。此外,值得通过使用which php 命令来检查您正在使用的 PHP,这将显示给您。这意味着,如果您只是在没有路径的情况下运行 php,它将使用反映在 which php. 中的路径,祝您好运!

以上是关于为 CLI 安装 PHP MCrypt的主要内容,如果未能解决你的问题,请参考以下文章

php5 Mcrypt 拒绝为 Ubuntu 安装

我要安装php的mcrypt扩展

在 mac 上使用 PHP 安装 mcrypt

在 PHP 安装上启用 Mcrypt

PHP编译安装报错: mcrypt.h not found. Please reinstall libmcrypt.

PHP安装扩展mcrypt以及相关依赖项 PHP安装PECL扩展的方法