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版本号
nginx版本号
PHP版本号
mysql版本号
最后!祝大家可以看到这个页面,然后顺利运行Thinkphp5!