首页 文章

在Ubuntu升级到13.10之后,mCrypt不存在

提问于
浏览
92

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

我解决了大部分问题,但我可以't seem to get mCrypt library working. Package is installed so i don't需要得到它 . 服务器工作,一切似乎都很好,但是当我尝试用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

10 回答

  • 1

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

    所以:

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

    这对我有用 . 希望它对其他人也有帮助 .

  • 27

    我有Ubuntu 14.04的这个问题,我做了以下解决它:

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

    安装后我也遇到了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
    
  • 273

    从Ubuntu 13.10到14.04:

    sudo php5enmod mcrypt
    sudo service apache2 restart
    

    适合我 .

  • 11

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

    安装库

    apt-get install php5-mcrypt

    找到路径

    updatedb && locate mcrypt.so

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

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

    然后重新启动FPM服务

    服务php5-fpm重启

  • 0

    试试这段代码:

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

    如果已安装包,则为另一种解决方案:

    sudo aptitude reinstall php5-mycript
    

    升级后,这对我有用

  • 3

    在Mac OS X Yosemite上运行的PHP 5.5.14也遇到了同样的问题 . 我试图安装Laravel 5.0 . 当我尝试创建一个新项目时,我得到了如下错误(即使我试图用php artisan服务启动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 app服务器

    php artisan serve
    

    它工作正常!

  • 0

    刚刚在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

  • 14

    有时,出现这个"problem"是因为您在本地计算机而不是虚拟机上输入了一个artisan命令 . 如果您使用的是Homestead,则已安装mcrypt . 考虑一下提醒 homestead ssh

相关问题