基于nginx,如何搭建thinkcmf开源cms系统
发布于 作者:苏南大叔 来源:程序如此灵动~thinkcmf
是基于thinkphp
的一款cms
系统,当年thinkphp
官方的onethink
并不给力,thinkcmf
就顺风而起。目前,thinkphp
更新到5
系列,thinkcmf
的版本也更新到了5.0.180123
。苏南大叔正式向大家推荐这款thinkcmf
系统,在其基础上做二次开发,还是蛮容易的。据说,这款cms
系统,正式开始支持小程序的开发了。
在本篇文章中,苏南大叔描述一下: 基于nginx
如何搭建thinkcmf
的基本过程。注意,苏南大叔说的是nginx
,而不是apache
。
thinkcmf代码下载
最新版thinkcmf
下载地址:
nginx配置
对于搭建thinkcmf
这件事情来说,下载得到代码后,我们需要关注到的目录是public
目录,这个目录就是网站的根目录,这点和传统的网站是有所区别的。
在这个public
目录下,有个thinkcmf.conf
文件,这个就是nginx
的配置文件demo
。这个文件最终是要放到nginx
的配置目录下面的,也就是说最终是要移动走的,不是放在目前的这个public
目录下的哦。放在这里仅仅是个demo
,是个范例,给小白看的。
- 关于
nginx
设置vhost
网站,可以参照:https://newsn.net/say/nginx-vhost-php.html - 如何测试
nginx
的配置是否正确,请参照:https://newsn.net/say/apache-nginx-conf.html
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_name
和root
。root
一定要指向代码目录下面的public
目录。一旦这个vhost启动成功后,public
目录下面的thinkcmf.conf
文件就没有用了。
当然,这个目录下面的很多.htaccess
文件也是没用的了,因为.htaccess
是用于apache的,而不是nginx。当然,如果您的服务器容器,用到的是apache的话,请删除thinkcmf.conf
保留众多.htaccess
即可。
配置拓展
关于这个官方给出的nginx配置,苏南大叔表示:可以用。但是显然是有些问题的。比如最明显的就是public
目录下的themes
目录,这个目录的位置显然是有问题的。
themes
下面的html文件就是网站的模版页面,里面扩展名默认为.html
。但是里面真实夹杂着大量php代码。也就是说,有代码泄露的风险。这个目录下面的.htaccess
文件是禁止访问相关模版文件的。
但是,这些配置在nginx
的官方配置demo
中,确没有体现出这一点出来。这不得不说是个较大的安全问题。关于thinkcmf
的themes
设置,苏南大叔会在接下来的文章中,重点分析,敬请关注。
当然,针对这种情况,苏南大叔先给出一个简单的治标不治本的方案,暂时方案而已。
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
吧。需要注意的一点是:需要的扩展有:dom
,openssl
,pdo_mysql
,gd
等等。最值得一提的就是gd
,里面必须包含freetype
子模块。否则,后台验证码是显示不出来的。具体可以参见这篇文章。https://newsn.net/say/mac-php-gd-freetype.html 。
另外,对于根目录下面的data
目录,需要有写入权限,因为缓存及配置等等都存在这里。对于linux
或者mac
系统,推荐修改属主为www
,然后修改目录权限为755
。当然对于小白来说,直接777
是最好的选择。win
系统的话,就不用考虑这事了,应该是没有啥关系的。
安装界面截图
如果上述设置都ok的话,就可以进入安装界面了。
utf8mb4
是目前最好的字符集选择了,不解释。可以参见这篇文章。https://newsn.net/say/mysql-charset-utf8mb4.html 。
这里请一定要遵照提示说明,删除对应的install
文件夹,这个是最基本的安全设置。
总结
至此,thinkcmf
的demo
网站,就算是搭建成功了。万里长征第一步而已,而后,对于thinkcmf
的深度发掘,才是更加重要的事情,你说对么?
更多有关thinkcmf
的经验文章,请点击苏南大叔的链接:https://newsn.net/tag/thinkcmf/ ,感谢您的阅读。欢迎您做任何形式的转载,请保留链接即可。谢谢。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
按您的博客搭建好后,访问域名。报502的错误,请问怎么破?
你网上买的虚机空间吧?虚拟空间的php版本一般都是5.2。看看版本是不是太低了。现在都是php7了,还有检查是不是没有写入权限,修改一下文件的777权限。如果还是不行的话,就开启一下debug模式,会显示出具体的错误信息的。
我想知道thinkcmf.conf这个文件放在哪个目录下呢?
是放在nginx的配置目录下面的,你服务器上面是不是nginx?如果不是的话,是用不到这个东西的。而且你的服务器的nginx的具体目录在哪里,这个可是因人而异的。