【问题标题】:How can I install mcrypt under PHP7? Laravel needs it如何在 PHP7 下安装 mcrypt? Laravel 需要它
【发布时间】:2016-03-09 02:21:45
【问题描述】:

由于 Laravel4 需要 mcrypt 扩展,而 PHP7 似乎没有 mcrypt 扩展,有什么解决方法可以解决这个问题吗?

【问题讨论】:

  • 你已经标记了这个 Laravel 5.1,它是 Laravel 的最新版本。它不需要 mcrypt 工作。请参阅 laravel.com/docs/5.1/installation 了解您需要的内容。
  • 你可以安装它吗?通常这是您缺少库时的解决方法
  • @JoelHinz 我将其更改为 Laravel 4。
  • @DamienPirsy 谢谢,我会尝试手动安装。
  • 如果你在 centos webtatic.com/packages/php70

标签: php laravel laravel-4 php-7 mcrypt


【解决方案1】:

有同样的问题 - PHP7 缺少 mcrypt。

这对我有用。当询问时,保留本地 PHP 配置文件。

sudo apt-get update
sudo apt-get install mcrypt php7.0-mcrypt
sudo apt-get upgrade

安装后重启 FPM(或 Apache 或 NGINX 等)。

【讨论】:

  • 我必须先这样做sudo add-apt-repository ppa:ondrej/php
  • @user985366 谢谢...是的,我们必须这样做sudo add-apt-repository ppa:ondrej/php 然后sudo apt-get update sudo apt-get install mcrypt php7.0-mcrypt sudo apt-get upgrade 然后它对我有用
  • @Ryderpro 当我们已经获得php7.0-mcrypt 时,是否需要安装mcrypt?还是它们完全是两个不同的东西?
【解决方案2】:

使用 Ctrl + Alt + T 打开终端并在 Ubuntu 16.4 上运行 PHP7.0 的以下命令

sudo apt-get install mcrypt php7.0-mcrypt sudo 服务 apache2 重启

【讨论】:

    【解决方案3】:

    在 ubuntu 上:根据launchpad.net,mcrypt 的包称为 php7.0-mcrypt。

    sudo apt-get install php7.0-mcrypt 安装

    【讨论】:

      【解决方案4】:

      我使用 Dotdeb,一个额外的存储库,为您的 Debian 服务器(如 Nginx、PHP、MySQL、Redis 等)提供最新的各种酷玩具。

      1. 更新您的sources.list

        deb http://packages.dotdeb.org {distribution} all 
        deb-src http://packages.dotdeb.org {distribution} all
        
      2. GnuPG 密钥

        wget https://www.dotdeb.org/dotdeb.gpg
        sudo apt-key add dotdeb.gpg
        
      3. 更新 apt 并构建一些惊人的东西。

        sudo apt-get update
        

      【讨论】:

        【解决方案5】:

        PHP7 内部包含 mcrypt 扩展 (source-path/ext/mcrypt/)。 但这取决于Libmcrypt软。

        第 1 步。

        http://mcrypt.sourceforge.net/ 下载 libmcrypt-x.x.tar.gz 并构建它。

        cd libmcrypt-x.x
        ./configure
        make
        make install
        

        第 2 步。

        从源代码重建 PHP7 并添加 --with-mcrypt 选项。

        ./configure ... --with-mcrypt
        

        不重建 PHP7 的其他方式

        cd php7-source-path/ext/mcrypt/
        /php7-path/bin/phpize
        ./configure --with-php-config=/php7-path/bin/php-config
        make && make install
        echo "extension=mcrypt.so" >> /php7-path/ext/php.ini
        

        重启php

        【讨论】:

          【解决方案6】:

          即使您在 php.ini 中启用 mcrypt,也可能会出现此问题。 请尝试以下步骤。

          sudo apt-get update
          sudo apt-get install mcrypt php7.0-mcrypt
          

          我在 ubuntu 16.04 中工作,以下命令也帮助了我。

          whereis php  -shows the files with this name
          php -v   -shows the php version
          which php -shows current php version that is running on the server
          

          【讨论】:

            【解决方案7】:

            我在 Mac 上使用 laravel 代客解决了这个问题:

            brew install php70-mcrypt

            【讨论】:

              【解决方案8】:

              这样做:

              1. wget http://jp2.php.net/distributions/php-7.0.3.tar.gz
              2. tar zxf php-7.0.3.tar.gz
              3. cd php-7.0.3/ext/mcrypt
              4. /php7-path/bin/phpize(当出现configure: error: mcrypt.h not found. Please reinstall libmcrypt等错误时运行apt-get install libmcrypt-dev
              5. ./configure --with-php-config=/php7-path/bin/php-config
              6. (sudo) make && make install .这将在php-7.0.3/ext/mcrypt/modules 中安装 mcrypt.so
              7. cp 到/usr/lib/php/20151012/ 什么是共享扩展目录
              8. /etc/php/mods-available/ 中创建一个mcrypt.ini 写为extension=mcrypt.so
              9. 创建指向此的链接,例如 sudo ln -s /etc/php/mods-available/mcrypt.ini 20-mcrypt.ini in /etc/php/7.0/fpm/conf.d
              10. 创建指向此的链接,例如sudo ln -s /etc/php/mods-available/mcrypt.ini 20-mcrypt.ini in /etc/php/7.0/cli/conf.d
              11. sudo service nginx restart
              12. sudo service php7.0-fpm restart
              13. 是的。

              【讨论】:

              • 当通过 apt-get 安装的 ppa 失败时,这对我有用,所以谢谢!如果您可以修复答案中的格式,那就太好了,因为它有点难以理解。
              【解决方案9】:

              php7 有 mcrypt,你可以在 php.ini 中启用它,然后一切正常。

              【讨论】:

              • 您能否详细说明我如何安装PHP7 Mcrypt?我试图查找PHP7 是否有任何Mcrypt 扩展名,但无济于事。 PHP5Mcryptphp5-mcrypt,可以分别使用 php5enmodphp5dismod 轻松启用和禁用。
              • 在 /etc/php/7.0/cli/conf.d/20-mcrypt.ini 中,您必须检查扩展是否已启用:extension=mcrypt.so 而不是 ;extension=mcrypt.so
              猜你喜欢
              • 2017-05-05
              • 2014-05-18
              • 2014-06-03
              • 2014-09-20
              • 2017-01-24
              • 2016-04-17
              • 2014-10-31
              • 2017-05-11
              相关资源
              最近更新 更多