nginx配置thinkphp5

≯℡__Kan透↙ 提交于 2020-01-03 01:56:53

nginx,php,tp框架版本:

nginx版本:
[root@z_centos nginx]# /usr/local/nginx/sbin/nginx -h
nginx version: nginx/1.13.9

tp5版本:
thinkphp 5.0.18

PHP版本:
[root@z_centos nginx]# php -v
PHP 7.2.3 (cli) (built: Mar  8 2018 14:43:32) ( ZTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.3, Copyright (c) 1999-2018, by Zend Technologies

usr/locol/nginx/conf/vhost/www.xxxx.com.conf 配置文件
主配置文件中使用 include ./vhost/*.conf; 引入即可

https 443端口配置项:

server {
        listen       443 ssl;
        server_name www.xxxx.com;
        set $root /usr/local/nginx/webroot/tp5/public;            
        ssl_certificate      /etc/letsencrypt/live/www.xxxx.com/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/www.xxxx.com/privkey.pem;
        ssl_session_timeout  5m;
        ssl_prefer_server_ciphers on;
        access_log  logs/www.myzb.pw.access.log  main;
     
     if ($http_user_agent ~* "qihoobot|Baiduspider|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") 
      { 
          return 403; 
      } 

        location ~ ..(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
        {
           root $root;
        }
        location / {
            root   $root;
            index  index.php index.html index.htm;
            if ( -f $request_filename) {
               break;
            }

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

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ .+\.php($|/) {
        set $script $uri;
            set $path_info "";
            if ($uri ~ "^(.+\.php)(/.+)") {
                set $script $1;
                set $path_info $2;
            }
        
            fastcgi_pass    unix:/var/run/www/php-cgi.sock;
            fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            fastcgi_param    SCRIPT_FILENAME    $root$fastcgi_script_name;
            include        fastcgi_params;
            
        }

        location ~ /\.(ht|svn|git) {
            deny  all;
        }
    }
http 80端口配置项:
server {
    listen       80;
    server_name tp510.manzb.top;
    set $root /usr/local/nginx/www/tp510/public;            
    access_log  logs/tp510.manzb.top.access.log  main;
        location ~ ..(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
        {
           root $root;
        }
    location / {
        root   $root;
        index  index.php index.html index.htm;
        if ( -f $request_filename) {
           break;
        }

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

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
    location ~ .+\.php($|/) {
             set $script $uri;
        set $path_info "";
        if ($uri ~ "^(.+\.php)(/.+)") {
            set $script $1;
            set $path_info $2;
        }
    
        fastcgi_pass    unix:/var/run/www/php-cgi.sock;
        fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param    SCRIPT_FILENAME    $root$fastcgi_script_name;
        include        fastcgi_params;
        
    }

    location ~ /\.(ht|svn|git) {
        deny  all;
    }
}

其中:fastcgi_pass之所以使用unix:/var/run/www/php-cgi.sock;配置参数,是因为:http://www.cnblogs.com/manzb/p/8875406.html

 

重启nginx时若出现了如下错误:

nginx: [emerg] unknown log format "proxy_log" in /usr/local/macports/etc/nginx/nginx.conf:147

解决办法:

打开nginx.conf,"main"错误是因为丢失了log_format选项,之前把他屏蔽掉了,修改之后问题解决。

http {    include       mime.types;    default_type  application/octet-stream;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!