thinkphp3.2 nginx linux __PUBLIC__位置问题配置2017补充(二)

浏览:2015 发布日期:2017/08/22 分类:技术分享 关键字: thinkphp3.2+lnmp
LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2 (下篇)


ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,系统默认的PATHINFO模式。

LNMP1.3 一键安装完成后,默认支持REWRITE,需要手动开启 PATHINFO。

第1步修改:php.ini文件
位置:/usr/local/php/etc/php.ini

搜索查找到:cgi.fix_pathinfo 配置项,默认为0,修改为1,开启 pathinfo 选项。


第2步修改:nginx的配置文件 (笔者使用的是虚拟域名配置文件:/usr/local/nginx/conf/vhost/*.conf)

找到 server 的配置选项:

默认只有 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;
}


第3步:重启LNMP环境,配置生效。

2017年 第四步:更新

index.php
新增
define('__APP__', '');
define('__ROOT__', '');
这样样式就会正常加载
最佳答案
评论( 相关
后面还有条评论,点击查看>>