thinkphp3.2部署nginx

853 阅读1分钟

新服务器配置的是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;
			}
		}

}

 

有好的建议,请在下方输入你的评论。