Laravel / Homestead vagrant box исчез из системы - PullRequest
0 голосов
/ 21 ноября 2018

Я получил проект php, который уже сделан, и для начала я должен поставить его на сервер (планируя использовать Heroku).Я новичок в виртуальных коробках PHP, Laravel и т. Д. Человек, который создал проект, порекомендовал использовать Laravel, поэтому я начал работать таким образом.Я работаю на Windows 10 и использую cmder в качестве терминала.

  1. Я загрузил VirtualBox & Vagrant.
  2. Затем, используя Commander, я добавил поле Laravel / Homestead, выполнив:

    vagrant box add laravel/homestead
    

    в папке c: \ Users \ Jacky \ vagrant \ ubuntu (по крайней мере, я думаю, что именно там я его и добавил)

  3. Впоследствии я считаю, что я сделал vagrant initили vagrant init laravel/homestead
  4. что бы я ни делал потом, я смог запустить vagrant ssh и войти в систему.Там я смог проверить и установить php и composer.
  5. Затем я следовал инструкциям laravels и создал папку hometead в c: \ Jack \ Homestead
  6. Запустил git checkout для v7.19.2
  7. запустил init.bat
  8. и настроил файл Homestead.yaml

Я создал следующую карту папок

- map: C:\Jack\myapp\public
      to:  /home/vagrant/myapp

и следующуюкарта сайта

 - map: myapp.test
      to:  /home/vagrant/myapp/public

Я немного запутался со структурой каталогов всей этой вещи и не уверен, должен ли я поместить каталог myapp в c: \ Jack \ Homestead \ myapp или просто делать этокак я делал в c: \ Jack \ myapp - хорошо.

В любом случае, это все еще работало, и я мог видеть это в своем веб-браузере.Пока все было хорошо.

Тогда в инструкциях по проекту мне сказали сделать следующее:

  1. запустить composer install
  2. Был файл env.example, который мне нужно былоизмените на .env и измените некоторые настройки
  3. запустите php artisan ключ: сгенерируйте
  4. запустите php artisan migrate --seed
  5. запустите php artisan passport: install
  6. запустите php artisan storage: link

В этот момент я получил ошибку, что Symlink не может быть создан, поэтому я погуглил и нашел в Stack Overflow перезапуск с правами администратора.Я запустил cmder как администратор и у меня был сердечный приступ в течение последних 30 минут, так как он сказал мне, что я должен был бродить, и когда я сделал это, он не мог найти свою коробку и даже делал vagrant box list

Я быне получил результатов, и он хотел перезагружать, который занимает более 3 часов.Я только что перезапустился без администратора и обнаружил, что мой ящик Laravel / Homestead указан в списке, поэтому я предполагаю, что он установлен для моего пользователя, а не администратора, поэтому я не могу запустить cmder от имени администратора.

Итак, я пытаюсьчтобы подключиться снова, я не уверен, в какой папке мне следует запускать команды vagrant, но у меня, похоже, только есть файл VagrantFile в моей папке C: \ Jack \ Homestead, поэтому, если я запускаю команду vagrant где-либо еще, это выдает мне ошибку,требуется бродячая среда и т. д.

Итак, я попробовал следующее в своей домашней папке:

  1. vagrant ssh - я получаю:

    ВМ должна быть запущена, чтобы открыть соединение SSH.Запустите `vagrant up, чтобы запустить виртуальную машину.

    (В моем диспетчере VirtualBox я вижу, что моя виртуальная машина hometead-7 работает)

  2. vagrant up -Я получаю:

    Bringing machine 'homestead-7' up with 'virtualbox' provider...
    ==> homestead-7: Importing base box 'laravel/homestead'...
    ==> homestead-7: Matching MAC address for NAT networking...
    ==> homestead-7: Checking if box 'laravel/homestead' is up to date...
    A VirtualBox machine with the name 'homestead-7' already exists.
    Please use another name or delete the machine with the existing
    name, and try again.
    
  3. vagrant ssh 'homestead-7' Я также получаю

    VM должна быть запущена, чтобы открыть соединение SSH.Запустите vagrant up, чтобы запустить виртуальную машину.

И проблема заключается в том, что после подключения я предполагаю, что у меня все еще будет та же проблема при запуске:

php artisan storage:link

Итак, мои вопросы таковы:

  1. Где я должен иметь папку myapp моих проектов, должна ли она быть там, где она находится C:\Jack\myapp или я должен положить ее в C:\Jack\Homestead\myapp
  2. Предполагается, что файл VagrantFile находится только в моей папке Homestead и откуда я должен выполнять все свои команды Vagrant?Как vagrant ssh и vagrant up
  3. Как я могу подключиться снова, когда я получаю эти ошибки при выполнении vagrant ssh и vagrant up
  4. После подключения я предполагаю, что получу то же самоеошибка при запуске php artisan storage:link, так как запуск от имени администратора, похоже, не работает, что мне делать?
  5. Я предполагаю, что я должен запустить git init и heroku create внутри папки myapp, это правильно?

1 Ответ

0 голосов
/ 21 ноября 2018

1) Я всегда храню папки своих приложений вне папки Homestead.Ваша папка Homestead содержит проект git, поэтому, если вы помещаете свои приложения внутрь, вы должны включить эту папку в файл .gitignore.Я думаю, что проще, если вы просто разместите свои приложения в другом месте.

2) Vagrantfile может находиться только внутри вашей папки Homestead (c: \ Jack \ Homestead).Вы должны запустить все свои команды vagrant в папке Homestead.

3) Я использовал эту ошибку, когда пытался запустить vagrant up для проекта, который использовал то же имя коробки 'homestead-7'.Если у вас есть контроль версий, проверьте, не был ли изменен файл c: \ Jack \ Homestead \ .vagrant \ machines \ homestead-7 \ virtualbox \ id.Если это так, попробуйте восстановить старое значение и снова запустить vagrant up.

4) Вы работаете в среде Windows, верно?Окна могут быть немного темпераментными с символическими ссылками внутри бродяги.Вы получите ту же проблему, если попытаетесь установить что-либо в npm.Чтобы решить эту проблему, я запускаю npm (и php artisan storage: link) вне виртуальной машины, на хост-компьютере, внутри корня папки приложения.Просто напоминание: для этого вам потребуется php, установленный на вашем хост-компьютере.

5) Все команды, относящиеся к приложению (а не к виртуальной машине), должны выполняться внутри виртуальной машины, в папке app.(например: / home / vagrant / code / myapp) или в папке приложения на вашем хост-компьютере.Эти две папки синхронизированы, благодаря vagrant.

...