新服务器配置的是nginx服务器。
最近陆续的将之前apache服务器上的项目迁移到nginx上。
之前一些项目使用thinkphp3.2写的,在对项目进行迁移的时候有一些问题,记录一下。
关于thinkphp,没什么多说的,详情访问thinkphp.cn
Thinkphp3.2和thinkphp5是一样的,都是不支持nginx服务器的(我所谓的不支持是需要修改配置)
Thinkphp5部署nginx服务器请参考我另一篇文章《thinkphp5部署nginx》
开始正题:
第一步:
修改TP3.2的配置文件支持pathinfo模式
'URL_MODEL' => 2,
第二步:
找到php.ini(/usr/local/php/etc/php.ini)查看是否开启
cgi.fix_pathinfo 配置项,默认为0,修改为1,开启 pathinfo 选项。
第三步:
进行nginx重写(添加下面这写代码)
location ~ .php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } location / { #如果是二级目录就用 rewrite ^/文件夹名称/(.*)$ /index.php?s=/$1 last;) if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } }
文章最后,会展示网站域名配置文件。
第四步:(这一步可以省略,我没配置这个也好用了)
修改:nginx的配置文件 (/usr/local/nginx/conf/vhost/*.conf)
#include enable-php.conf; # 注释这一行 include enable-php-pathinfo.conf; # 加入这行
第五步:最重要
重启nginx服务器
重启php-fpm服务
我的thinkphp3.2项目的域名配置文件:
server { listen 80; server_name xxxxx.guanchao.site ; #填写你的域名 index index.html index.htm index.php; #默认打开页面 root "xxxxxxxxxxxxxxxxx"; #站点根目录 location ~ .php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } location / { #如果是二级目录就用 rewrite ^/文件夹名称/(.*)$ /index.php?s=/$1 last;) if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } }