Nginx配置ThinkPHP和Laravel虚拟主机

ThinkPHP

server {
    listen 443 ssl;
    server_name abc.com;
    root /var/www/abc;

    ssl on;
    ssl_certificate     /etc/nginx/ssl/abc.pem;
    ssl_certificate_key /etc/nginx/ssl/abc.pem; 

    index index.php;

    location / {
        #ThinkPHP REWRITE支持
        if (!-e  $request_filename) {
            rewrite ^/index.php(.*)$ /index.php?s=$1 last;
            rewrite ^/(.*)$ /index.php?s=$1 last;
        }

    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log /var/log/access.log;
    error_log  /var/log/error.log error;


    location ~ /.git {
      return 404;
    }

    location ~ .php$ {
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass   127.0.0.1:9000; 
        #fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }   

    location ~ /.ht {
        deny all;
    }   
}
这里配置的是HTTPS,如果想配置HTTP的,只需要将端口改成80,然后去掉证书相关配置即可

Laravel

server {
    listen 443;
    server_name  abc.com.cn;
    root /var/www/abc/public;

    ssl on;
    ssl_certificate     /etc/nginx/ssl/abc.cn.pem;
    ssl_certificate_key /etc/nginx/ssl/abc.cn.pem;

    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log /var/log/nginx/abc-access.log;
    error_log  /var/log/nginx/abc-error.log debug;


    location ~ .php$ {
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        include fastcgi_params;
    }

    location ~ /.ht {
        deny all;
    }
}
原文地址:https://www.cnblogs.com/alin-qu/p/5746608.html