lnmp 支持THINKPHP设置方法

1.修改php.ini文件支持pathinfo模式

php配置文件:/usr/local/php/etc/php.ini

找到:cgi.fix_pathinfo=0
更改为:cgi.fix_pathinfo=1

重启nginx:

/root/lnmp restart

2.修改对应需要支持网站vhost文件:

地址:/usr/local/nginx/conf/vhost/

原文件 这块注释或删除掉:

#location ~ .*\.(php|php5)?$
		#	{
		#		try_files $uri =404;
		#		fastcgi_pass  unix:/tmp/php-cgi.sock;
		#		fastcgi_index index.php;
		#		include fcgi.conf;
		#	}

替换为:

location ~ \.php {  
                    #fastcgi_pass 127.0.0.1:9000;   
                    #fastcgi_pass unix:/dev/shm/php-cgi.sock;   
                    fastcgi_pass  unix:/tmp/php-cgi.sock;  
                    fastcgi_index index.php;  
                    include fastcgi.conf;  
                    set $real_script_name $fastcgi_script_name;  
                    if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {  
                    set $real_script_name $1;  
                    set $path_info $2;  
                }  
                    fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;  
                    fastcgi_param SCRIPT_NAME $real_script_name;  
                    fastcgi_param PATH_INFO $path_info;  
                }  	
		location / {  
					if (!-e $request_filename){  
					rewrite ^/(.*)$ /index.php?s=/$1 last;  
        }  
    }  

保存后测试正确性:

/usr/local/nginx/sbin/nginx -t

平滑重启nginx:

/usr/local/nginx/sbin/nginx -s reload

ThinkPHP 的文件配置

1.文件配置的流程:

惯例配置->项目配置->调试配置->分组配置->扩展配置->动态配置

2.惯例配置文件:

目录:Conf\convention.php

惯例配置文件会被系统自动加载,无需在项目中进行加载

新版部分惯例配置的参数已经分离出来纳入了行为扩展的属性参数

3.项目配置文件:

目录:Conf\config.php

在项目配置文件里面除了添加内置的参数配置外,还可以额外添加项目需要的配置参数

4.调试配置文件:

目录:Conf\debug.php

‘APP_STATUS’ => ‘debug’ //应用调试模式状态

自动加载配置目录中的debug.php文件并和系统项目配置文件以及系统调试配置文件合并

‘APP_STATUS’ => ‘test’ //应用测试模式状态

系统会自动尝试加载项目配置目录下面的test.php 配置文件,可以在test配置文件中改变相关设置,例如改变测试数据库的连接信息等等。

关闭调试模式后,项目的调试配置文件即刻失效

5.分组配置文件:

目录:项目配置目录/分组名称/config.php

启用分组:

‘APP_GROUP_LIST’ => ‘Home,Admin’,//项目分组设定 目录:Conf/Home/config.php

‘DEFAULT_GROUP’ => ‘Home’//默认分组 目录:Conf/Admin/config.php

分组配置文件仅对当前分组有效,分组名称区分大小写,必须和定义的分组名一致

 

6.读取配置

使用C方法读取:

c(‘参数名称’) //获取已经设置的参数值

如C(‘APP_STATUS’) 可以读取到系统的调试模式的设置值

如果APP_STATUS没有设置,那么返回空

C方法同样可以用于读取二维配置

如:C(‘USER_CONFIG.USER_TYPE’)//获取用户配置中的用户类型设置

C方法可以在任何地方读取任何配置,都是全局有效的

 

7.动态配置:

使用用c方法动态配置一些参数:

C(‘参数名称’,’新的参数值’)

如动态改变数据缓存的有效期:

C(‘DATA_CACHE_TIME’,’60’);

二维数组的读取和设置:

获取已经设置的参数:C(‘USER_CONFIG.USER_TYPE’);

设置新的参数:C(‘USER_CONFIG.USER_TYPE’,‘1’);

C函数支持配置保存功能:

C($array,’name’) //把批量设置的配置参数列表保存到name标识的缓存数据中

C(”,’name’)//或C(null,’name’) 读取name标识的缓存配置数据到当前配置数据中,合并

 

8.扩展配置文件:

修改后实时生效

‘LOAD_EXT_CONFIG’ => ‘user,db’, // 加载扩展配置文件

