nginx设置多php环境

nginx多种版本共存:

​ 1.源码编译的时候设置路径(根据需求设置--prefix的编译路径),建议编译完成后,建立一个service,方便使用system进行管理

​ 2.yum安装默认路径

怎么写配置文件呢?
  • 运行php程序之后,会在运行目录下生成一个.sock的文件,这个就类似于一个接口,你可以去调用它
  • 这里主要是以nginx为例的中间件,适应incule 引入对应的php配置文件-----include enable-phpxxx.conf,这里的xxx表示的是版本信息
  • 然后在include enable-phpxxxx.conf当中书写的内容如下:
# 本配置来自宝塔
location ~ [^/]\.php(/|$)  // 匹配nginx传递过来的以php结尾的文件
{
    try_files $uri =404;
    fastcgi_pass  unix:/tmp/php-cgi-72.sock;   // 你运行的php版本sock文件路径
    fastcgi_index index.php;      //php默认页
    include fastcgi.conf;    //fast-cgi配置文件
    include pathinfo.conf;  // fastcgi路径信息
}
fastcgi.conf文件内容
# 本配置来自宝塔
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;


# 上面的配置解释
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;#脚本文件请求的路径  
fastcgi_param  QUERY_STRING       $query_string; #请求的参数;如?app=123  
fastcgi_param  REQUEST_METHOD     $request_method; #请求的动作(GET,POST)  
fastcgi_param  CONTENT_TYPE       $content_type; #请求头中的Content-Type字段  
fastcgi_param  CONTENT_LENGTH     $content_length; #请求头中的Content-length字段。  
  
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name; #脚本名称   
fastcgi_param  REQUEST_URI        $request_uri; #请求的地址不带参数  
fastcgi_param  DOCUMENT_URI       $document_uri; #与$uri相同。   
fastcgi_param  DOCUMENT_ROOT      $document_root; #网站的根目录。在server配置中root指令中指定的值   
fastcgi_param  SERVER_PROTOCOL    $server_protocol; #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。    
  
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;#cgi 版本  
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;#nginx 版本号,可修改、隐藏  
  
fastcgi_param  REMOTE_ADDR        $remote_addr; #客户端IP  
fastcgi_param  REMOTE_PORT        $remote_port; #客户端端口  
fastcgi_param  SERVER_ADDR        $server_addr; #服务器IP地址  
fastcgi_param  SERVER_PORT        $server_port; #服务器端口  
fastcgi_param  SERVER_NAME        $server_name; #服务器名,域名在server配置中指定的server_name  
  
#fastcgi_param  PATH_INFO           $path_info;#可自定义变量  
  
# PHP only, required if PHP was built with --enable-force-cgi-redirect  
#fastcgi_param  REDIRECT_STATUS    200;  
  
在php可打印出上面的服务环境变量  
如:echo $_SERVER['REMOTE_ADDR'] 
nginx配置文件
server
{
    listen 80;
    listen 443 ssl http2;
    server_name xxxx.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root xxxxxx;
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    #https:
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /xxxxx/fullchain.pem;
    ssl_certificate_key    /xxxxxx/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    #主要的文件是在这里 
    # include enable-php-72.conf;
    
    # 除了以引用的方式,还可以直接把配置写在这里,但是就没有那么灵活了,主要是通过location标签来进行匹配解析php
    location ~ [^/]\.php(/|$)  // 匹配nginx传递过来的以php结尾的文件
    {
        try_files $uri =404;
        fastcgi_pass  unix:/tmp/php-cgi-72.sock;   // 你运行的php版本sock文件路径
        fastcgi_index index.php;      //php默认页
        include fastcgi.conf;    //fast-cgi配置文件
        include pathinfo.conf;  // fastcgi路径信息
    }
    
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /xxxxxx/www.xxxxxx.cn.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log off;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log off; 
    }
    access_log  /www/wwwlogs/xxxxxx.log;
    error_log  /www/wwwlogs/xxxxxxxxx.error.log;
}
分类: 暂无分类 标签: Linux中间件

评论

暂无评论数据

暂无评论数据

目录