Laravel要求安装Mcrypt PHP扩展

3

我正在尝试在Linux Ubuntu上安装Laravel。 我运行的是Ubuntu 14.10。

一切都很顺利。 但现在,当访问localhost时,我收到以下消息而不是应该得到的页面: " 需要Mcrypt PHP扩展 " 我将从终端复制一些信息以帮助确定问题。

 which php
/usr/bin/php

php --ini
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/05-opcache.ini,
/etc/php5/cli/conf.d/10-pdo.ini,
/etc/php5/cli/conf.d/20-json.ini,
/etc/php5/cli/conf.d/20-mcrypt.ini,
/etc/php5/cli/conf.d/20-mysql.ini,
/etc/php5/cli/conf.d/20-mysqli.ini,
/etc/php5/cli/conf.d/20-pdo_mysql.ini,
/etc/php5/cli/conf.d/20-readline.ini

php -v
PHP 5.5.9-1ubuntu4 (cli) (built: Apr  9 2014 17:11:57) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

php -m
mcrypt

命令php -m显示我有mcrypt模块,但如果我加载包含mcrypt函数的页面,则会出现以下错误:

<?php phpinfo(); ?>

我看不到任何mcrypt模块,只在"模块作者"中看到了mcrypt。

我不知道如何让Laravel工作...

非常感谢任何帮助。

最好的问候


1
这是命令行的ini文件,那你的Web访问的ini文件呢?它们可能是不同的。 - Mark Baker
@belyid,在网站上的一个文件中执行phpinfo(),而不是在命令行中执行,并查看加载了哪个ini文件。 - EquinoxMatt
是的,但你的phpinfo页面会显示加载了哪个配置文件。 - EquinoxMatt
如果您正在使用Apache,则可能位于/etc/php5/apache2文件夹中;但是,显示phpinfo输出的网页也会告诉您。 - Mark Baker
@MarkBaker 没错,它使用的是不同的ini文件。实际上是一个空文件。我从 /etc/php5/mods-available 复制了该文件,重新启动了Apache,现在我得到了异常处理程序中的错误。 - belyid
显示剩余3条评论
2个回答

5
安装php5-mcrypt并不会自动启用该模块。您可能需要手动启用它:
安装模块
apt-get install php5-mcrypt

创建一个辅助符号链接并启用该模块。
cd /etc/php5/mods-available
ln -sf ../conf.d/mcrypt.ini .
php5enmod mcrypt

并重新加载Apache服务器

service apache2 reload

希望这能帮到你!

我已经尝试过了,但没有成功。 - belyid

0

您需要检查正在加载哪个ini文件。PHP CLI和PHP服务器有时可能运行不同的配置文件。

创建一个页面:

    <?php echo phpinfo(); ?>

然后查看正在加载哪个ini文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接