我有一个已经完成的php项目,对于初学者来说,我必须将其放在服务器上(计划使用Heroku)。我是PHP虚拟盒子,Laravel等的新手。创建该项目的人建议使用Laravel,因此我开始采用这种方式。我正在Windows 10上运行,并使用cmder作为终端。
然后使用指挥官,我添加了Laravel / Homestead框 通过执行:
vagrant box add laravel/homestead
位于文件夹c:\ Users \ Jacky \ vagrant \ ubuntu(至少我认为这是我添加的位置)
vagrant init laravel/homestead
我制作了以下文件夹映射
- 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很好。
无论如何仍然有效,我可以在Web浏览器中看到它。到目前为止一切都很好。
然后,项目说明要求我执行以下操作
在这一点上,我收到一个错误消息,即无法创建符号链接,因此我搜索并在Stack Overflow中找到以admin身份重新启动。我以管理员身份运行,并且在过去30分钟内一直心脏病发作,因为它告诉我必须流浪,当我这样做时,它找不到我的盒子,甚至无法vagrant box list
我没有任何结果,它想要重新下载,这需要3个小时以上。 我只是在没有管理员的情况下重新启动,但确实找到了我的Laravel / Homestead框,因此我认为它是为我的用户而非管理员安装的,所以我想我不能以admin身份运行cmder。
所以现在我尝试再次连接,我不确定我应该在哪个文件夹中运行vagrant命令,但是我的C:\ Jack \ Homestead文件夹中似乎只有VagrantFile,所以如果我运行vagrant命令其他任何地方都会给我一个错误,提示需要一个无所事事的环境,等等。
所以我在homestead文件夹中尝试了以下操作:
vagrant ssh
-我得到:
VM必须正在运行才能打开SSH连接。启动`vagrant启动虚拟机。
(在VirtualBox Manager中,我看到了我的homestead-7 VM正在运行)
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.
vagrant ssh 'homestead-7'
我也得到
VM必须正在运行才能打开SSH连接。运行
vagrant up
启动虚拟机。
问题是,一旦我建立连接,我就认为我仍然会遇到同样的问题:
php artisan storage:link
所以我的问题如下:
C:\Jack\myapp
上还是应该放在C:\Jack\Homestead\myapp
上vagrant ssh
和vagrant up
vagrant ssh
和vagrant up
的错误时如何重新连接php artisan storage:link
时会遇到相同的错误,因为以管理员身份运行似乎不起作用,我该怎么办?git init
和heroku create
是正确的吗?答案 0 :(得分:1)
1)我始终将我的apps文件夹保留在Homestead文件夹之外。您的Homestead文件夹包含一个git项目,因此,如果您将应用程序放入其中,则应在.gitignore文件中包含该文件夹。我认为将应用程序放在其他地方会更容易。
2)Vagrantfile被设置为仅位于您的Homestead文件夹(c:\ Jack \ Homestead)内。您应该在Homestead文件夹中运行所有无业游民的命令。
3)当我尝试对使用相同框名“ homestead-7”的项目运行“ vagrant up”时,我经常遇到此错误。如果您具有版本控制,请检查文件c:\ Jack \ Homestead \ .vagrant \ machines \ homestead-7 \ virtualbox \ id是否已更改。如果是这样,请尝试恢复旧值并再次运行“无用功”。
4)您正在Windows环境中运行,对吗? Windows在流浪汉中带有符号链接可能会有点气质。如果尝试npm安装某些内容,则会遇到相同的问题。我要解决的方法是在主机PC的app文件夹根目录内的虚拟机外部运行npm(和php artisan storage:link)。提醒一下:为此,您需要在主机中安装php。
5)与该应用程序(而非虚拟机)相关的所有命令应在虚拟机内部,文件夹应用程序(例如:/ home / vagrant / code / myapp)或主机的应用程序文件夹中运行机。这两个文件夹是同步的,这要感谢流浪汉。