我遇到了一个恼人的问题,我认为这个问题是由 Ubuntu 文件系统和 Mac OSX 文件系统之间的差异引起的。这似乎是一个普遍问题,任何使用 Mac OSX、VMware Fusion 和 Ubuntu 作为客户机的人都可能遇到这个问题。
我的设置
- 我的主机是 Mac OSX,所有源文件都位于那里。
- 我的客户操作系统是 Ubuntu Server(非 GUI),其中安装了所有开发工具和编译器(python、php 等)。
- 我的虚拟化软件是 VMware Fusion。
我无法让 VMware Tools 工作,因此我按照以下步骤将文件从 OSX 共享到 Ubuntu: 尝试在 OSX 上运行的 VMWare Fusion 的 Ubuntu 实例上设置共享文件夹时出现错误
再次强调:文件位于 OSX 上,并与客户机(Ubuntu)共享,以便 PHP 可以读取它们。
案例分析
我对 PHP 框架进行了一些研究Laravel 的内置Artisan 命令。以下所有命令均从 Ubuntu(客户机)运行
第一次使用时,效果很好:
php artisan
我还可以很好地重建源文件:
php artisan dump-autoload
然而,由于文件已经重建,这不再起作用:
php artisan
...并导致此语法错误:
PHP Parse error: syntax error, unexpected 'F' in /mnt/hgfs/www/tmi/api/vendor/composer/autoload_classmap.php on line 1646
如果我重新挂载包含源代码的文件夹,问题就会消失:
sudo mount /mnt/hgfs/www
现在我可以再次毫无问题地运行以下命令:
php artisan
答案1
一种解决方法可能是使用扩展程序,用空格代替制表符。
答案2
这个问题似乎与 PHP 有关。关闭并将问题移至堆栈溢出。