## 如何在虚拟机部署 ThinkCMF5 ? 在 public/index.php 文件中有个常量CMF_ROOT; ``` // 定义CMF根目录,可更改此目录 define('CMF_ROOT', __DIR__ . '/../'); ``` 这个常量定义了 ThinkCMF根目录的地址,public目录是个例外,它是程序的 web 根目录,也就说这个目录可以随意调整,对有自己服务器的同学,可以直接把 public 目录当网站根目录,但对于虚拟机可能无法直接把 public 当网站根目录。 今天我们来说一下怎么在虚拟机部署 ThinkCMF5 ? 一般空间目录结构基本是这样: ``` wwwroot(或 www) logs data ... ``` 这时thinkcmf 默认的结构并不适用空间目录结构,因为空间的网站根目录是 wwwroot 或 www,这时我们就要对默认的 cmf 进行改造了,其实很简单。 我们可以 thinkcmf 放到 wwwroot 之外,比如放在空间根目录的 thinkcmf 目录里 ``` wwwroot(或 www) logs data ... thinkcmf app data public index.php ... simplewind ... ``` 然后把 public 目录的所有文件都移动到 wwwroot 目录下 ``` wwwroot(或 www) static upload index.php ... logs data ... thinkcmf app data public simplewind ... ``` 这时我们再改一下 index.php ``` // 定义CMF根目录,可更改此目录 define('CMF_ROOT', __DIR__ . '/../thinkcmf/');//NOTE 我改过了 ``` 下在完整 index.php 下如: ``` <?php // +---------------------------------------------------------------------- // | ThinkCMF [ WE CAN DO IT MORE SIMPLE ] // +---------------------------------------------------------------------- // | Copyright (c) 2013-2017 http://www.thinkcmf.com All rights reserved. // +---------------------------------------------------------------------- // | Author: 老猫 <zxxjjforever@163.com> // +---------------------------------------------------------------------- // [ 入口文件 ] // 调试模式开关 define("APP_DEBUG", true); // 定义CMF根目录,可更改此目录 define('CMF_ROOT', __DIR__ . '/../thinkcmf/');//NOTE 我改过了 // 定义应用目录 define('APP_PATH', CMF_ROOT . 'app/'); // 定义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/'); // 定义CMF 版本号 define('THINKCMF_VERSION', '5.0.170808'); // 加载框架基础文件 require CMF_ROOT . 'simplewind/thinkphp/base.php'; // 执行应用 \think\App::run()->send(); ``` 虚拟机部署 ThinkCMF5 讲解完毕!