Centos7下的LNMP中配置Thinkphp5环境

Centos7下的LNMP中配置Thinkphp5环境

写之前先说一下自己的情况和遇到的问题:
1.首选,LNMP环境搭建完成(没有使用一键安装包,版本信息号在底部)
2.在/home/smartweb 下放入原始TP5文件(这里提供一下:https://pan.baidu.com/s/1jirlIJJ5m8sZTCdHR1WaXA 提取码:nuiv)
3.在WAMP的集成环境下我测试过,访问http://localhost/tp5/public/index.php/index/index/index 是没有问题的,不放心的我又在控制器里写了个别的方法,然后访问也是正常的。好的,保证TP5的文件ok!
4.然后,先什么都不改,直接把TP5文件放到目录下访问http://47.101.207.142/tp5/public 这个时候是可以看到TP5的欢迎界面的,这个时候可以高兴一下,然后再次访问http://47.101.207.142/tp5/public/index.php/index/index/index 就会报错500 这个时候才是噩梦的开始,也是我们必然会遇到的问题
5.然后,下面的这些解决方式很详细的解释了怎么处理,完成之后就可以正常访问了

第一步:修改php.ini中的cgi.fix_pathinfo = 1(之前是注释掉的,现在解开注释)

修改完成之后重启php-fpm:service php-fpm restart

第二步:修改nginx的默认文件(取决去你的默认nginx配置文件)

这是我修改之前的配置

location ~ \.php$ {
	fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include fastcgi_params;
}

修改之后的配置
location ~ \.php(.*)$ {
	fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
	fastcgi_index index.php;
	
	#这一句的作用是可以支持tp5的URL访问模式
	fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
	
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	
	#改的时候说这两句是真正支持index.php/index/index/index的pathinfo模式(自己测试的时候上面一句没加是不可以的)
	fastcgi_param  PATH_INFO  $fastcgi_path_info;
	fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
	
	include fastcgi_params;
}

修改完成nginx的配置文件之后重启nginx:service nginx restart  

注:这个时候你访问public/index.php/index/index/index 就可以正常访问TP5了

第三步:隐藏index.php

还是在你的nginx配置文件中进行操作

我刚开始的配置
location / {
	if (!-e $request_filename) {
		rewrite  ^/(.*)$  /index.php/$1  last;
		break;
	}
}

然后修改之后的配置
location / {
	if (!-e $request_filename) {
		#看了网上的很多都是让我改成 rewrite  ^/(.*)$  /index.php?s=$1  last; 我试过之后没用才这样改的
	
		rewrite ^/tps/public/(.*)$ /tps/public/index.php/$1 last;
		break;
	}
}

#需要配置到public下

        location / {
                if (!-e $request_filename) {
                        rewrite  ^(.*)$  /index.php?s=/$1  last;
#                       rewrite ^/tp5/public/(.*)$ /tp5/public/index.php/$1 last;
                        break;
                }
        }

注:记住修改完成之后重启nginx

以前一直是Apache下使用TP5,一直想在nginx中把环境搭建成功,今天终于完成了,其实还是同事帮助了很多,然后不同的版本对配置似乎也有着一定的影响,我把自己的版本也给贴上。

Centos版本号 Centos版本号!
nginx版本号
nginx版本号
PHP版本号
在这里插入图片描述
mysql版本号 在这里插入图片描述
最后!祝大家可以看到这个页面,然后顺利运行Thinkphp5!
Centos7下的LNMP中配置Thinkphp5环境_第1张图片

你可能感兴趣的:(ThinkPHP)