zoukankan      html  css  js  c++  java
  • 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 啥啥啥的块。

    这里有几个配置非常重要

    1 fastcgi_pass                    unix:/var/run/php5-fpm.sock;
    2 fastcgi_index                   index.php;
    3 fastcgi_split_path_info         ^(.+.php)(.*)$;
    4 include                         /etc/nginx/fastcgi_params;
    5 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 未正确填写。

  • 相关阅读:
    搭建vue项目脚手架
    vue项目中的iconfont图标下载及配置
    vue-awesome-swiper 轮播图的使用
    IDEA自动生成Mapper和实体文件
    云服务器通过IP如何访问项目
    社保,步入社会的第一步
    Memcached安装与启动
    IDEA提示非法字符,你不懂的UTF-8
    MyEclipse导入eclipse的web项目,将WebRoot切换为WebContent
    Myeclipse2017删除tomcat后,项目全部报错的解决办法
  • 原文地址:https://www.cnblogs.com/makejeffer/p/7400539.html
Copyright © 2011-2022 走看看