【问题标题】:mCrypt not present after Ubuntu upgrade to 13.10Ubuntu 升级到 13.10 后 mCrypt 不存在
【发布时间】:2013-10-27 02:54:31
【问题描述】:

在我将系统从 Ubuntu 13.04 升级到 13.10 后,apache、mysql 和 php 配置出现了几个问题。

我解决了其中的大部分问题,但我似乎无法让 mCrypt 库正常工作。 软件包已安装,所以我不需要 apt-get 它。服务器工作正常,一切似乎都很好,但是当我尝试使用 Laravel 4 运行 php artisan serve 时,我收到一条消息,提示需要 mCrypt。

我做了php --ri mcrypt,输出是Extension 'mcrypt' not present. 我试过把extension=mcrypt.so 放到/etc/php5/apache2/php.ini,但是没有用。

有什么想法吗?

dpkg --get-selections | grep php5的输出

libapache2-mod-php5         install
php5                        install
php5-cli                    install
php5-common                 install
php5-gd                     install
php5-json                   install
php5-mcrypt                 install
php5-mysql                  install
php5-readline               install

【问题讨论】:

  • 确定安装了吗dpkg --get-selections | grep php5
  • apt-get install php5-mcrypt ?
  • 我用@tlenss 命令的输出更新了问题。 sudo apt-get install php5-mcrypt 输出它已安装和最新版本
  • 或许这里的答案会对你有所帮助askubuntu.com/questions/360646/…
  • 在该页面上发现了启动板错误,该错误为我提供了解决方案。谢谢

标签: apache ubuntu


【解决方案1】:

我想我在launchpad.net 找到了解决方案。

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart

这对我有用。

【讨论】:

  • 感谢您的回答,在 OpenCart 1.5.6 中,此问题导致了错误... 致命错误:在 //system/library/encryption 中调用未定义的函数 mcrypt_create_iv()。 php 在第 8 行
  • 值得注意的是,在我在 /etc/php5/cli/conf.d 中进行符号链接之前,此解决方案不适用于 Laravel/Artisan
  • 我收到此错误。我必须更新哪些代码?我需要在哪个文件中更新?请建议..
  • 这导致 Webgility 无法同步。安装它很好地修复了它。谢谢!
  • 在 Ubuntu 14.04/PHP5.5 中不需要第一行。 php5enmod 建立链接。
【解决方案2】:

如果软件包已经安装,另一种解决方案:

sudo aptitude reinstall php5-mycript

升级后这对我有用

【讨论】:

    【解决方案3】:

    我在安装 Ubuntu 14.04 后也遇到了这个问题。

    首先启用mcrypt

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

    在任意行添加此命令

    extension=mcrypt.so
    

    在 /etc/php5 中创建 conf.d 文件夹

    sudo mkdir conf.d
    

    并在该文件夹中创建 mcrypt.ini 文件

    sudo gedit mcrypt.ini 
    

    然后将此命令添加到该文件中

    extension=mcrypt.so
    

    然后创建一个指向文件的链接

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

    启用 mcrypt 模块

    sudo php5enmod mcrypt
    

    重启apache

    sudo service apache2 restart
    

    【讨论】:

    • php.ini 中不需要extension=mcrypt.so。没有它也可以工作,因为 php 扩展(如 mcrypt)位于单独的 .ini 文件中。
    • @machineaddict 对我来说,在安装 mcrypt 后添加“extension=mcrypt.so”就可以了。 Lubuntu 14.04 值得信赖的塔尔。我没有自动加载
    【解决方案4】:

    我在使用 Ubuntu 14.04 时遇到了这个问题,我采取了以下措施来解决它:

    sudo apt-get install php5-mcrypt
    sudo php5enmod mcrypt
    
    sudo service apache2 restart
    

    【讨论】:

    • 这对我有用,我有 PHP 版本 5.5.9-1ubuntu4.4,我没有 /etc/php5/conf.d 目录。
    【解决方案5】:

    从 Ubuntu 13.10 到 14.04:

    sudo php5enmod mcrypt
    sudo service apache2 restart
    

    为我工作。

    【讨论】:

    • 对我来说:WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available。但是,该文件位于其他地方。 sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/ 并运行上面的命令。取自www.devraju.com
    【解决方案6】:

    试试这个代码:

    ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
    service apache2 restart
    

    【讨论】:

      【解决方案7】:

      我在 Mac OS X Yosemite 上运行 PHP 5.5.14 时遇到了同样的问题。我试图安装 Laravel 5.0。当我尝试创建一个新项目时,出现如下错误(即使我尝试使用 php artisan serve

      启动 laravel 服务器
      Alejandros-MacBook-Pro:Documents Lexynux$ laravel new blog
      Crafting application...
      PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
      PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
      Generating optimized class loader
      Compiling common classes
      Compiling views
      PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
      Application key [CCOPocoMjnJTx4AFXk64wqyTKyo3BlHq] set successfully.
      Application ready! Build something amazing.
      Alejandros-MacBook-Pro:Documents Lexynux$ 
      

      所以我只是用 nano 编辑器在我的 php.ini 文件末尾添加了以下行:

      extension=mcrypt.so
      sudo nano /etc/php.ini
      

      最后只需重启终端并重启 laravel 应用服务器

      php artisan serve
      

      而且效果很好!

      【讨论】:

        【解决方案8】:

        刚刚在 php.net 上找到

        注意,对于 Ubuntu,简单地安装 php5-mcrypt 并不能让 mcrypt 工作。您需要以 root 身份执行以下命令才能启用它:

        apt-get install php5-mcrypt
        mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
        php5enmod mcrypt
        service apache2 restart
        

        http://php.net/manual/en/mcrypt.installation.php#114609

        【讨论】:

          【解决方案9】:

          有时,出现此“问题”是因为您在本地计算机上而不是在虚拟机上输入了工匠命令。如果你使用 Homestead,mcrypt 已经安装好了。将其视为对homestead ssh的提醒

          【讨论】:

            【解决方案10】:

            我在使用 Ubuntu 14.04 和 Nginx 时也遇到了这个问题,但是我的提示是重新启动 FPM 服务,所以我这样做了:

            安装库

            apt-get 安装 php5-mcrypt

            寻找路径

            updatedb && 定位 mcrypt.so

            在位于 /etc/php5/mods-available/mcrypt.ini 的 mcrypt.ini 文件中设置 mcrypt.so 的路径

            extension=/usr/lib/php5/20121212/mcrypt.so

            然后重启FPM服务

            服务 php5-fpm 重启

            【讨论】:

            • 我只需要在我的 ubuntu 14.04 上 apt-get install php5-mcrypt 和 service php5-fpm restart 即可。
            • 很好..在我的情况下,需要手动查找 mcrypt 库,因为 mcrypt.ini 文件中的扩展名是空的。
            猜你喜欢
            • 2013-10-27
            • 2013-11-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-10-29
            • 2015-12-30
            • 2013-11-19
            相关资源
            最近更新 更多