项目设置了加载扩展配置文件user.php 和db.php分别用于用户配置和数据库配置,那么会自动加载项目配置目录下面的配置文件Conf/user.php和Conf/db.php。

默认情况下,扩展配置文件中的设置参数会并入项目配置文件中。也就是默认都是一级配置参数

user.php:

//用户配置文件
return array(
‘USER_TYPE’ => 2, //用户类型
‘USER_AUTH_ID’ => 10, //用户认证ID
‘USER_AUTH_TYPE’ => 2, //用户认证模式
);.

最终获取用户参数的方式是 C(‘USER_AUTH_ID’);

ThinkPHP 开发入口文件

入口文件中主要包括:

  • 定义框架路径、项目路径和项目名称(可选)
  • 定义调试模式和运行模式的相关常量(可选)
  • 载入框架入口文件(必须)

1.在系统目录下拷贝ThinkPHP目录。

2.新建index.php文件,增加如下内容:

[cce_php]
<?php 
	//加载框架入口文件
 require './ThinkPHP/ThinkPHP.php';
 ?>
[/cce_php]

系统自动生成如下目录:

在linux或unix下需要目录有可写权限

3.可以在入口文件中加入新的系统或应用常量如:

define(‘MODE_NAME’,’cli’)

4.入口文件并不一定是index.php文件,可以为不同的项目建立不同的入口文件,比如前台是index.php,后台是admin.php

5.项目目录功能:

如果需要把index.php移动到App目录的外面,只需要如下定义就可以了

[cce]
//定义项目名称
    define('APP_NAME', 'App');
    //定义项目路径
    define('APP_PATH', './App/');
    //加载框架入文件
    require './App/ThinkPHP/ThinkPHP.php';
[/cce]

APP_NAME 项目名称,如果项目直接部署在根目录下,那么项目名称为空

APP_PATH 项目路径以/ 结束,是指common,lib目录所在的位置

6.部署目录:

推荐的部署目录结构:

如果采用分组模块可以简化为一个目录:

模板文件还是放到项目的Tpl目录.

图片 JS 和CSS统一放到网站的公共目录Public下面,分Images、Js和Css子目录存放

如果有可能的话,甚至也可以把这些资源文件单独放一个外部的服务器远程调用,并进行优化

安全:系统目录和项目目录可以放到非WEB访问目录下面,web目录只需放Public公共目录和入口文件

7.编译缓存:

默认在app/runtime目录下会生成以_runtime.php为结尾的编译缓存文件,

在改变环境后需要将这些文件删除掉。

在入口文件中改变编译缓存文件的目录(需要目录有可写权限):

define(‘RUNTIME_PATH’,’./App/temp/’)

自定义缓存文件名:

define(‘RUNTIME_FILE’,’./App/temp/runtime_cache.php’)

替换入口文件为编译缓存文件:

require ‘./App/Runtime/_runtime.php’

8.调试模式:

在开发阶段始终开启调试模式,可以方便发现隐患问题

开启方法在入口文件中加入:

define(‘APP_DEBUG’,’true’)

进入到生产环境后可以删除此命令

调试模式的优势:

1.开启日志记录

2.关闭模板缓存

3.记录sql日志

4.关闭字段缓存

5.严格检查文件大小写

 

 

ThinkPHP 常用规范

1.目录结构

2.命名规范

类:以.class.php为后缀 ,首字母大写,驼峰法命名(DbMysql.class.php)

调用时大小写要一致

类名和文件名一致

函数:以.php为后缀,以小写字母和下划线方式(get_client_ip.php)

首字母小写或以下划线开头

方法:驼峰法命名,首字母小写或以下划线开头(getUserName,_parseType)

属性:驼峰法命名,首字母小写或以下划线开头(getUserName,_parseType)

常量:大写字母和下划线命名

配置参数:大写字母和下划线命名(HTML_CACHE_ON)

语言变量:大写字母和下划线命名(HTML_CACHE_ON)

变量:大写,小写,下划线,随意

模板:默认为.html文件,可以更改

数据表和字段:以小写加下划线方式命名,字段名不能以下划线开头(think_user 表和 user_name字段)

系统编码:默认为utf-8

3开发流程: