宅基地中每个站点的单独 php 版本不起作用
Posted
技术标签:
【中文标题】宅基地中每个站点的单独 php 版本不起作用【英文标题】:Individual php versions for each site in homestead not working 【发布时间】:2020-06-02 10:44:48 【问题描述】:在生产中,我有两台服务器运行 php7.1 和 php7.3。 除了 php 版本,环境是一样的。
我正在尝试在宅基地中为每个站点使用不同的 php 版本重新创建它,但所有站点最终都使用 php 7.4,因为它是宅基地框的当前版本。
换句话说,网站版本控制无效:
Homestead.yaml
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox
authorize: .ssh/homestead_rsa.pub
keys:
- .ssh/homestead_rsa
folders:
- map: C:/www/api
to: /home/vagrant/api
php: "7.3"
- map: C:/www/bikes
to: /home/vagrant/bikes
php: "7.1"
- map: C:/www/manager
to: /home/vagrant/manager
php: "7.3"
sites:
- map: api.test
to: /home/vagrant/api/public
- map: bikes.test
to: /home/vagrant/bikes/public
- map: manager.test
to: /home/vagrant/manager/public
databases:
- api
- bikes
- manager
有人知道我做错了什么吗? 有没有更好的方法来做到这一点?喜欢拥有多个盒子吗?
我正在使用 Vagrant 2.2.6 和 Homestead 9.2.0
【问题讨论】:
添加php: "7.3"
等应该可以,你如何检查php版本?
在每个站点上使用 phpinfo()。以及在 php>7.1 上运行时遇到弃用异常的自行车站点
您在添加php版本后是否配置了机器?例如vagrant reload --provision
或 vagrant halt
, vagrant up --provision
是的,试了好几次
你有什么理由运行这么旧的宅基地版本?
【参考方案1】:
您需要将“php:”标签移动到网站部分。而且,您必须为每个站点指定“type:”标签。
修复代码并运行 vagrant reload --provision。
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox
authorize: .ssh/homestead_rsa.pub
keys:
- .ssh/homestead_rsa
folders:
- map: C:/www/api
to: /home/vagrant/api
- map: C:/www/bikes
to: /home/vagrant/bikes
- map: C:/www/manager
to: /home/vagrant/manager
sites:
- map: api.test
to: /home/vagrant/api/public
type: "apache"
php: "7.3"
- map: bikes.test
to: /home/vagrant/bikes/public
type: "apache"
php: "7.1"
- map: manager.test
to: /home/vagrant/manager/public
type: "apache"
php: "7.3"
databases:
- api
- bikes
- manager
【讨论】:
【参考方案2】:我也有这个问题。 Phpmyadmin 需要 php 8.0,而我有 php 8.1。
运行sudo service --status-all | gpep php
后,似乎只启动了一个php-fpm服务。
[ - ] php5.6-fpm
[ - ] php7.0-fpm
[ - ] php7.1-fpm
[ - ] php7.2-fpm
[ - ] php7.3-fpm
[ - ] php7.4-fpm
[ - ] php8.0-fpm
[ + ] php8.1-fpm
在sudo service php8.0-fpm start
phpmyadmin 工作正常之后。但是,重新启动后服务没有启动。所以我设置了 Homestead.yaml 来启动所需的服务。
sites:
- map: homestead.test
to: /home/vagrant/projects/myproject/public
- map: phpmyadmin.test
to: /home/vagrant/projects/phpmyadmin/
php: "8.0"
databases:
- homestead
services:
- enabled:
- "php8.0-fpm"
在vagrant reload --provision
之后,php8.1-fpm 和 php8.0-fpm 都启动了。
[ - ] php5.6-fpm
[ - ] php7.0-fpm
[ - ] php7.1-fpm
[ - ] php7.2-fpm
[ - ] php7.3-fpm
[ - ] php7.4-fpm
[ + ] php8.0-fpm
[ + ] php8.1-fpm
【讨论】:
以上是关于宅基地中每个站点的单独 php 版本不起作用的主要内容,如果未能解决你的问题,请参考以下文章
CodeIgniter &get_instance() 在 php5.6 版本中不起作用?