我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

thinkcmf是基于thinkphp的一款cms系统,当年thinkphp官方的onethink并不给力,thinkcmf就顺风而起。目前,thinkphp更新到5系列,thinkcmf的版本也更新到了5.0.180123。苏南大叔正式向大家推荐这款thinkcmf系统,在其基础上做二次开发,还是蛮容易的。据说,这款cms系统,正式开始支持小程序的开发了。

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - thinkcmf
基于nginx,如何搭建thinkcmf开源cms系统(图12-1)

在本篇文章中,苏南大叔描述一下: 基于nginx如何搭建thinkcmf的基本过程。注意,苏南大叔说的是nginx,而不是apache

thinkcmf代码下载

最新版thinkcmf下载地址:

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - 000
基于nginx,如何搭建thinkcmf开源cms系统(图12-2)

nginx配置

对于搭建thinkcmf这件事情来说,下载得到代码后,我们需要关注到的目录是public目录,这个目录就是网站的根目录,这点和传统的网站是有所区别的。

在这个public目录下,有个thinkcmf.conf文件,这个就是nginx的配置文件demo。这个文件最终是要放到nginx的配置目录下面的,也就是说最终是要移动走的,不是放在目前的这个public目录下的哦。放在这里仅仅是个demo,是个范例,给小白看的。

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - 001
基于nginx,如何搭建thinkcmf开源cms系统(图12-3)

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - 00
基于nginx,如何搭建thinkcmf开源cms系统(图12-4)

thinkcmf.conf范例代码如下:

server {
        listen       80;
        #域名设置
        server_name  thinkcmf.com;
        #项目目录
        root         /www/thinkcmf/public;
        index index.php;
        location / {
            if (!-e $request_filename) {
                rewrite  ^(.*)$  /index.php?s=$1  last;
                break;
            }
        }
        location ~ .php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
}

注意要修改,配置文件中的server_namerootroot一定要指向代码目录下面的public目录。一旦这个vhost启动成功后,public目录下面的thinkcmf.conf文件就没有用了。

当然,这个目录下面的很多.htaccess文件也是没用的了,因为.htaccess是用于apache的,而不是nginx。当然,如果您的服务器容器,用到的是apache的话,请删除thinkcmf.conf保留众多.htaccess即可。

配置拓展

关于这个官方给出的nginx配置,苏南大叔表示:可以用。但是显然是有些问题的。比如最明显的就是public目录下的themes目录,这个目录的位置显然是有问题的。

themes下面的html文件就是网站的模版页面,里面扩展名默认为.html。但是里面真实夹杂着大量php代码。也就是说,有代码泄露的风险。这个目录下面的.htaccess文件是禁止访问相关模版文件的。

但是,这些配置在nginx的官方配置demo中,确没有体现出这一点出来。这不得不说是个较大的安全问题。关于thinkcmfthemes设置,苏南大叔会在接下来的文章中,重点分析,敬请关注。

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - nginxplus
基于nginx,如何搭建thinkcmf开源cms系统(图12-5)

当然,针对这种情况,苏南大叔先给出一个简单的治标不治本的方案,暂时方案而已。

server {
    ## 这里请替换为原来的配置
    location ~* ^\/upload\/.+\.(html|php|json)$ {
        return 404;
    }
    location ~* ^\/plugins\/.+\.(html|php|json)$ {
        return 404;
    }
    location ~* ^\/themes\/.+\.(html|php|json)$ {
        return 404;
    }
}

您可以根据您的实际情况,修改您的nginx配置文件。

安装搭建

上述配置配好之后,就是我们的php上场了,既然是thinkphp5系列了,我们就采用最新的php72吧。需要注意的一点是:需要的扩展有:domopensslpdo_mysqlgd 等等。最值得一提的就是gd,里面必须包含freetype子模块。否则,后台验证码是显示不出来的。具体可以参见这篇文章。https://newsn.net/say/mac-php-gd-freetype.html

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - 007
基于nginx,如何搭建thinkcmf开源cms系统(图12-6)

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - 008
基于nginx,如何搭建thinkcmf开源cms系统(图12-7)

另外,对于根目录下面的data目录,需要有写入权限,因为缓存及配置等等都存在这里。对于linux或者mac系统,推荐修改属主为www,然后修改目录权限为755。当然对于小白来说,直接777是最好的选择。win系统的话,就不用考虑这事了,应该是没有啥关系的。

安装界面截图

如果上述设置都ok的话,就可以进入安装界面了。

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - 002
基于nginx,如何搭建thinkcmf开源cms系统(图12-8)

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - 003
基于nginx,如何搭建thinkcmf开源cms系统(图12-9)

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - 004
基于nginx,如何搭建thinkcmf开源cms系统(图12-10)

utf8mb4是目前最好的字符集选择了,不解释。可以参见这篇文章。https://newsn.net/say/mysql-charset-utf8mb4.html

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - 005
基于nginx,如何搭建thinkcmf开源cms系统(图12-11)

这里请一定要遵照提示说明,删除对应的install文件夹,这个是最基本的安全设置。

苏南大叔:基于nginx,如何搭建thinkcmf开源cms系统 - 006
基于nginx,如何搭建thinkcmf开源cms系统(图12-12)

总结

至此,thinkcmfdemo网站,就算是搭建成功了。万里长征第一步而已,而后,对于thinkcmf的深度发掘,才是更加重要的事情,你说对么?

更多有关thinkcmf的经验文章,请点击苏南大叔的链接:https://newsn.net/tag/thinkcmf/ ,感谢您的阅读。欢迎您做任何形式的转载,请保留链接即可。谢谢。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php    thinkphp