Ubuntu配置Nginx虚拟主机和支持ThinkPHP

时间:2023-03-10 04:02:18
Ubuntu配置Nginx虚拟主机和支持ThinkPHP

【Nginx配置虚拟主机】

每一个

server {

listen       80;

        server_name  www.a.com;

.....

}

就表示一台虚拟域名,

然后对应的,在 /etc/hosts 修改:

vim
 /etc/hosts

Ubuntu配置Nginx虚拟主机和支持ThinkPHP

-------------------------------------------------------------------------------

【/usr/local/server/nginx/conf/nginx.conf】注意提前备份一份

#user  nobody;

worker_processes  1;



#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;



#pid        logs/nginx.pid;





events {

    worker_connections  1024;

}





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"';



    #access_log  logs/access.log  main;



    #da kai mu lu , By renxing

    autoindex on;

    autoindex_exact_size off;

    autoindex_localtime on;





    sendfile        on;

    #tcp_nopush     on;



    #keepalive_timeout  0;

    keepalive_timeout  65;



    #gzip  on;



    server {

        listen       80;

        server_name  localhost;



        #charset koi8-r;



        #access_log  logs/host.access.log  main;



        location / {

            root   /usr/local/server/nginx/html/qgzs/app;
  
##定位项目到指定目录

            index  index.html index.htm index.php;

        }



        #error_page  404              /404.html;



        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }



        # proxy the PHP scripts to Apache listening on 127.0.0.1:80

        #

        #location ~ \.php$ {

        #    proxy_pass   http://127.0.0.1;

        #}



        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #



##配置nginx支持thinkphp的 PATHINFO 模式

location /usr/local/server/nginx/html/qgzs/app {  

    index index.php;  

    if (!-e $request_filename) {  

       
rewrite ^/test/tp/(.*)$ /test/tp/index.php/$1 last;  

        break;  

    }  





location ~ .+\.php($|/) 

    set $script $uri;  

    set $path_info "/";  

    if ($uri ~ "^(.+\.php)(/.+)") {  

         
 set $script     $1;  

           
set $path_info  $2;  

    }   

        

   
 root   /usr/local/server/nginx/html/qgzs/app;

     fastcgi_pass   127.0.0.1:9000;

     fastcgi_index index.php?IF_REWRITE=1;  

     fastcgi_param PATH_INFO $path_info;  

     fastcgi_param SCRIPT_NAME $script;  

   
 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

   
 include        fastcgi_params;

}



##END配置





        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /\.ht {

        #    deny  all;

        #}

        }





    # another virtual host using mix of IP-, name-, and port-based configuration

    #

    #server {

    #    listen       8000;

    #    listen       somename:8080;

    #    server_name  somename  alias  another.alias;



    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}





    # HTTPS server

    #

    #server {

    #    listen       443 ssl;

    #    server_name  localhost;



    #    ssl_certificate      cert.pem;

    #    ssl_certificate_key  cert.key;



    #    ssl_session_cache    shared:SSL:1m;

    #    ssl_session_timeout  5m;



    #    ssl_ciphers  HIGH:!aNULL:!MD5;

    #    ssl_prefer_server_ciphers  on;



    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}



}