我在OSX,Ubuntu和Windows 7上运行流浪汉,并在主机上使用vim和Netbeans作为IDE。 VM正在运行CentOS 6.3和Apache 2.2。 docroot设置为/vagrant
。
当我编辑JS或CSS文件并保存时,浏览器会转身检测非法字符。当我在浏览器中查看文件时,我看到了菱形问号字符,它通常指向编码问题。我可以在VM中的vim中打开文件并用:w ++enc=utf-8
保存,文件将正常加载。
我在主机和不同的主机操作系统上尝试了多个IDE,并且只能将它指向与vagrant和挂载目录有关的内容。我的IDE不是问题,因为我可以在本地运行文件并且它们可以工作,或者将它们保存到远程机器并且文件可以工作。只有当我将它们保存到/vagrant
中挂载的内容时,我才会遇到问题。
是否需要更改操作系统中的Apache或其他内容才能使其正常工作?
答案 0 :(得分:49)
今天早上我遇到了这个问题。在httpd.conf中将EnableSendfile设置为off。
如果你看看你的httpd.conf,它会说“如果你从安装了NFS的文件系统提供服务,请关闭它。”在http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile中,它解释了“默认情况下,当处理请求不需要访问文件中的数据时 - 例如,在传递静态文件时 - Apache使用sendfile来传递文件内容如果操作系统支持,则读取文件。“
由于您的Windows主机具有ntfs文件系统,因此linux guest虚拟机无法使用sendfile正确缓存该文件,因此apache需要自行发送该文件。从apache请求文件时,这可能会导致边际速度减慢,但应该可以忽略不计。
答案 1 :(得分:6)
这取决于您使用的服务器。
Nginx :/etc/nginx/nginx.conf
:
将包含sendfile on;
的行更改为sendfile off;
。
对于 Apache :/etc/httpd/conf/httpd.conf
:
更改删除EnableSendfile off;
不要忘记你的Nginx或Apache restart
。如果它仍然无效,exit
和vagrant reload
或类似的东西 - 重新启动您的虚拟机。