乐趣区

关于php:php项目下nginx的配置

  • mac 中应用 brew 装置的软件包都寄存在 /usr/local/cellar 目录下
  • 软件的配置文件寄存在 /usr/local/etc 目录下,须要在该目录下进行配置文件的批改
  • 我的项目服务器的寄存目录:/usr/local/var,在该文件夹下寄存我的项目文件以及日志文件
  • 启动 php:

    • 形式一:间接在 /usr/local/cellar/php 版本 /sbin 目录下应用./php-fpm 启动
    • 形式二:在 /usr/local/cellar/php 版本 /sbin 目录下应用 nohup ./php-fpm > a.log & 启动,这种启动形式启动后在后盾运行,并且会打印日志到 a.log 文件
  • nginx 配置:

    • 配置日志文件:

      • 在 http 下放开 log_format 该项
      • 批改 access\_log、error\_log 目录为 /usr/local/var/log/nginx 下对应的 log 文件门路
      • 批改 location 对应的 root 目录为我的项目下的 public 目录,两处
      • 放开 fastcgi_pass、fastcgi_index、fastcgi_param 和 include 四项
      • 在 server 中的 location 下增加如下配置

        if (!-e $request_filename) {rewrite ^/index.php(.*)$ /index.php?s=$1 last;
                rewrite ^(.*)$ /index.php?s=$1 last;
                break;
            }

        留神:if 后边必须有一个空格,否则不失效

      • nginx 服务命令:

        * 启动:nginx
        * 敞开:nginx -s stop
        * 重启:nginx -s reload
    • nginx 配置启动后存在的问题:

      • 找不到 log 文件:这种问题很显著是 log 文件遗记配置或者门路配置的不正确,须要对 error_log 和 access_log 批改配置,log 文件寄存在 /usr/local/var/log/nginx 目录下
      • 应用 localhost:8080/a.php 拜访 a.php 文件时显示找不到该文件,这个谬误可能由三种起因造成:

        • 起因一:没有启动 php 服务,须要开启 php,参照上边的两种启动形式
        • 起因二:如果 php 服务曾经开启,仍然显示找不到文件,则须要批改 nginx 配置,在 nginx.conf 文件中批改
        fastcgi_param SCRIPT_FILENAME/scripts$fastcgi_script_name; 替换成 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;~~~~
        • 起因三:没有拜访权限,应用 chmod 777 我的项目文件目录设置文件夹的拜访权限
        • 重启 nginx 查看是否能够失常拜访
退出移动版