我试图得到一个老的Laravel4.1.x应用程序重新启动和运行,以便它可以现代化。这需要一个具有PHP5.6和Mcrypt扩展的环境。我已经安装了家园9.0.3 (最新的稳定版本)。在VM中,我已经将PHP版本设置为5.6
sudo update-alternatives --config php然后,我安装了php-mcrypt扩展。
sudo apt-get install php5.6-mcrypt我现在能够创建一个新的Laravel4.1.x项目,这是一个需要Mcrypt完成的过程,所以我们肯定取得了一些进展:
composer create-project laravel/laravel="4.1.*" myAppName但是,当我浏览到myAppName的网页时,我会看到以下消息:
需要Mcrypt PHP扩展。
我也尝试了一些通常被推荐用于这个问题的步骤,即:
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但我还是在浏览器里得到了同样的信息。
我错过了哪一步?
发布于 2019-07-23 05:05:40
因为所有安装在国产网站上的PHP版本,您需要为Homestead.yaml中的站点设置PHP。
首先,检查服务器使用phpinfo();运行的版本。
检查文件/etc/nginx/sites-enabled/homestead.test并查找以下行:
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;如果没有在站点列表中设置php版本,这个文件将指向php7.3.sock。在这种情况下,版本5.6已经安装了mcrypt,但7.3没有安装。
你可以换一条线
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;为
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;然后用sudo nginx -s reload重新加载nginx。
或者在Homestead.yaml上设置php版本:
sites:
- map: homestead.test
to: /home/vagrant/code/public
php: "5.6"然后运行迷航条款,它将更改PHP5.6的nginx配置。
发布于 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 destroy和vagrant up轻松地将当前安装恢复到当前状态,因为所有安装都保存在Homestead.yaml中。
在我的安装中,国产v9在Laravel4.1上运行php5.6,没有任何问题.
希望它能帮上忙。
https://stackoverflow.com/questions/57103000
复制相似问题