当前位置: 首页 > 后端技术 > PHP

php项目下nginx的配置

时间:2023-03-29 19:12:55 PHP

1、phpmac中brew安装的目录和软件包存放在/usr/local/cellar目录下。软件配置文件存放在/usr/local/etc目录下,需要修改该目录下的配置文件项目服务器的存放目录:/usr/local/var,项目文件和日志文件存放在该目录下文件夹启动php:方法一:直接在/usr/local/cellar/phpversion/sbin目录下使用./php-fpm方法二:使用nohup./php-fpm>a.log&在/usr/local/cellar/php版本/sbin目录。该启动方式启动后在后台运行。并且会把日志打印到a.log文件中2.nginx配置:(1)、单项配置单项配置可以直接在nginx.conf中配置释放http下的log\_format来修改access\_log,error\_log目录就是/usr/local/var/log/nginx下对应的日志文件路径。修改location对应的根目录为工程下的public目录,放开fastcgi\_pass、fastcgi\_index、fastcgi\_param和include两处在server的location下添加如下配置if(!-e$request_filename){最后重写^/index.php(.*)$/index.php?s=$1;重写^(.*)$/index.php?s=$1最后;休息;}注意:if后面一定要有空格,否则不生效(2)。多项目配置在只有一两个项目的时候可以直接在nginx.conf中配置,比较方便。当项目较多时,如果将所有项目中的nginx配置都放在nginx.conf文件中,不利于管理和维护。因此,当项目较多时,需要拆分不同的项目配置文件,在nginx.conf文件末尾有一个includeservers/*;这行表示nginx可以从servers/*读取配置文件,所以不同项目的配置文件要放在这个文件夹下,文件夹名任意,不一定是servers,关闭nginx.conf文件,在同级目录下创建这个文件夹.默认情况下,nginx没有这个文件夹。进入创建项目配置文件的文件夹,文件名以.conf结尾,将nginx.conf中server部分的内容复制到新建的配置文件中,修改端口号、error\_log、access\_log路径,保存退出修改nginx。conf中的两个根路径可以一直保持到项目所在路径的上层,保存退出。重启nginx看看是否生效。#####不同项目的配置文件内容server{listen8082;服务器名称本地主机;#charsetkoi8-r;access_log/usr/local/var/log/nginx/food.mall.access.logmain;error_log/usr/local/var/log/nginx/food.mall.error.log;##注意:错误的级别不是主要位置/{root/Users/apple/workplace/food_mall_server/public;indexindex.htmlindex.htm;if(!-e$request_filename){重写^/index.php(.*)$/index.php?s=$1last;重写^(.*)$/index.php?s=$1最后;休息;}}#error_page404/404.html;#将服务器错误页面重定向到静态页面/50x.html#error_page500502503504/50x.html;location=/50x.html{根html;}#将PHP脚本代理到侦听127.0.0.1:80的Apache##location~\.php${#proxy_passhttp://127.0.0.1;#}#将PHP脚本传递给监听127.0.0.1:9000的FastCGI服务器#location~\.php${root/Users/apple/workplace/food_mall_server/public;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;包括fastcgi_params;}#拒绝访问.htaccess文件,如果Apache的文档根目录#与nginx的根目录一致##location~/\.ht{#}deny}(3),nginx命令和配置问题nginx服务命令:启动:nginx关闭:nginx-sstop重启:nginx-sreloadnginx配置启动后出现的问题:logfilenotfound:这种问题很明显忘记配置log文件或者路径配置不对。需要修改error\_log和access\_log的配置。日志文件存放在/usr/local/var/log/nginx目录下,使用localhost:8080/a.php访问一个.php文件时显示找不到文件。这个错误可能是三种原因造成的:原因一:php服务还没有启动,需要启动php。参考上面两种启动方式。原因2:如果已经启动了php服务,仍然显示找不到文件,需要修改nginx配置,修改nginx.conf文件中的fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;替换为fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;原因三:没有访问权限,使用chmod777项目文件目录设置文件夹访问权限重启nginx看是否可以正常访问