不能 运行 Laravel vagrant box 在 Windows 7 机器上
Can't run Laravel vagrant box on Windows 7 machine
我正在尝试 运行 vagrant homestead laravel 虚拟机,但不能。我关注 official instructions.
我的步骤:
- Vagrant 和 VirtualBox 安装成功。
vagrant box add laravel/homestead
已下载。
git clone https://github.com/laravel/homestead.git Homestead
。正如我在 this video. 中看到的那样,我在根目录中看不到任何 *.yaml
文件
- 我打开
Git bash
并转到 Homestead
文件夹,然后键入 sh init.sh
。
输出:
$sh init.sh
cp: overwrite `/z/.homestead/Homestead.yaml'?`
cp: overwrite `/z/.homestead/after.sh'?`
cp: overwrite `/z/.homestead/aliases.sh'?`
Homestead initialized!
但是我看不到 Homestead.yaml
文件。我的 C:\Users\user\
文件夹也不包含任何 .homestead
文件夹。
vagrant up
输出:
c:/projects/Homestead/scripts/homestead.rb:91:in `read': No such file or directory - Z:/.ssh/id_rsa.pub (Errno::ENOENT)
from c:/projects/Homestead/scripts/homestead.rb:91:in `block in configure'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/kernel_v2/config/vm_provisioner.rb:72:in `call'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/kernel_v2/config/vm_provisioner.rb:72:in `add_config'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/kernel_v2/config/vm.rb:317:in `provision'
from c:/projects/Homestead/scripts/homestead.rb:89:in `configure'
from c:/projects/Homestead/Vagrantfile:20:in `block in <top (required)>'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/v2/loader.rb:37:in `call'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/v2/loader.rb:37:in `load'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/loader.rb:103:in `block (2 levels) in load'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/loader.rb:97:in `each'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/loader.rb:97:in `block in load'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/loader.rb:94:in `each'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/loader.rb:94:in `load'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/vagrantfile.rb:28:in `initialize'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:689:in `new'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:689:in `vagrantfile'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:441:in `host'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:207:in `block in action_runner'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:33:in `call'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:33:in `run'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:428:in `hook'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:671:in `unload'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/bin/vagrant:177:in `ensure in <main>'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/bin/vagrant:177:in `<main>'
我在安装中遗漏了什么?
更新:
我在已安装的磁盘 Z:\ 中找到了这些文件。当我从 C:\
开始 init.sh
时,为什么 bash 在 Z:\
上创建文件?
Cygwin 在用户配置文件文件夹(.homestead
目录)中创建文件,但它也不会使 vagrant up
工作。
更新 2:
现在 vagrant up
和 homestead up
命令都给出了这个输出:
c:\projects\laravel5>homestead up
Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:
vm:
* A box must be specified.
是在 Windows 7 台和 Windows 8 台机器上完成的。
步数:
- 安装
Git for Windows
.
- 通过设置 Windows PATH 值更改 HOME 路径。 Article how to do it。现在,如果您在 Git Bash 中键入
cd ~
,那么您必须移至您的个人资料文件夹。另外 Git Bash 从同一个文件夹开始。
- 安装
Vagrant
和 VirtualBox
。
- 添加 Vagrant 框
vagrant box add laravel/homestead
。
- 在您的个人资料文件夹中键入
git clone https://github.com/laravel/homestead.git Homestead
。
- 通过移动到
cd ~/.ssh
并键入 ssh-keygen -t rsa -C "yourmail@you" -f homestead
. 在 Git Bash 中创建 ssh 密钥
- 移至
~/Homestead
并键入 sh init.sh
。它在 ~/.homestead
文件夹中创建了 3 个文件。
编辑您的 Homestead.yaml
文件。我的配置(注释行 #
):
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
#Paths to your generated SHH keys
authorize: ~/.ssh/homestead.pub
keys:
- ~/.ssh/homestead
#Folder sharing
folders:
- map: C:\projects\Laravels <----your Windows mapped folder!
to: /home/vagrant/Code <--- VM mapped folder. Do not change it.
#Add your sites here
sites:
- map: test.lar
to: /home/vagrant/Code/test.lar/public
- map: test2.lar
to: /home/vagrant/Code/test2.lar/public
#I commented it because do not want to re-create DB on each VM run
#databases:
# - homestead
variables:
- key: APP_ENV
value: local
编辑 \Windows\System32\drivers\etc
文件夹中的 hosts
文件并在末尾添加 2 行:
192.168.10.10 test.lar
192.168.10.10 test2.lar
现在转到 ~/Homestead
并使用 vagrant up
启动您的机器。在大多数情况下,您需要 运行 Git Bash 作为管理员。执行此命令后,您可以在 VirtualBox 中看到名为 Homestead 的 运行ning 机器。
- 在主机上的浏览器中打开 http://test.lar。您可以看到行
No input file specified.
一切正常。
- 通过键入
vagrant ssh
通过 SSH 连接到 Homestead VM,并使用 sudo su
成为 root 用户。
- 如果您想使用
laravel
命令创建站点,请键入:composer global require "laravel/installer=~1.1"
- 使用
export PATH="$PATH:~/.composer/vendor/bin"
和 source ~/.bashrc
将 composer 全局文件夹添加到 PATH。 More info.
- 移至 laravel 代码文件夹
cd /home/laravel/Code
并使用 laravel new test.lar
创建您的第一个项目。
- 刷新您的 http://test.lar 页面并在屏幕中央看到
Laravel 5
的工作页面。有用!映射文件夹中的文件会自动同步。
就是这样。
大多数情况下,我部分使用了 this tutorial and official。
我已按照 上的说明进行操作,它们运行良好。非常感谢你!我没有在其他地方找到这个答案。
不过还是有一些保留意见。我发现如果你在使用 composer global require "laravel/installer=~1.1"
安装 laravel 之前 sudo su
它将为 root 用户安装 laravel,这不是我们想要的,因为它将 laravel 保存在 /root/.composer
文件夹中,并且只能由 root 用户访问。
更好的方法是 运行 sudo composer global require "laravel/installer=~1.1"
没有 sudo su
,所以 laravel 完全安装了它的要求,但在 vagrant 用户目录中。
其实,我想到了一个更好的选择(在我看来),就是把一些代码放在after.sh
,位于.homestead
文件夹中,当虚拟机上升(运行 vagrant up
):
if [ ! -d $HOME/.composer/vendor/bin ]; then
echo "Installing Laravel Installer!!!"
sudo composer global require "laravel/installer=~1.1"
echo "\nPATH=$HOME/.composer/vendor/bin:$PATH" >>$HOME/.profile
fi
这样,即使您销毁了您的 VM,当您再次 vagrant up
它时,也会安装 laravel 并将 laravel
命令添加到 bash。
希望对您有所帮助。
我正在尝试 运行 vagrant homestead laravel 虚拟机,但不能。我关注 official instructions.
我的步骤:
- Vagrant 和 VirtualBox 安装成功。
vagrant box add laravel/homestead
已下载。git clone https://github.com/laravel/homestead.git Homestead
。正如我在 this video. 中看到的那样,我在根目录中看不到任何 - 我打开
Git bash
并转到Homestead
文件夹,然后键入sh init.sh
。
*.yaml
文件
输出:
$sh init.sh
cp: overwrite `/z/.homestead/Homestead.yaml'?`
cp: overwrite `/z/.homestead/after.sh'?`
cp: overwrite `/z/.homestead/aliases.sh'?`
Homestead initialized!
但是我看不到 Homestead.yaml
文件。我的 C:\Users\user\
文件夹也不包含任何 .homestead
文件夹。
vagrant up
输出:
c:/projects/Homestead/scripts/homestead.rb:91:in `read': No such file or directory - Z:/.ssh/id_rsa.pub (Errno::ENOENT)
from c:/projects/Homestead/scripts/homestead.rb:91:in `block in configure'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/kernel_v2/config/vm_provisioner.rb:72:in `call'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/kernel_v2/config/vm_provisioner.rb:72:in `add_config'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/plugins/kernel_v2/config/vm.rb:317:in `provision'
from c:/projects/Homestead/scripts/homestead.rb:89:in `configure'
from c:/projects/Homestead/Vagrantfile:20:in `block in <top (required)>'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/v2/loader.rb:37:in `call'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/v2/loader.rb:37:in `load'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/loader.rb:103:in `block (2 levels) in load'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/loader.rb:97:in `each'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/loader.rb:97:in `block in load'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/loader.rb:94:in `each'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/config/loader.rb:94:in `load'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/vagrantfile.rb:28:in `initialize'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:689:in `new'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:689:in `vagrantfile'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:441:in `host'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:207:in `block in action_runner'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:33:in `call'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/action/runner.rb:33:in `run'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:428:in `hook'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/lib/vagrant/environment.rb:671:in `unload'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/bin/vagrant:177:in `ensure in <main>'
from C:/Vagrant/embedded/gems/gems/vagrant-1.7.4/bin/vagrant:177:in `<main>'
我在安装中遗漏了什么?
更新:
我在已安装的磁盘 Z:\ 中找到了这些文件。当我从 C:\
开始 init.sh
时,为什么 bash 在 Z:\
上创建文件?
Cygwin 在用户配置文件文件夹(.homestead
目录)中创建文件,但它也不会使 vagrant up
工作。
更新 2:
现在 vagrant up
和 homestead up
命令都给出了这个输出:
c:\projects\laravel5>homestead up
Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:
vm:
* A box must be specified.
是在 Windows 7 台和 Windows 8 台机器上完成的。
步数:
- 安装
Git for Windows
. - 通过设置 Windows PATH 值更改 HOME 路径。 Article how to do it。现在,如果您在 Git Bash 中键入
cd ~
,那么您必须移至您的个人资料文件夹。另外 Git Bash 从同一个文件夹开始。 - 安装
Vagrant
和VirtualBox
。 - 添加 Vagrant 框
vagrant box add laravel/homestead
。 - 在您的个人资料文件夹中键入
git clone https://github.com/laravel/homestead.git Homestead
。 - 通过移动到
cd ~/.ssh
并键入ssh-keygen -t rsa -C "yourmail@you" -f homestead
. 在 Git Bash 中创建 ssh 密钥
- 移至
~/Homestead
并键入sh init.sh
。它在~/.homestead
文件夹中创建了 3 个文件。 编辑您的
Homestead.yaml
文件。我的配置(注释行#
):--- ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox #Paths to your generated SHH keys authorize: ~/.ssh/homestead.pub keys: - ~/.ssh/homestead #Folder sharing folders: - map: C:\projects\Laravels <----your Windows mapped folder! to: /home/vagrant/Code <--- VM mapped folder. Do not change it. #Add your sites here sites: - map: test.lar to: /home/vagrant/Code/test.lar/public - map: test2.lar to: /home/vagrant/Code/test2.lar/public #I commented it because do not want to re-create DB on each VM run #databases: # - homestead variables: - key: APP_ENV value: local
编辑
\Windows\System32\drivers\etc
文件夹中的hosts
文件并在末尾添加 2 行:192.168.10.10 test.lar 192.168.10.10 test2.lar
现在转到
~/Homestead
并使用vagrant up
启动您的机器。在大多数情况下,您需要 运行 Git Bash 作为管理员。执行此命令后,您可以在 VirtualBox 中看到名为 Homestead 的 运行ning 机器。- 在主机上的浏览器中打开 http://test.lar。您可以看到行
No input file specified.
一切正常。 - 通过键入
vagrant ssh
通过 SSH 连接到 Homestead VM,并使用sudo su
成为 root 用户。 - 如果您想使用
laravel
命令创建站点,请键入:composer global require "laravel/installer=~1.1"
- 使用
export PATH="$PATH:~/.composer/vendor/bin"
和source ~/.bashrc
将 composer 全局文件夹添加到 PATH。 More info. - 移至 laravel 代码文件夹
cd /home/laravel/Code
并使用laravel new test.lar
创建您的第一个项目。 - 刷新您的 http://test.lar 页面并在屏幕中央看到
Laravel 5
的工作页面。有用!映射文件夹中的文件会自动同步。
就是这样。 大多数情况下,我部分使用了 this tutorial and official。
我已按照
不过还是有一些保留意见。我发现如果你在使用 composer global require "laravel/installer=~1.1"
安装 laravel 之前 sudo su
它将为 root 用户安装 laravel,这不是我们想要的,因为它将 laravel 保存在 /root/.composer
文件夹中,并且只能由 root 用户访问。
更好的方法是 运行 sudo composer global require "laravel/installer=~1.1"
没有 sudo su
,所以 laravel 完全安装了它的要求,但在 vagrant 用户目录中。
其实,我想到了一个更好的选择(在我看来),就是把一些代码放在after.sh
,位于.homestead
文件夹中,当虚拟机上升(运行 vagrant up
):
if [ ! -d $HOME/.composer/vendor/bin ]; then
echo "Installing Laravel Installer!!!"
sudo composer global require "laravel/installer=~1.1"
echo "\nPATH=$HOME/.composer/vendor/bin:$PATH" >>$HOME/.profile
fi
这样,即使您销毁了您的 VM,当您再次 vagrant up
它时,也会安装 laravel 并将 laravel
命令添加到 bash。
希望对您有所帮助。