nginx之location部署yii项目(不使用nginx端口转发)
Posted 这个名字怎么用不了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx之location部署yii项目(不使用nginx端口转发)相关的知识,希望对你有一定的参考价值。
- 前言: 之前部署yii项目的时候, 使用的是域名, 后来使用nginx进行端口转发(反向代理)来部署yii项目. 这一次部署尝试只使用location 进行部署(不需要使用端口).
- 先贴出nginx的配置
- 正题: 首先yii项目本地能够跑通, 在部署的时候, 遇到问题一定多去查看日志(主要是nginx的访问日志和错误日志). 在本次部署的时候, 遇到的问题是项目的样式没有出来, 项目样式没有出来 (1)可能是路径不对, (2) 静态资源没有访问权限, 我查看nginx访问日志
发现请求这个静态资源的时候, 报了403 错误. 查看错误日志
发现denied, 看划线的一行, 说明静态资源的后缀被限制访问了, 应该是可以通过修改php.ini的 security.limit_extensions 可以解决(没试过!应该可以), 我使用的解决方案是配置一个location 正则匹配静态资源, 这样就解决问题了.配置如下图
问题解决!!!!~~~~~成功访问 - 将截图的代码赋值下来
1 #通过 location 匹配yii项目配置如下 2 location /quick-mould/ { 3 root /home/php_project; 4 fastcgi_pass 127.0.0.1:9000; 5 fastcgi_index index.php; 6 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 7 include fastcgi_params; 8 } 9 10 11 #上面的可以访问PHP脚本了, 但是项目里的静态资源访问不到, 所以需要再配置一个location, 并且要注意 红色部分不要有空格, 否则有语法错误 12 location ~* /quick-mould/.*\\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { 13 root /home/php_project; # 当请求/quick-mould目录下的静态资源的时候, 才会匹配到这个location, 访问其他目录下的不会匹配 14 }
- 项目部署其他的注意事项参考https://www.cnblogs.com/bneglect/p/11511647.html
- 根据访问路径匹配不同目录下的静态资源 配置请参考: https://segmentfault.com/q/1010000009158836
以上是关于nginx之location部署yii项目(不使用nginx端口转发)的主要内容,如果未能解决你的问题,请参考以下文章
记一次nginx部署yii2项目时502 bad gatewary错误的排查