首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Laravel Homestead中启用php-Mcrypt扩展

如何在Laravel Homestead中启用php-Mcrypt扩展
EN

Stack Overflow用户
提问于 2019-07-18 21:45:31
回答 2查看 2.6K关注 0票数 2

我试图得到一个老的Laravel4.1.x应用程序重新启动和运行,以便它可以现代化。这需要一个具有PHP5.6和Mcrypt扩展的环境。我已经安装了家园9.0.3 (最新的稳定版本)。在VM中,我已经将PHP版本设置为5.6

代码语言:javascript
复制
sudo update-alternatives --config php

然后,我安装了php-mcrypt扩展。

代码语言:javascript
复制
sudo apt-get install php5.6-mcrypt

我现在能够创建一个新的Laravel4.1.x项目,这是一个需要Mcrypt完成的过程,所以我们肯定取得了一些进展:

代码语言:javascript
复制
composer create-project laravel/laravel="4.1.*" myAppName

但是,当我浏览到myAppName的网页时,我会看到以下消息:

需要Mcrypt PHP扩展。

我也尝试了一些通常被推荐用于这个问题的步骤,即:

代码语言:javascript
复制
sudo ln -s /etc/php/5.6/conf.d/mcrypt.ini /etc/php/5.6/mods-available/mcrypt.ini
sudo phpenmod mcrypt
sudo service php5.6-fpm restart

但我还是在浏览器里得到了同样的信息。

我错过了哪一步?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-23 05:05:40

因为所有安装在国产网站上的PHP版本,您需要为Homestead.yaml中的站点设置PHP。

首先,检查服务器使用phpinfo();运行的版本。

检查文件/etc/nginx/sites-enabled/homestead.test并查找以下行:

代码语言:javascript
复制
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;

如果没有在站点列表中设置php版本,这个文件将指向php7.3.sock。在这种情况下,版本5.6已经安装了mcrypt,但7.3没有安装。

你可以换一条线

代码语言:javascript
复制
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;

代码语言:javascript
复制
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;

然后用sudo nginx -s reload重新加载nginx。

或者在Homestead.yaml上设置php版本:

代码语言:javascript
复制
sites:
- map: homestead.test
  to: /home/vagrant/code/public
  php: "5.6"

然后运行迷航条款,它将更改PHP5.6的nginx配置。

票数 1
EN

Stack Overflow用户

发布于 2019-07-23 22:53:56

对于 case v9,您应该像这里中所述的那样,使用php5.6来运行,但不幸的是,这不是您的情况,我知道……

默认情况下没有安装旧包(php5.6-mcrypt),正如您所提到的,它们应该通过:sudo apt-get install php5.6-mcrypt手工添加。

在那之后,所有的包都准备好了,启动和工作,特别是php5.6-mcrypt。

问题的根源在于homestead.yaml下的多个站点定义。很可能其中一些是重叠的,您的nginx所指的是错误的resource/site_definition,和错误的路径

因此,您可能认为运行/执行了一些奇怪的php版本或路由。

您可以通过删除部分/全部内容来验证这一点,将唯一重要的部分留给您-- in (/etc/nginx/sites启用/.)。

当然,请在容器内这样做,然后发出sudo service nginx restart,然后.

,你所有的问题都应该在那之后消失。

如果出了什么问题。之后,您可以使用vagrant destroyvagrant up轻松地将当前安装恢复到当前状态,因为所有安装都保存在Homestead.yaml中。

在我的安装中,国产v9在Laravel4.1上运行php5.6,没有任何问题.

希望它能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57103000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档