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.pidphp-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/phpshell指令碼重啟:
#!/bin/bash
# @create by jbxie 2014-02-10
cat /opt/php-5.3.6p2/var/run/php-fpm.pid |xargs kill -USR2shell指令碼暫停:
#!/bin/bash
# @create by jbxie 2014-02-10
cat /opt/php-5.3.6p2/var/run/php-fpm.pid |xargs kill -QUIT