thinkcmf的简单部署

感觉网上说的thinkcmf的安装部署不是很友好。现在记录一下我的部署。(只针对新手,老鸟一般都知道,不用往下看了)

1 去https://github.com/thinkcmf/thinkcmf 下载最新的代码。

下载解压后,会看到有一个public目录,默认这个目录是网站的根目录的。但我们一般会不会要这个目录,而是直接把里面的文件放根目录。 

开始是这样

thinkcmf的简单部署_第1张图片

新建一个thinkcmf目录,把除public目录外的文件都移动到thinkcmf下。然后把public里的所有文件移动到根目录。

最后目录如下:

thinkcmf的简单部署_第2张图片

2 接下来要要修改index.php里的代码。

// 定义CMF根目录,可更改此目录
define('CMF_ROOT', __DIR__ . '/../');

修改为

// 定义CMF根目录,可更改此目录
define('CMF_ROOT', __DIR__ . '/thinkcmf/');

这样,index.php入口文件就可以找到框架了。

为了安全考虑,你可以把thinkcmf移动到网站根目录外,这样可以提升安全系数。只是有些虚拟机不支持,就可以按我的这个目录结构来部署。目录名thinkcmf可以修改成你自己想要的。

访问网站域名就可以开始安装了,注意服务器要支持fileinfo和rewrite,不支持rewrite也可以安装,但是会比较麻烦,访问网站的时候要带上index.php这个入口文件名。

伪静态rewrite规则如下,apache的话,直接用.htacess里的规则就好了。 ngnix的用如下的规则

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

4 可以添加api应用代码

https://github.com/thinkcmf/thinkcmfapi

如果你需要api接口功能,访问上面的github下载源码,解压。

注意,按我上面的目录结构,需要把api目录名的文件全部放到thinkcmf目录。 把public目录下的所有文件放网站根目录。这样才能正常运行。不然按项目上的安装方法是不对的。为什么要这样,自己想一下吧。 

移动完文件后,修改根目录下的api/index.php(也就是直接解压后public/api/index.php)的入口地址。修改后的代码如下,修改的地方比较多,自己比较一下,主要是框架地址的目录部分要修改。


// +----------------------------------------------------------------------

// [ 应用入口文件 ]

// 调试模式开关
define("APP_DEBUG", true);

// 定义 APP 命名空间
define("APP_NAMESPACE", 'api');

// 定义CMF根目录,可更改此目录
define('CMF_ROOT', __DIR__ . '/../thinkcmf/');

// 定义应用目录
define('APP_PATH', CMF_ROOT . 'api/');

// 定义CMF目录
define('CMF_PATH', CMF_ROOT . '/simplewind/cmf/');

// 定义插件目录
define('PLUGINS_PATH', __DIR__ . '/../plugins/');

// 定义扩展目录
define('EXTEND_PATH', CMF_ROOT . '/simplewind/extend/');
define('VENDOR_PATH', CMF_ROOT . '/simplewind/vendor/');

// 定义应用的运行时目录
define('RUNTIME_PATH',CMF_ROOT.'/data/runtime/api/');

// 加载框架基础文件
require CMF_ROOT . '/simplewind/thinkphp/base.php';

// 执行应用
\think\App::run()->send();

nigix上还要添加支持api入口的伪静态规则 

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

ok,这样就部署好了,直接安装吧。

 

 

 

 

你可能感兴趣的:(thinkphp,php)