用Vagrant配置了虚拟机,运行WeCenter时出现了莫名奇妙的问题,表现是发布问题时,总是出现提示框 “页面停留时间过长,或内容已提交,请刷新页面”。WeCenter官方论坛中给了几个解决方向:
1. 是一些目录下的js的旧版本文件引起,重新上传新版即可。- 试验无果
2. 和session的时间设置有关。- 虚拟机环境和其它运行环境一样,其它运行环境就没有出现这样的问题,所以不是session的问题
3. 可能由于虚拟机的压缩机制引起。- 查了下源代码,提示框出现是在一个判断函数valid_post_hash之后。而后查资料,确实有人说使用虚拟机的NAT网络配置,会发生hash值错误,改为桥接方式即可。貌似这是个解决问题的方向。
问题出现转机,是创业技术合伙人纠正了我虚拟机安装过程中的一些失误,然后这个莫名奇妙的问题也就消失了,说到底,都是用户和用户组引起的。先看下这个图,就知道问题出在哪里了。
因为共享目录是用于web container的,所以设置就麻烦些了,需要三级联动: 1. host机上的vagrant设置; 2. guest机上的OS设置 ; 3. guest机上的web container设置。
具体将来就是要做这三步:
1. Host中Vagrantfile中共享目录设置:
config.vm.synced_folder “xxx”, “/htdocs/xxx”, create: true, owner: “www”, group: “www”
2. Guest OS里要有www用户和www用户组
groupadd www
useradd -g www www
3. Guest中Apache里httpd.conf的设置:
User www
Group www