Linux 配置 nginx + php
为什么!!!我配过的服务器已经有5、6个了吧,为什么每一次配置都能要了我的老命??这次写清楚过程,以后再要被配服务器坑,我特么要砍人了。
提示:测试网站能否访问的时候,最好关掉浏览器的缓存功能或者勤清浏览器的缓存,以避免被缓存坑!
1. nginx
mac上通过brew安装nginx,万事开头容易,配置难。
找到nginx.conf,保持其所在文件夹常年打开不要关闭,因为后面还会经常来这个文件夹找东西。
nginx.conf 内容参照 https://github.com/daylerees/laravel-website-configs/blob/master/nginx.conf
注意上面只给出了server块里的内容,不过server块以外的内容保持默认都行。
还请注意 ‘location /’ 块内的内容,这里不推荐上文的配置,还请改成这个:
try_files $uri /index.php?$query_string;
删去了 “$uri/”。如果不删去这一条,并且没有开启autoindex的话,直接访问一个目录会导致HTTP 403,这在前期配置的时候会造成不必要的困扰。
除此之外最好启用error.log,相应配置应该在文件的开头。
同时也请常年打开nginx的 error.log 所在文件夹,判断问题的时候也会经常用到。
2. php-fpm
这玩意相当于运行php的服务器,总之如果你的站点想运行php文件的话,php-fpm 和 nginx 都得保持在后台运行。
安装不多说,根据平台查找自己合适的方案。
也请找到这玩意的配置文件并常年打开。
修改user及group。
这玩意本身没什么坑的配置之处,主要还是得看nginx调用这玩意的那部分配置是否正确。
回到nginx.conf。
找到 location ~* php 啥啥啥的块。
这里有几个配置非常重要
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
第1行,告诉nginx去哪里找php-fpm服务。这个得看你的php-fpm 是什么样的,有的通过如上所示的sock进行通信,有的通过127.0.0.1:9000(一般情况下)进行通信,请搞清楚你的php-fpm用的那种方案并修改这一行。
第4行,这里需要include 一个叫 fastcgi_params 的文件,应该和 nginx.conf 在一个文件夹下,路径填正确就行。
配置完后重启各个服务,再试试应该可以正常使用了。
下面贴出访问网站时可能遇到的问题及解决思路
1. 500 Internal Server Error
一般是php部分执行的时候出错了,翻看php-fpm 的error log以定位错误。
2. 403 Forbidden
可能是访问了一个文件夹,但是又没有开启autoindex(自动列出文件夹下的所有内容),于是被nginx禁止。
有可能在访问网站根目录时出现这个情况,请检查 ‘location /’ 块内的tryfiles有没有删去 "$uri/"。
3. 502 Gateway Error
nginx找不到php-fpm 服务,可能是php-fpm没开或者 ‘location php’ 块内的 fastcgi_pass 未正确填写。
Linux 配置 nginx + php的更多相关文章
- Linux配置Nginx+Tomcat负载均衡
cd /usr/local/tomcat1/webapps/ROOT/ tar -zxvf nginx-1.14.2.tar.gz -C /usr/local 一.Linux配置Nginx 一.下载N ...
- 三、netcore跨平台之 Linux配置nginx负载均衡
前面两章讲了netcore在linux上部署以及配置nginx,并让nginx代理webapi. 这一章主要讲如何配置负载均衡,有些步骤在前两章讲的很详细了,所以这一章我就不会一个个截图了. 因为本人 ...
- Linux配置Nginx负载均衡
nginx配置负载均衡其实很简单,一直还以为负载均衡是个很高端人士玩的 首先先了解下负载均衡,假设一个场景,如果有1000个客户同时访问你服务器时,而你只有一台服务器的Nginx,且只有一个MySQL ...
- 为了解决linux配置Nginx 只能关闭防火墙才能访问的问题
使用Nginx和iptables做访问权限控制(IP和MAC) 之前配置的服务器,相当于对整个内网都是公开的,而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直 ...
- 在Linux配置Nginx web服务器步骤
系统环境:centos7 需要软件:nginx-1.3.16.tar.gz libevent-2.0.21-stable.tar.gz Pcre 和 pcre-devel nginx下载地址:h ...
- Linux 配置nginx
1.首先安装依赖包: # yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre ...
- linux配置nginx
相关命令: nginx -s reload :修改配置后重新加载生效 nginx -s reopen :重新打开日志文件nginx -t -c /path/to/nginx.conf 测试ngin ...
- 虚拟机linux配置nginx 为什么win7通过Ip访问不到
第一步,你应该先检查网络win机ping linux机,通了进行下一步第二步,检查端口netstat -antl | grep 你开启的服务端口比如你开了http,那就是80端口或者你自定义的端口,我 ...
- Linux配置Nginx,MySql,php-fpm开机启动的方法
一. Nginx 开机启动 1.在/etc/init.d/目录下创建脚本 vim /etc/init.d/nginx 2.编写脚本内容 (将以下复制进去相应改动安装路径) 1 2 3 4 5 6 7 ...
随机推荐
- CCNA一些要点
考试范围: TK640-801(Cisco Certified Network Associate 640-801 ICND Course Notes). 信息单位: 1Byt ...
- Python3标准库(二) re模块
正则表达式(Regular Expression)是字符串处理的常用工具,通常被用来检索.替换那些符合某个模式(Pattern)的文本.很多程序设计语言都支持正则表达式,像Perl.Java.C/C+ ...
- python uzip
import zipfile import osdef un_zip(file_name): """unzip zip file""" zi ...
- vs2012下安装Cocos2d-x模板问题
今天想開始学Cocos2d-x.于是依据书本的提示到网上去下载了所需的安装包.我下载的cocos2d-x版本号是2.2.3.在下载完毕之后依照书中的步骤对其环境进行配置.在搞到模板安装这一步,发现找不 ...
- C# TextBox改变高度的方法(转载)
最近在做C# Winform项目,需要有一个能动态调整大小的Textbox,并且要是单行的.试了几次,单行模式的Textbox不能直接改高度.于是搜索了一下,整理出几个改变高度的方法. 1.将Text ...
- HDU 5073 数学题
题目传送门 http://acm.hdu.edu.cn/showproblem.php?pid=5073 这道题RE了好多发啊囧,RE到精神不振. Galaxy的质心并不是一成不变的,随着一些星球的移 ...
- [Codeforces 1037D] Valid BFS?
[题目链接] http://codeforces.com/problemset/problem/1037/D [算法] 首先求出每个点的父节点 , 每棵子树的大小 然后判断BFS序是否合法即可 时间复 ...
- P2465 [SDOI2008]山贼集团 dp
这个题是一道树形dp+状压dp二合一,先预处理每种组合会有什么额外的费用,然后在树上dp就行了. 题干: 题目描述 某山贼集团在绿荫村拥有强大的势力,整个绿荫村由N个连通的小村落组成,并且保证对于每两 ...
- P3199 [HNOI2009]最小圈 01分数规划
裸题,第二个权值是自己点的个数.二分之后用spfa判负环就行了. 题目描述 考虑带权的有向图G=(V,E)G=(V,E)G=(V,E)以及w:E→Rw:E\rightarrow Rw:E→R,每条边e ...
- securecrt中vim行号下划线问题及SecureCRT里root没有高亮的设置,修改linux终端命令行颜色
背景:在用raspberry用SecureCRT下的vim打开文件时出现用set nu时行有下划线,于是找了下解决办法,如下:vim行号下划线问题在vim中发现开启显示行号(set number) ...