我今天决定在我的Windows 10机器上使用带有Hyper-V的Homestead vagrant box来安装一个快速的OpenCart安装,并且我在Homestead.yml中将我的opencart文件夹映射为这样:
- map: D:\web\www\oc\oc-3.0.2.0
to: /home/vagrant/code/opencart
type: "smb"
一切都很好。该文件夹按预期在流氓VM中同步。但是在尝试安装OpenCart时,我得到了这个解析错误:
PHP Parse error: syntax error, unexpected ''] == '' (T_CONSTANT_ENCAPSED_STRING) in /home/vagrant/code/opencart/upload/system/startup.php on line 93
查看我的主机上该文件的第92-94行:
require_once(modification(DIR_SYSTEM . 'engine/event.php'));
require_once(modification(DIR_SYSTEM . 'engine/router.php'));
require_once(modification(DIR_SYSTEM . 'engine/loader.php'));
查看vagrant中同步文件的相同行:
require_once(modification(DIR_SYSTEM . 'engine/event.php'));
requirePROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
$_SERVER['HTTPS'] = true;
这个替换了“require_once”代码的代码出现在此文件的前面。就像它在以后的代码中重新复制一样,使这个文件无法使用。 Here's the full file.
如果删除复制的行或用其他代码替换它们,则会在vagrant版本中找到所有内容。但如果我只删除了几行,其余的仍会覆盖以后的代码。
有没有人知道造成这种情况的原因或解决方法是什么?
答案 0 :(得分:1)
事实证明,这与Homestead和OpenCart无关。我启动了另一个流浪项目,并注意到同步文件存在类似问题。
我最近安装了 Docker for Windows 来玩,所以我决定卸载它,看看是否能解决这个问题。确实如此。
所以在某个地方,不知怎的,Vagrant和Docker在Windows 10上并不相处。不知道确切问题出在哪里。