1. 程式人生 > >thinkphp3.2在ubantu上的nginx伺服器下,path_info模式的部署

thinkphp3.2在ubantu上的nginx伺服器下,path_info模式的部署

要想是pathinfo模式的話,首先需要再配置檔案中設定:'URL_MODEL'=>1,

然後,ngixn配置檔案為:

server {
        listen 80;
        server_name *.mobissp.com;
        
        if ($http_host ~* "^(.*?)\.mobissp\.com$") {    #正則表示式
                set $domain $1;                     #設定變數
        }
        
        
        location / {
            if ($domain ~* "ads") {
               proxy_pass http://127.0.0.1:9001;      #域名中有ads,轉發到9001埠
            }
            if ($domain ~* "dashboard") {
               proxy_pass http://127.0.0.1:9002;      #域名中有dashboard,轉發到9002埠
            }
 
            tcp_nodelay     on;
            proxy_set_header Host            $host;
            proxy_set_header X-Real-IP       $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            #以上三行,目的是將代理伺服器收到的使用者的資訊傳到真實伺服器上
            
            root   html;
            index  index.html index.htm;            #預設情況
        }
    }

 

server {
        listen 9001;
        server_name 127.0.0.1;
        index index.php;
        root /data/project/;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        #include /mnt/project/.htaccess;
        
        location / {
                #index index.php;
                #ThinkPHP REWRITE支援
                #if (!-e  $request_filename) {
                #    rewrite ^/(.*)$ /index.php?s=$1 last;
                #}
                
                if (!-e $request_filename) {
                   #rewrite  ^(.*)$  /index.php?s=$1  last;
                   rewrite  ^/(.*)$  /index.php/$1  last;
                }
       }
        
        location ~ \.php {
            root /data/project/;
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            
            set $path_info "";
            set $real_script_name $fastcgi_script_name;
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                set $real_script_name $1;
                set $path_info $2;
            }
            
            fastcgi_param SCRIPT_NAME $real_script_name;
            fastcgi_param PATH_INFO $path_info;    
        }
    }

 

server {
        listen 9002;
        server_name 127.0.0.1;
        #server_name dashboard.mobissp.com;
        index index.php;
        root /data/mobissp/mobissp_cmn/;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        #include /mnt/project/.htaccess;
    access_log /data/log/nginx/access.log;
    error_log /data/log/nginx/error.log;
        
        location / {                
                if (!-e $request_filename) {
                   #rewrite  ^(.*)$  /index.php?s=$1  last;
                   rewrite  ^/(.*)$  /index.php/$1  last;
                }
       }
        
        location ~ \.php {
            root /data/mobissp/mobissp_cmn/;
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            
            set $path_info "";
            set $real_script_name $fastcgi_script_name;
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                set $real_script_name $1;
                set $path_info $2;
            }
            
            fastcgi_param SCRIPT_NAME $real_script_name;
            fastcgi_param PATH_INFO $path_info;    
        }
    }

重啟ngixn和php-fpm(php-fpm也一定要重啟,否則配置有可能會無效);

關於php-fpm的重啟方法:百度的資料如下:

  • php中php-fpm的重啟、終止操作命令:檢視php執行目錄命令:whichphp/usr/bin/php檢視php-fpm程序數:psaux|grep-cphp-fpm檢視執行記憶體/usr/bin/php -i|grepmem重啟php-fpm/etc/init.d/php-fpmrestart在phpinfo()輸出內容可以看到php相關配置。LoadedConfigurationFile /etc/php.ini==================
  • php 中php-fpm 的重啟、終止操作命令:

    檢視php執行目錄命令:
    which php
    /usr/bin/php

    檢視php-fpm程序數:
    ps aux | grep -c php-fpm

    檢視執行記憶體
    /usr/bin/php  -i|grep mem

    重啟php-fpm
    /etc/init.d/php-fpm restart

    在phpinfo()輸出內容可以看到php相關配置。
    Loaded Configuration File /etc/php.ini

    ==============================

    首先要找到php-fpm.conf配置檔案,檢視pid的配置路徑(不是安裝路徑),然後把下面對應的地方改掉才能正常執行。

    [[email protected] ~]# ps aux | grep php-fpm   
    root     11799  0.0  0.0 103248   880 pts/0    S+   13:51   0:00 grep --color php-fpm
    root     11973  0.0  0.0 417748   964 ?        Ss   Jun01   0:20 php-fpm: master process (/etc/php-fpm.conf)

    cat /etc/php-fpm.conf
    看到
    pid = /var/run/php-fpm/php-fpm.pid

    php-fpm 啟動:
    /usr/local/php/sbin/php-fpm
    php-fpm 關閉:
    kill -INT `cat /var/run/php-fpm/php-fpm.pid`
    php-fpm 重啟:
    kill -USR2 `cat /var/run/php-fpm/php-fpm.pid`

    檢視php-fpm程序數:
    ps aux | grep -c php-fpm

    =============================

    [[email protected] ~]# find / -name 'php-fpm' -type d
    /var/log/php-fpm
    /var/run/php-fpm

    用這個find命令查找出來的路徑是不對的

     which php
    /usr/bin/php

     

    shell指令碼重啟:

    #!/bin/bash
    # @create by jbxie 2014-02-10
    cat /opt/php-5.3.6p2/var/run/php-fpm.pid |xargs kill -USR2

     

     

    shell指令碼暫停:

    #!/bin/bash
    # @create by jbxie 2014-02-10
    cat /opt/php-5.3.6p2/var/run/php-fpm.pid |xargs kill -QUIT