php - 安装 Laravel 错误 : Mcrypt PHP extension required

标签 php laravel composer-php mamp mcrypt

我知道在 SO 上有很多关于此的问题,但没有一个能解决我的问题。我已经检查了他们提到的所有内容似乎表明 mcrypt 没问题,除了安装 Laravel 时。显然我错过了一些东西。

按照指示安装 Laravel 时 ( composer create-project laravel/laravel myproj --prefer-dist ) 我在似乎接近安装结束时收到错误“需要 Mcrypt PHP 扩展”。

据我所知,mcrypt 已安装并启用。

Composer 使用 /usr/bin/env php

$ which composer       
/usr/local/bin/composer

$ cat /usr/local/bin/composer
#!/usr/bin/env bash
/usr/bin/env php -d allow_url_fopen=On -d detect_unicode=Off /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar $*%   

我的 PATH 上的 php 是来自 MAMP 的 5.5.10

$ php --version
PHP 5.5.10 (cli) (built: Apr 10 2014 17:49:22)

$ which php
/Applications/MAMP/bin/php/php5.5.10/bin/php   

Mcrypt 已安装并启用

$ php -m | grep mcrypt
mcrypt

$ php --info | grep mcrypt                  
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value

$ php --ini                                 
Configuration File (php.ini) Path: /Applications/MAMP/bin/php/php5.5.10/conf
Loaded Configuration File:         /Applications/MAMP/bin/php/php5.5.10/conf/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

$grep mcrypt /Applications/MAMP/bin/php/php5.5.10/conf/php.ini      
extension=mcrypt.so

我可以看到 mcrypt support enabled也通过 MAMP 在 phpinfo 页面中。

我错过了什么?

编辑:我有 export PATH="/Applications/MAMP/bin/php/php5.5.10/bin:$PATH".bash_profile可以用echo $PATH确认和 which php

更新一个线索。

如果我编辑 /usr/local/bin/composer成为:

#!/usr/bin/env bash
echo $PATH
/usr/bin/env php --ini

然后运行composer我明白了

/usr/bin:/bin:/usr/sbin:/sbin
Configuration File (php.ini) Path: /etc
Loaded Configuration File:         (none)
Scan for additional .ini files in: /Library/Server/Web/Config/php
Additional .ini files parsed:      (none)

为什么 PATH 不同?

最佳答案

让 Laravel 在 Apache 上工作

PHP 版本:PHP 5.5.9

Ubuntu 版本:14.04

经过反复试验和四处搜索,这就是我的发现。我在 Windows 上有一个工作的 laravel 项目,我将它复制到 ubuntu 服务器并开始收到 mcrypt 错误。

让 artisan 命令工作

我做了很多试验和错误,所以之前每次运行 php5enmod 命令时,我都会收到错误消息。但是在全新安装时没有错误消息。在这一步之后我得到了 artisan 命令工作

sudo rm /etc/php5/mods-available/mcrypt.ini
sudo apt-get purge php5-mcrypt
sudo apt-get install mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

修复浏览器错误

sudo nano /etc/php5/apache2/php.ini

在php ini的动态编译扩展部分下添加如下行

extension=mcrypt.so

重启apache服务器,清除laravel缓存和一切正常

关于php - 安装 Laravel 错误 : Mcrypt PHP extension required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25006701/

相关文章:

php - Laravel 在点击路线时创建数据库输入?

php - 使用 composer.json 中定义的 Composer 脚本,如何显示 phpunit 颜色?

Laravel 5.5 未找到具有正确命名空间的类

PHPUnit 不读取配置文件?

php - 为什么我无法使用 codeigniter 连接到 postgresql?

php - 在 Laravel 8 中使用 maatwebsite laravel excel 导入数据

php - flush() 在 PHP 中不显示输出?

Laravel 4.2 子域路由参数

php - php 之上的迷你脚本语言

php - sql文件扩展类型