为Laravel配置Homestead

阿德里安·帕斯库(Adrian Pascu)

我正在尝试为Laravel服务器配置Homestead环境,但无法使其正常工作。我按照文档进行安装和配置Homestead和Vagrant。这是我的Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: C:\\Users\\meadi\\PhpstormProjects
      to: /home/vagrant/code

sites:
    - map: blog.test
      to: /home/vagrant/code/blog/public

databases:
    - homestead

features:
    - mariadb: false
    - ohmyzsh: false
    - webdriver: false

其中PhpstormProjects是我所有的php项目blog的文件夹,也是我要为其进行设置的项目的文件夹。vagrant up在项目根目录中运行会导致此问题Vagrantfile(在PhpStorm中使用了Vagrant工具,因此我认为这是PhpStorm提供的模板):

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "laravel/homestead"

  # Disable automatic box update checking. If you disable this, then
  # boxes will only be checked for updates when the user runs
  # `vagrant box outdated`. This is not recommended.
  # config.vm.box_check_update = false

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  # NOTE: This will enable public access to the opened port
  # config.vm.network "forwarded_port", guest: 80, host: 8080

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine and only allow access
  # via 127.0.0.1 to disable public access
  # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network "private_network", ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network "public_network"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  # config.vm.synced_folder "../data", "/vagrant_data"

  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  # config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
  # end
  #
  # View the documentation for the provider you are using for more
  # information on available options.

  # Enable provisioning with a shell script. Additional provisioners such as
  # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
  # documentation for more information about their specific syntax and use.
  # config.vm.provision "shell", inline: <<-SHELL
  #   apt-get update
  #   apt-get install -y apache2
  # SHELL
end

我看到大部分文件都被注释掉了,但是我不知道是否应该启用任何这种配置。运行后,vagrant provision我希望能够在浏览器中连接到服务器。我设置了hosts从192.168.10.10到blog.test的映射,并且我也尝试直接连接到192.168.10.10和localhost:8000,但是没有成功,Chrome告诉我无法访问该站点。

在PhpStorm中浏览遥控器会显示以下文件夹结构: 无业游民的眉毛遥控器

我看到没有“ / home / vagrant / code”目录,即使这是中的映射Homestead.yaml,在运行时,vagrant up我也将其打印在控制台中:

==> default: Mounting shared folders...
    default: /vagrant => C:/Users/meadi/PhpstormProjects/blog

I assume that I misconfigured something that resulted in the code folder not being mounted in the VM thus resulting in no public folder to be served. Can anyone help me out? I followed multiple tutorials and I can't seem to find out what I missed. Thanks in advance!

Also, here is my Remote configuration in PhpStorm. I assume that if I misconfigured that, the folder structure I see in the Remote won't be accurate.

PhpStorm遥控器 PhpStorm遥控器

Natural Story

The problem may hide in this part of your Homestead.yaml:

folders:
- map: C:\\Users\\meadi\\PhpstormProjects
  to: /home/vagrant/code

At first, you don't have to use double backslashes in your path, you're enough to write like this:

C:\Users\meadi\PhpstormProjects

Second, your project folder is mapped to /home/vagrant/code, but you want to set your project in "blog" folder, so you need to change your mapping like this:

/home/vagrant/code/blog

Also, you should put your concrete blog project in "blog" directory on your host machine:

C:\Users\meadi\PhpstormProjects\blog

And define this path in your Homestead.yaml

The final variant is:

folders:
- map: C:\Users\meadi\PhpstormProjects\blog
  to: /home/vagrant/code/blog

If you want to create another project (e.g., shop), you must add another mapping:

folders:
- map: C:\Users\meadi\PhpstormProjects\blog
  to: /home/vagrant/code/blog
- map: C:\Users\meadi\PhpstormProjects\shop
  to: /home/vagrant/code/shop

EDIT

Check, if you have followed all these installation steps:

  1. After installation vagrant and virtualbox, run vagrant box add laravel/homestead from any location in your cmd
  2. Go to empty folder for your projects and run git clone https://github.com/laravel/homestead.git Homestead
  3. After cloning this package, run init.bat script inside it
  4. It will generate Homestead.yaml that you need to edit
  5. 从您的Homestead.yaml所在的文件夹中流浪

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章