homestead 中每个站点的单独 php 版本无法正常工作

noS*_*oup 4 php version vagrant laravel homestead

在生产中,我有两台运行 php7.1 和 php7.3 的服务器。除了 php 版本之外,环境是相同的。

我试图在每个站点使用不同的 php 版本在 homestead 中重新创建它,但所有站点最终都使用 php 7.4,因为它是 homestead 框的当前版本。

换句话说,站点版本控制不起作用:

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
Run Code Online (Sandbox Code Playgroud)

有人知道我做错了什么吗?有更好的方法吗?喜欢有多个盒子吗?

我正在使用 Vagrant 2.2.6 和 Homestead 9.2.0

小智 5

我也有这个问题。phpmyadmin 需要 php 8.0,而我有 php 8.1。运行后sudo service --status-all | grep 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
Run Code Online (Sandbox Code Playgroud)

运行sudo service php8.0-fpm startphpmyadmin 后工作正常。但是重启后服务没有启动。所以我设置了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"
Run Code Online (Sandbox Code Playgroud)

vagrant reload --provisionphp8.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
Run Code Online (Sandbox Code Playgroud)