最近的一个项目是需要运行在nginx环境下才能运行,但是每次改完提交测试太麻烦了,想要在编辑器上改了代码,直接可以看到效果,同时可以和别人一起开发。但是在网上找了很久没找到相关的教程,于是自己琢磨了两天,终于可以实现了!
1、本地安装虚拟机(我用的是vmware centos7)
2、安装lnmp(关于下载安装方面的这里就不多写了,网上都可以找到) 默认目录为/home/wwwroot/default
访问虚拟机内网ip进入lnmp页(此时可以将项目放到default看能否正常运行了)
3、如果需要和别人一起实时共享开发,那么就需要用到挂载。vmware中可设置本地需要挂载的目录。
vmware -> 虚拟机 -> 设置 -> 选项 -> 共享文件夹 ->添加共享文件夹 设置名字
4、将vmvare设置的本地共享文件夹挂载到/mnt/win下
sudo vmhgfs-fuse .host:/test /mnt/win (test是我在第三步中创建的共享文件夹的名称)
挂载成功后我们可以在本地的test文件夹中创建一个test.txt 如果在虚拟机/mnt/win下多了一个test.txt那么说明挂载成功了
5、此时我们将项目文件移至/mnt/win下 这时我们需要更改nginx的默认目录,更改到/mnt/win下 进入/usr/local/nginx/conf 编辑 nginx.conf
将这里的root 后面的/home/wwwroot/default 换成 /mnt/win ;
此时我们重新启动nginx
/etc/init.d/nginx restart
发现网页403;
这时我们需要更改nginx的启动用户 将第一行的 user nobody更改为 user root
给/mnt最高权限 chmod -R 777 /mnt
再次保存重启 发现403没有了 但是随之而来的是 no input file specified
6、网上找了很多解决的办法
1)、 php.ini(/etc/php5/cgi/php.ini)的配置中这两项
cgi.fix_pathinfo=1 (这个是自己添加的)
doc_root=
2)、nginx配置文件/etc/nginx/sites-available/default中注意以下部分
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
include fastcgi_params;
}
尝试过很多解决方法,但是都没有解决,之后纠结了好久终于找到了解决方法。
进入/usr/local/php/etc/
修改php-fpm.conf
将user=www group=www 更改为 user=root group=root
此时我们重新运行php-fpm,但是启动失败
提示:ERROR: [pool www] please specify user and group other than root
我们只需要改一下启动的命令就可以了 php-fpm -R
7、接下来我们就能够通过虚拟机的主机ip运行共享文件夹中的项目了。但是别人还没法通过你虚拟机的主机ip访问,这时我们就需要用到内网穿透。
推荐使用sunny ngrok (因为不管安装还是使用都相当简单);
8、下载sunny Ngrok linux版
注册
购买隧道
上传至linux
通过 ./sunny clientid 隧道id 启动
9、这时其他的人就能够通过sunny ngrok给的域名访问到你的项目了。
10、然后我们将共享文件夹在本地也共享出去,让别人的电脑能够直接进入到共享文件件中(网上有具体的做法)
到这里已经实现了目的(以上方法请谨慎使用,本地还好,线上服务器更改启动用户会带来大麻烦)
第一次写,如果有什么不足的地方还请大家多多指教!