Jak*_*ake 3 php mamp mcrypt laravel composer-php
我知道在SO上有很多关于这个的问题,但没有一个能解决我的问题.我已经检查了他们提到的一切似乎表明mcrypt没问题,除非安装Laravel.显然我错过了一些东西.
当按照指示(composer create-project laravel/laravel myproj --prefer-dist)安装Laravel时,我在接近安装结束时收到错误"需要Mcrypt PHP扩展".
据我所知,mcrypt 已安装并启用.
作曲家使用 /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 $*%
Run Code Online (Sandbox Code Playgroud)
我的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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我也可以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
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
为什么PATH不同?
让Laravel在Apache上工作
PHP版本:PHP 5.5.9
Ubuntu版本:14.04
经过大量的反复试验和搜索,这就是我发现的.我在Windows上有一个工作的laravel项目,我将它复制到ubuntu服务器并开始得到mcrypt错误.
让工匠指挥工作
我做了很多试验和错误所以每次我运行php5enmod命令之前,我有错误消息.但在全新安装时没有错误消息.在这一步之后我得到了工匠指挥工作
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
Run Code Online (Sandbox Code Playgroud)
修复浏览器错误
sudo nano /etc/php5/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)
在php ini的动态编译扩展部分下添加以下行
extension=mcrypt.so
Run Code Online (Sandbox Code Playgroud)
重启apache服务器,清除laravel缓存,一切正常
| 归档时间: |
|
| 查看次数: |
8536 次 |
| 最近记录: |