最近下载了一个ThinkCMF 在本地安装的测试环境 appsever 最新版,PHP5.7,MySQL5.6 ,一切运行正常。
等到部署到运行环境,linux下的apache+mysql+php(虚拟机ngnix不支持rewrite只好用apache)状况百出!整理下步骤,以后备用。
1、按照官方虚拟机的部署文档,把文件,文件夹重新整理了一次。
除public 文件夹之外的所有文件以及文件夹单独建一个目录在根目录存放,例如:thk 目录
public 目录下的文件全部复制到网站根目录。
删除空的public,删除runtime 下的各种缓存文件,删除upload 下面的本地测试文件。
记得把DEBUG关了。
3、改入口文件index.php里面的各种引用文件路径。
各种../ 组合 全部改成绝对路径,稳妥不会错。这么多年就靠这招应付各种上线空白页了!
API入口文件改成这样的定义,具体就自己看实际情况了,不清楚就一个个把路径打出来看看,对不对。
// 定义CMF根目录,可更改此目录
define('CMF_ROOT', substr(__DIR__,0,-4) . '/thk/');
// 定义应用目录
define('APP_PATH', CMF_ROOT . 'api/');
// 定义CMF目录
define('CMF_PATH',CMF_ROOT. 'simplewind/cmf/');
// 定义插件目录
define('PLUGINS_PATH',CMF_ROOT. '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();
2、打开根目录下的.htaccess文件
重写规则改成下面这样:
PS:具体原来的写法为啥报错,我也没搞懂。。。。。。这样写重写规则就生效了,只能说蒙对了!
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
3、剩下的就是导数据了,主要就分类那个表,其他感觉都可以不用导上去了
各栏目配置不同的字段,网上有大神直接分享了思路,拿出来直接改改改就成功了。
然后前后台就正常运行了。
API链接也可以一起跑起来了。
http://域名/api/portal/lists/getCategoryPostLists?category_id=分类ID
http://域名/api/portal/articles?id=文章ID
功能很强大,方便有快捷!谢谢各种大神的分享。