thinkphp5部署于Linux中nginx多站点解决方案
来源:互联网 发布:mac能用的绘画软件 编辑:程序博客网 时间:2024/06/11 16:03
问题简述:thinkphp5怎么在url访问中去掉public。
实验环境:
Linux、nginx、mysql、php(lnmp一键集成1.4测试版,更多信息lnmp.org)
本文兼顾的问题:
1.安全的配置(同一vps多站点)
2.友好的站点入口
部署问题重述:
由于thinkphp5经过重构,和thinkphp3.2有很大的不同,其中之前的入口文件index.php由/index.php改为/public/index.php,
那么问题来了:
1.如果按lnmp集成环境提供的方法(lnmp vhost add)添加虚拟站点,访问站点就要加个二级目录,如
http://xxx.com/public
所以为了可以让访问链接变得更加友好(即http://xxx.com),可以修改/usr/local/nginx/conf/vhost/xxx.com.conf(下称“专属配置”)
改为:
那么问题来了,由于lnmp环境考虑到虚拟站点各自的访问目录权限问题,于是在/usr/local/nginx/conf/fastcgi.conf
里配置了
那么每个站点的访问权限就限制在各自的document_root里了,
于是,我们修改的root(root /home/wwwroot/xxx.com/public;)就把权限限制在public目录之后,
软件架构根目录下的application等都无法访问了,那么此时我们要解决的问题是:
2.既要保持root /home/wwwroot/xxx.com/public;,又要让虚拟站点有/home/wwwroot/xxx.com目录的访问权限,
那么可以修改/usr/local/nginx/conf/fastcgi.conf配置文件:
改为:
但问题来了,/usr/local/nginx/conf/fastcgi.conf是公共配置文件,采用这种写死的方式会导致其他站点不可用,
为了兼顾其他虚拟站点,if_not_empty派上用场了,
修改方法为:
不改变/usr/local/nginx/conf/fastcgi.conf配置文件里的原配置,而在
之后添加
$basedir变量就可以在/usr/local/nginx/conf/vhost/xxx.com.conf配置文件里的include enable-php.conf前赋值:
优点:这样既满足了thinkphp5的部署要求,又不影响其他一般站点的使用。
缺点:如果$basedir没有赋值(至少一个专属配置有赋值),nginx -t无法通过。
注意rewrite规则:
最后献上thinkphp的rewrite规则:
这种写法3.2是可以的,但在这里是不可以的,否则经测试pathinfo为空
应该改为:
好了,一篇关于thinkphp5的rewrite写到这,欢迎多多交流
总结:
- lnmp环境
- thinkphp框架不改变目录结构的情况下配置rewrite规则
- Linux权限,安全问题
参考资料:
http://www.kancloud.cn/manual/thinkphp5/207415
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html
转载请注明:爱游思 » thinkphp5部署于Linux中nginx多站点解决方案
- thinkphp5部署于Linux中nginx多站点解决方案
- Thinkphp5 在Linux中nginx多站点解决方案
- Linux thinkphp5 多站点配置
- thinkphp5 nginx 虚拟站点配置
- linux部署thinkphp5小结
- nginx多站点+tomcat多项目部署
- nginx部署多个node站点
- linux nginx多站点配置
- centos 部署 Nginx + uwsgi + django +mysql 多站点
- docker nginx实现一个主机部署多个站点
- thinkphp5.0部署在nginx服务器的一些疑难杂症
- thinkphp5.1在nginx 的部署遇见的坑
- django+nginx+uwsgi+virtualenv部署站点示例
- 多站点部署
- nginx多站点配置
- Nginx 多站点配置
- nginx多站点配置
- nginx 多站点配置
- Android之Fragment
- jquery点击事件重复/叠加
- c++课本第一章
- Android 按两下退出APK的实现
- Fragment系列(三)------RecyclerFragment之UI部分
- thinkphp5部署于Linux中nginx多站点解决方案
- css常用样式笔记
- 自做Windows上界面美观的PHP集成环境软件
- Git常用指令
- iOS开发中常用的那些工具
- !~!
- iOS10 plist文件常用key值
- CMD命令
- 日志