Ubuntu 升级到 13.10 后 mCrypt 不存在
Posted
技术标签:
【中文标题】Ubuntu 升级到 13.10 后 mCrypt 不存在【英文标题】:mCrypt not present after Ubuntu upgrade to 13.10 【发布时间】: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/…
在该页面上发现了启动板错误,该错误为我提供了解决方案。谢谢
【参考方案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 中,此问题导致了错误... 致命错误:在 /如果软件包已经安装,另一种解决方案:
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 文件中的扩展名是空的。以上是关于Ubuntu 升级到 13.10 后 mCrypt 不存在的主要内容,如果未能解决你的问题,请参考以下文章
升级到 Ubuntu 13.10 后,Apache 上的 laravel 项目出现 403 错误
升级到 Ubuntu 13.10 后 Apache 不使用 DocumentRoot(使用显示“它可以工作!”的默认页面)