【问题标题】:Mcrypt PHP extension required.IN Laravel With Ubuntu 14需要 Mcrypt PHP 扩展。在 Laravel 中使用 Ubuntu 14
【发布时间】:2015-03-29 14:24:36
【问题描述】:

我正在尝试将 laravel 应用程序迁移到 ubuntu 并收到类似 需要 Mcrypt PHP 扩展的错误。 当我使用 phpinfo() 函数检查 php 详细信息时,它显示在屏幕下方。

请在下方找到终端截图,

php.ini

如何解决这个问题?

【问题讨论】:

  • 这可能会帮助你askubuntu.com/questions/507796/…
  • 安装mcrypt 并在php.ini 文件中取消注释或添加mcrypt 扩展
  • 您的 php sapi 在为您的 http 服务器提供脚本时可能与在命令行中调用时不同,因此 php.ini 文件可能不同。在 bash 中尝试 php --ini 看看哪个是 cli 的 php.ini 文件。
  • @demental,我该如何解决这个问题。
  • @demental,配置文件 (php.ini) 路径:/etc/php5/cli 加载的配置文件:/etc/php5/cli/php.ini 扫描其他 .ini 文件:/etc /php5/cli/conf.d 解析的其他 .ini 文件:/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-readline.ini

标签: php laravel-4 composer-php ubuntu-14.04


【解决方案1】:

/etc/php5/mods-available/mcrypt.ini中找到mcrypt.ini文件,如果该文件不存在,则表示php5-mcrypt可以创建该文件。

  • 在目录/etc/php5/mods-available/ 中创建文件mcrypt.ini
  • 并添加以下配置:

    extension=mcrypt.so

  • 运行此命令

    sudo php5enmod mcrypt sudo service php5-fpm restart

这对我有用。干杯

【讨论】:

    【解决方案2】:

    如果你已经通过apt-get 安装了 PHP,那么通过使用找到你正在使用的 mcrypt 扩展。

    $ locate *mcrypt.ini
    /etc/php5/apache2/conf.d/20-mcrypt.ini
    /etc/php5/cli/conf.d/20-mcrypt.ini
    /etc/php5/fpm/conf.d/20-mcrypt.ini
    /etc/php5/mods-available/mcrypt.ini
    /usr/share/php5/mcrypt/mcrypt.ini
    /var/lib/ucf/cache/:etc:php5:mods-available:mcrypt.ini
    

    进入你的扩展目录

    cd /etc/php5/apache2/conf.d/20-mcrypt.ini
    

    你可能会发现在 mods-available 目录中有一个指向 mcrypt 扩展的符号链接。如果是这种情况,您只需 cd 进入 /etc/php5/cli/conf.d 目录 并创建一个类似的符号链接

    cd /etc/php5/cli/conf.d
    sudo ln -s ../../mods-available/mcrypt.ini ./
    

    然后用sudo service php5 restart重新启动php

    应该可以的

    【讨论】:

    • 出现错误警告:需要(/opt/lampp/htdocs/timegear/bootstrap/../vendor/autoload.php):无法打开流:/opt/lampp/htdocs/ 中的权限被拒绝第 17 行的 timegear/bootstrap/autoload.php 致命错误:require():无法打开所需的 '/opt/lampp/htdocs/timegear/bootstrap/../vendor/autoload.php' (include_path='.:/opt/ lampp/lib/php') 在 /opt/lampp/htdocs/timegear/bootstrap/autoload.php 第 17 行
    • 除非其他人有更多想法,否则我觉得 Laravel 无法读取 Composer Autoload 文件。当您获得许可被拒绝时,我猜您已经运行了composer update。如果我的文件结构正确,我会运行sudo chmod 0755 -R /opt/lampp/htdocs/timegear && chmod 0777 -R /opt/lampp/htdocs/timegear/app/storage。再说一遍:其他人可能有其他想法。
    • 当我运行 composer update 终端显示 No command 'composer' found,你的意思是:Command 'compose' from package 'mime-support' (main) composer: command not found
    • 尝试按照the Composer Getting started pagecurl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer中的描述全局安装Composer
    • 嗨约翰,我尝试了上面的命令并显示它成功安装。然后移动到 /usr/local/bin/composer 目录。我在移动之前创建了作曲家目录。在我尝试运行 composer 之后,它会显示上述错误。
    猜你喜欢
    • 2017-05-11
    • 2017-09-15
    • 2015-11-10
    • 2017-07-08
    • 2016-01-23
    相关资源
    最近更新 更多