ThinkCMF阿里云虚拟主机配置
以下是ThinkCMF
官方为我们提供的如何在虚拟主机中部署,本人也没有一个一个尝试过,只是有朋友让帮忙出个站,因为用过tp
索性直接拉了这个cms
,因为底层文件全部放在了网站目录外,不像云服务器随意我们配置网站目录,刚用个阿里云的虚拟机就出现了问题,ftp
根目录不让我们创建文件夹,甚至修改原有文件夹的名字的权限都不给,所以在官方文档的基础上,遵循阿里云虚拟机的规则下来稍微修改下配置就可以了。
如何在虚拟机部署 ThinkCMF5.1
?
在 public/index.php
文件中有个常量CMF_ROOT
;
1 | // 定义CMF根目录,可更改此目录 |
这个常量定义了 ThinkCMF
根目录的地址,public
目录是个例外,它是程序的 web 根目录,也就说这个目录可以随意调整,对有自己服务器的同学,可以直接把 public
目录当网站根目录,但对于虚拟机可能无法直接把 public 当网站根目录。
今天我们来说一下怎么在虚拟机部署 ThinkCMF5.1
?
一般空间目录结构基本是这样:
1 | wwwroot(或 www) |
这时thinkcmf
默认的结构并不适用空间目录结构,因为空间的网站根目录是 wwwroot
或 www
,这时我们就要对默认的 cmf
进行改造了,其实很简单。
我们可以 thinkcmf
放到 wwwroot
之外,比如放在空间根目录的 thinkcmf
目录里
1 | wwwroot(或 www) |
然后把 public 目录的所有文件都移动到 wwwroot 目录下
1 | wwwroot(或 www) |
这时我们再改一下 index.php
1 | // 定义CMF根目录,可更改此目录 |
下在完整 index.php
下如:
1 | <?php |
最后更改vendor/thinkphp/library/think/Loader.php
的getRootPath
方法为:
1 | // 获取应用根目录 |
虚拟机部署 ThinkCMF5.1
讲解完毕!
以上官方的讲解,下面说下阿里云虚拟主机的配置,有类似要求的都可以参照:
阿里云虚拟配置
因为阿里云不允许我们创建及修改目录,但是他给我们提供了几个类似data
、log
之类的文件夹,其中有一个文件夹myfolder
明显是为我们准备的嘛,所以,我们把底层文件全部上传到这个文件夹,将public下的文件全部上传到htdocs
文件夹。
修改htdocs/index.php
文件
1 | // 定义CMF根目录,可更改此目录 |
修改Loader.php
文件
该文件目录为/myfoldervendor/thinkphp/library/think/Loader.php
1 | // 获取应用根目录 |
再次尝试,完美了吧