为什么!!!我配过的服务器已经有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的更多相关文章

  1. Linux配置Nginx+Tomcat负载均衡

    cd /usr/local/tomcat1/webapps/ROOT/ tar -zxvf nginx-1.14.2.tar.gz -C /usr/local 一.Linux配置Nginx 一.下载N ...

  2. 三、netcore跨平台之 Linux配置nginx负载均衡

    前面两章讲了netcore在linux上部署以及配置nginx,并让nginx代理webapi. 这一章主要讲如何配置负载均衡,有些步骤在前两章讲的很详细了,所以这一章我就不会一个个截图了. 因为本人 ...

  3. Linux配置Nginx负载均衡

    nginx配置负载均衡其实很简单,一直还以为负载均衡是个很高端人士玩的 首先先了解下负载均衡,假设一个场景,如果有1000个客户同时访问你服务器时,而你只有一台服务器的Nginx,且只有一个MySQL ...

  4. 为了解决linux配置Nginx 只能关闭防火墙才能访问的问题

    使用Nginx和iptables做访问权限控制(IP和MAC)     之前配置的服务器,相当于对整个内网都是公开的,而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直 ...

  5. 在Linux配置Nginx web服务器步骤

    系统环境:centos7 需要软件:nginx-1.3.16.tar.gz   libevent-2.0.21-stable.tar.gz  Pcre 和 pcre-devel nginx下载地址:h ...

  6. Linux 配置nginx

    1.首先安装依赖包: # yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre ...

  7. linux配置nginx

    相关命令: nginx -s reload  :修改配置后重新加载生效 nginx -s reopen  :重新打开日志文件nginx -t -c /path/to/nginx.conf 测试ngin ...

  8. 虚拟机linux配置nginx 为什么win7通过Ip访问不到

    第一步,你应该先检查网络win机ping linux机,通了进行下一步第二步,检查端口netstat -antl | grep 你开启的服务端口比如你开了http,那就是80端口或者你自定义的端口,我 ...

  9. Linux配置Nginx,MySql,php-fpm开机启动的方法

    一. Nginx 开机启动 1.在/etc/init.d/目录下创建脚本 vim /etc/init.d/nginx 2.编写脚本内容 (将以下复制进去相应改动安装路径) 1 2 3 4 5 6 7 ...

随机推荐

  1. HDU 4869 Turn the pokers (2014多校联合训练第一场1009) 解题报告(维护区间 + 组合数)

    Turn the pokers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. delphi2010发送邮件—中文显示为乱码解决

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVsbG9fbXlob21l/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  3. SPOJ 15. The Shortest Path 最短路径题解

    本题就是给出一组cities.然后以下会询问,两个cities之间的最短路径. 属于反复询问的问题,临时我仅仅想到使用Dijsktra+heap实现了. 由于本题反复查询次数也不多,故此假设保存全部最 ...

  4. IEDA-maven引用本地jia包

    简单说下为啥用maven引用本地jar包:当在pom文件中配置需要引用了jar的坐标,但是maven引用不了(原因未知情况下),这种情况下就需要找开发提供相关依赖的的jar文件打成一个jar包发送过来 ...

  5. 《ASP.NET4 从入门到精通》学习笔记4

    第4部分诊断与插件 刚開始看这章的时候,真实一头雾水.不知道在讲什么.只是看了关于http pipeline之后.才了解相关说明. 因此对于这一章的学习,建议各位首先看看http pipeline然后 ...

  6. 使用-Wl直接向ld传递参数

    gcc -Wl, key1, value1, key2, value2, key3, value3 包括-Wl在内全部都是以逗号分隔. 上面等价于: ld key1=value1 key2=value ...

  7. ubuntu 截图工具 Shutter,设置快捷键 Ctrl+Alt+A

    系统设置 键盘 快捷键 自定义快捷键

  8. bzoj 4883 棋盘上的守卫 —— 基环树转化

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4883 首先,注意到每个点可横可竖,但花费一样: 所以考虑行列的交集,那么这个条件可以转化为行 ...

  9. end()与andSelf()

    end() 回到最近的一个"破坏性"操作之前.即,将匹配的元素列表变为前一次的状态. 如 果之前没有破坏性操作,则返回一个空集.所谓的"破坏性"就是指任何改变所 ...

  10. Python基础 — Matplotlib

    Matplotlib -- 简介         matplotlib是Python优秀的数据可视化第三方库:        matplotlib库的效果可参考官网:http://matplotlib ...