设为首页 收藏本站
查看: 756|回复: 0

[经验分享] LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2

[复制链接]

尚未签到

发表于 2017-12-23 19:57:58 | 显示全部楼层 |阅读模式
DSC0000.jpg

  你是否遇见过:安装LNMP1.3环境后,运行ThinkPHP 3.2,只能打开首页,不能访问控制器,报404错误。
  按照以下3步设置,即可解决。
  ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,系统默认的PATHINFO模式。
  LNMP1.3 一键安装完成后,默认支持REWRITE,需要手动开启 PATHINFO。
  第1步修改:php.ini文件
  位置:/usr/local/php/etc/php.ini
  搜索查找到:cgi.fix_pathinfo 配置项,默认为0,修改为1,开启 pathinfo 选项。
  如图1:
DSC0001.png

  第2步修改:nginx的配置文件 (笔者使用的是虚拟域名配置文件:/usr/local/nginx/conf/vhost/*.conf)
  找到 server 的配置选项:
  默认只有 include enable-php.conf,请注释掉;
  然后添加一行:include enable-php-pathinfo.conf
  如:
  

1  
2
  
3
  

  

  

#error_page   404   /404.html;  
#include enable-php.conf;             # 注册这一行
  
include enable-php-pathinfo.conf;     # 加入这行
  

  如图2:
DSC0002.png

  继续修改,在添加下面配置信息:
  

1  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  

  

  

location ~ .php  
{
  
set $path_info "";
  
set $real_script_name $fastcgi_script_name;
  
#如果地址与引号内的正则表达式匹配
  
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
  
#将文件地址赋值给变量 $real_script_name
  
set $real_script_name $1;
  
#将文件地址后的参数赋值给变量 $path_info
  
set $path_info $2;
  
}
  

  
#配置fastcgi的一些参数
  
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
  
fastcgi_param SCRIPT_NAME $real_script_name;
  
fastcgi_param PATH_INFO $path_info;
  
}
  

  在Nginx,可以通过在Nginx.conf中配置转发规则实现,解决其他不支持PATHINFO的WEB服务器环境。
  #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
  

1  
2
  
3
  
4
  
5
  
6
  
7
  

  

  

if (!-e $request_filename)  
{
  
#地址作为将参数rewrite到index.php上。
  
rewrite ^/(.*)$ /index.php/$1;
  
#若是子目录则使用下面这句,将subdir改成目录名称即可。
  
#rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
  
}
  

  官方出处:http://document.thinkphp.cn/manual_3_2.html#url_rewrite
  第3步:重启LNMP环境,配置生效。
  最终效果测试:
  1. 去掉了 index.php
  2. 可以访问控制器下的方法。
  3. U 方法正确。
  如图3:
DSC0003.png

  参考:笔者配置文件示例:
  

1  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  
18
  
19
  
20
  
21
  
22
  
23
  
24
  
25
  
26
  
27
  
28
  
29
  
30
  
31
  
32
  
33
  
34
  
35
  
36
  
37
  
38
  
39
  
40
  
41
  
42
  
43
  

  

  

server  
{
  
listen 80;
  
#listen [::]:80;
  
server_name tp32.com;
  
index index.html index.htm index.php default.html default.htm default.php;
  
root  /home/wwwroot/tp32.com;
  

  
include other.conf;
  
#error_page   404   /404.html;
  
#include enable-php.conf;
  
include enable-php-pathinfo.conf; #加入这行
  

  

  
location ~ .php
  
{
  
set $path_info "";
  
set $real_script_name $fastcgi_script_name;
  
#如果地址与引号内的正则表达式匹配
  
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
  
#将文件地址赋值给变量 $real_script_name
  
set $real_script_name $1;
  
#将文件地址后的参数赋值给变量 $path_info
  
set $path_info $2;
  
}
  

  
#配置fastcgi的一些参数
  
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
  
fastcgi_param SCRIPT_NAME $real_script_name;
  
fastcgi_param PATH_INFO $path_info;
  
}
  

  
#如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
  
if (!-e $request_filename)
  
{
  
#地址作为将参数rewrite到index.php上。
  
rewrite ^/(.*)$ /index.php/$1;
  
#若是子目录则使用下面这句,将subdir改成目录名称即可。
  
#rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
  
}
  

  
access_log  /home/wwwlogs/tp32.com.log;
  
}
  

  入口文件index.php
  

1  
2
  

  

  

//nginx环境下防止U方法输出错误  
define('__APP__', '');
  

  参考:
  http://www.thinkphp.cn/topic/3138.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-427289-1-1.html 上篇帖子: CentOS6.5+nginx+mysql+php(laravel)服务器环境搭建 下篇帖子: Nginx状态信息(status)配置及信息详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表