新服务器配置的是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;
}
}
}
有好的建议,请在下方输入你的评论。