Vagrant - PhpStorm - Laravel - HTTP Где я могу получить доступ к своему локальному веб-сайту?

Я новичок в мире Php/Laravel и виртуальных машин.

Я загрузился бродягой с этим Vagrantfile:

# -*- 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://atlas.hashicorp.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.
  # config.vm.network "forwarded_port", guest: 80, host: 8080

  # 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 "./devpeople", "/home/vagrant/devpeople"

  # 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.

  # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
  # such as FTP and Heroku are also available. See the documentation at
  # https://docs.vagrantup.com/v2/push/atlas.html for more information.
  # config.push.define "atlas" do |push|
  #   push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
  # end

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

Я пробовал использовать бродячие команды из их документации, а также безуспешно модифицировал Vagrantfile.

То, что я хочу, — это аналогичный опыт «сопоставления сайта», как при редактировании файла Homestead.yaml. Плюс, что должно быть по умолчанию?


person Kostas Dimakis    schedule 24.12.2015    source источник


Ответы (3)


создайте папку на вашем хост-компьютере что-то вроде

  c:/projects/devpeople

Измените свой файл Vagrant следующим образом.

 config.vm.box = "ubuntu/trusty64"


 config.vm.network "forwarded_port", guest: 80, host: 8080

или вы можете изменить порт следующим образом

 config.vm.network "forwarded_port", guest: 80, host: 8081

Смотри ниже

создать папку на виртуальной машине

 vagrant up

 vagrant ssh

 cd  var/www

 mkdir devpeople

Итак, ваша виртуальная машина должна иметь такую ​​​​папку

  /var/www/devpeople

Затем вы можете разместить свои проекты на хост-компьютере.

Итак, папка синхронизации Vagrant будет выглядеть так

  config.vm.synced_folder "c:/projects/devpeople", "/var/www/devpeople"

Беги бродягой вверх

и получить доступ к вашему сайту разработки

localhost:8081

Если папка не "синхронизируется", запустите

vagrant halt

перезапустить бродягу

тогда

vagrant up
person Community    schedule 24.12.2015
comment
Я специально хочу усадьбу, поэтому я оставлю все как есть. Я свяжусь с вами, как только проверю ваш ответ. Спасибо. - person Kostas Dimakis; 24.12.2015
comment
Нет, это тоже не работает. Папки синхронизируются без проблем. Кроме того, я не думаю, что это должно быть правильным путем. - person Kostas Dimakis; 24.12.2015
comment
Так что, если это то, что вы имеете в виду, вы должны следовать документации Laravel о том, как настроить Homestead, вы должны настроить его в Homestead.yaml, а не в Vagranfile.yaml. - person ; 25.12.2015
comment
Да. На самом деле я сделал эту процедуру до того, как столкнулся с этой проблемой. Я следовал глобальной стратегии усадьбы. Затем я попытался сделать усадьбу для каждого проекта. Но я использовал команду PhpStorm Vagrant Init, которая генерирует только файл Vagrantfile. Но потом я понял, что мне следует снова git clone использовать репозиторий усадьбы, а не просто использовать Vagrant Init. Спасибо Ян. - person Kostas Dimakis; 25.12.2015
comment
С Vagranfile, который вы предоставили выше, успешно ли установлен config.vm.box = laravel/homestead? Я никогда не пробовал это раньше, я обычно использую UbuntuTrusty в каждом проекте и вручную настраиваю бродячую машину (apache, mysql и т. д.). Возможно, я попробую это в своих будущих проектах. - person ; 25.12.2015
comment
Вы делаете что? Никогда больше так не делай, Ян! Да, это работает. Но сначала вам нужно vagrant box add laravel/homestead, но вам нужно сделать это только один раз, я имею в виду глобально. - person Kostas Dimakis; 25.12.2015
comment
молодец Константинос Димакис. Я использую apache2 в некоторых своих проектах, laravel homestead предварительно настроен с помощью nginx. Внутри моего .vagrant.d у меня есть эти два ящика: ubuntutrusty и laravel/homestead. - person ; 25.12.2015

Вам нужно будет перенаправить порты из вашей виртуальной машины на хост. Вот пример из моего Vagrantfile для Payara:

config.vm.network :forwarded_port, guest: 4848, host: 4849
config.vm.network :forwarded_port, guest: 8080, host: 8081

Так как я знаю, что Payara по умолчанию использует порты 4848 и 8080, я переадресовал их на аналогичные порты на моем хосте (во избежание конфликтов).

Поэтому, если бы я перешел к http://localhost:4849 после запуска vagrant up, я был бы перенаправлен на порт 4848 внутри виртуальной машины, как если бы она работала локально.

Глядя на документацию Laravel, похоже, что вам нужно сделать следующие порты обязательно доступны:

  • SSH: 2222 → Переслать на 22
  • HTTP: 8000 → переадресация на 80
  • HTTPS: 44300 → переадресация на 443
  • MySQL: 33060 → переадресация на 3306
  • Postgres: 54320 → Переслать на 5432

Документы подразумевают, что это делается по умолчанию, поэтому вы можете сначала попробовать использовать их, чтобы убедиться.

person Mike    schedule 24.12.2015
comment
Большое спасибо за ваш быстрый ответ. Сначала попробую настройки по умолчанию. Я вернусь к вам. - person Kostas Dimakis; 24.12.2015
comment
Нет, похоже, это не работает. :/ Спасибо хоть. Может быть, что-то еще, если выключено на моем рабочем месте. Кстати, у меня есть apache2, работающий на локальном хосте через порт 80. Также я попробовал инструкции из документации Laravel, и это сработало, НО это не имело ничего общего с Vagrantfile, это был файл Homestead.yaml. Но мне нужно, чтобы это работало через Vagrantfile аналогичным образом. - person Kostas Dimakis; 24.12.2015

Ну, я пропустил важный шаг в документации laravel. Правильный способ настроить ваш бродячий ящик — клонировать файлы «настройки» из репозитория laravel/homestead.

Итак, чтобы получить доступ к серверу, вы просто редактируете sites в файле Homstead.yaml.

person Kostas Dimakis    schedule 24.12.2015