关于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查看是否能够失常拜访

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理