🔥 特别重要:前端访问必须要设置伪静态规则,否则页面会404,伪静态设置规则请访问「伪静态设置」章节。

系统概述

逗号CMS是一款轻量级PHP内容管理系统,采用 PHP + MySQL 架构,支持PC端和手机端自适应,内置完整的后台管理功能。系统设计简洁、安全、高效,适合个人博客、企业官网、产品展示等各类网站场景。

核心特性

环境要求

服务器环境

组件环境要求推荐配置
PHP5.6~8.07.4
MySQL5.7~8.05.7
PHP扩展mysqli, session, json, mbstring, curl, gd
内存限制128M或以上1G

目录权限

以下目录需要写入权限(755 或 777):

/set/img/       -- 图片上传目录
/set/ai_pic/    -- AI生成图片目录
/cache/         -- 缓存文件目录(含路由缓存)
/set/txt/       -- TXT导入文件目录
/set/peitu/     -- 随机配图目录
使用宝塔面板部署时,创建网站后这些目录会自动拥有正确的权限。如遇到权限问题,请设置目录权限为755,所有者为www。

安装指南

第一步:上传文件

1、将所有文件上传到网站根目录(如 /www/wwwroot/yourdomain.com/

2、确保 config.php 文件有写入权限(安装向导会自动生成)

第二步:访问安装向导

在浏览器中输入 http://你的域名,系统会自动进入安装向导。如果已安装,将直接进入网站首页。

第三步:同意协议

仔细阅读MIT软件许可协议,点击「同意协议,开始安装」进入下一步。

第四步:填写配置

配置项说明示例
数据库主机通常为 localhostlocalhost
数据库用户名MySQL用户名root
数据库密码MySQL密码********
数据库名建议使用新数据库douhao_cms
数据表前缀系统固定为 douhao_,非技术需要,不可修改douhao_
网站名称显示在网站标题中逗号CMS
管理员账号后台登录用户名admin
管理员密码至少6位********

第五步:完成安装

点击「开始安装」,系统会自动:

安装完成后,请访问 http://你的域名/admin.php 进入后台管理。
如果 install.php 无法自动删除,请手动删除该文件,防止被恶意利用。
💡 安装完成后,部分功能(如主题中心、AI撰文)需要到「网站设置」中配置逗号API密钥后才能使用。
🔥 特别重要:前端访问必须要设置伪静态规则,否则页面会404,伪静态设置规则请访问「伪静态设置」章节。

快速上手

安装完成后,按照以下步骤快速搭建您的网站:

  1. 登录后台:访问 http://你的域名/admin.php,输入管理员账号密码
  2. 网站设置:左侧导航 → 系统管理 → 网站设置,设置网站名称、上传LOGO、填写备案号
  3. SEO设置:网站设置 → SEO设置,配置首页/分类/文章的标题、关键词、描述
  4. 添加分类:文章管理 → 点击「分类管理」,添加文章分类
  5. 发布文章:文章管理 → 点击「添加文章」,填写标题、选择分类、编辑内容
  6. 设置广告:广告管理 → 选择「网站轮播图」→ 添加广告,上传图片
  7. 查看网站:访问首页查看效果

后台登录

访问 http://你的域名/admin.php 进入后台登录页面。输入安装时设置的管理员账号和密码即可登录。

登录安全机制

忘记密码

如果忘记管理员密码,可以登录数据库,在 douhao_admin 表中修改密码字段。使用以下PHP代码生成新密码后替换:

<?php echo password_hash('新密码', PASSWORD_BCRYPT); ?>

后台首页

登录后默认进入后台首页,展示网站统计数据概览:

今日数据

总计数据

最新内容

后台首页顶部会显示CMS版本更新提示,如有新版本可一键在线更新。

路由与菜单管理

后台左侧导航 → 管理 → 后台路由管理 / 后台菜单管理 / 前端路由管理

这三个功能允许管理员在不修改代码的情况下,直接通过后台界面编辑路由配置和导航菜单。

1. 后台路由管理

修改路由配置时请确保PHP语法正确,否则可能导致后台部分页面无法访问。建议先备份原有代码再修改。

2. 后台菜单管理

3. 前端路由管理 新增

路由管理包含三个独立功能:后台路由控制页面访问路径,后台菜单控制导航显示,前端路由控制前端URL解析和模板加载。三者配合使用可以完整控制网站的路由体系。
所有路由和菜单数据存储在数据库中,修改后自动生成缓存文件到 /cache/ 目录,无需重启服务。当 /cache/ 目录不存在时,系统会自动创建。

网站设置

左侧导航 → 系统管理 → 网站设置,包含以下配置项:

网站设置 Tab

设置项说明
网站名称浏览器标签页标题,未上传LOGO时显示为文字LOGO
网站LOGO上传图片,支持JPG/PNG格式,建议尺寸 200×60px
逗号API密钥用于AI自动撰文、主题中心等功能,点击注册获取
防刷token用于定时任务访问验证,默认 douhao
ICP备案号填写后自动生成底部备案链接,如:京ICP备12345678号
敏感词设置每行一个敏感词,文章内容和搜索自动过滤
统计代码粘贴百度统计、CNZZ等第三方统计代码
图文列表模式左图右文 / 左文右图,影响首页和列表页排版
阅读全文开启后文章页隐藏部分内容,点击阅读全文查看全部
热门阅读量文章阅读量达到此数值自动标记为热门

参数设置 Tab

配置各页面显示的数据数量:

伪静态设置 Tab

配置文章/分类/产品的URL前缀和模式,详见「伪静态设置」章节。

友情链接 Tab

管理网站友情链接,支持添加、编辑、删除、启用/禁用、排序。

SEO设置

网站设置 → SEO设置,分为6个独立页面配置:

页面说明
首页网站首页的SEO标题/关键词/描述
文章分类列表页所有分类列表页的SEO信息(支持标签替换)
文章详情页单篇文章详情页的SEO信息(支持标签替换)
产品分类页产品分类列表页的SEO信息(支持标签替换)
产品详情页单个产品详情页的SEO信息(支持标签替换)
搜索页 新增搜索页面的SEO信息(支持 {keyword} 标签替换)

支持的动态标签

标签说明适用页面
{site_name}网站名称所有页面
{category_name}当前分类名称分类列表页、文章详情页、产品分类页
{article_title}文章标题文章详情页
{article_description}文章摘要文章详情页
{product_title}产品标题产品详情页
{product_description}产品简介产品详情页
{keyword} 新增用户搜索的关键词搜索页

广告位管理

左侧导航 → 内容管理 → 广告管理,进入广告位管理页面。

系统固定广告位

系统默认提供4个固定广告位,不可删除:

广告位标识展示模式用途
网站轮播图banner轮播模式首页轮播广告
网站横幅header_banner随机模式顶部横幅广告
网站底部悬浮footer_float随机模式底部悬浮广告
文章页阅读全文article_readmore随机模式阅读全文弹窗广告

自定义广告位

点击「添加广告位」可创建自定义广告位:

自定义广告位默认使用「随机模式」展示。

调用函数

在模板文件中使用以下代码调用广告位:

<?php echo get_ad_position('广告位标识'); ?>

例如:<?php echo get_ad_position('banner'); ?>

广告位状态

每个广告位都可以独立开启或关闭。关闭后,该广告位下的所有广告都不会在前端显示。

广告管理

在广告位管理页面点击「广告设置」按钮,进入该广告位下的广告列表。

添加广告

  1. 点击「添加广告」进入编辑页面
  2. 填写广告标题(必填)
  3. 选择投放页面(可多选):首页、分类页、文章详情页、产品分类页、产品详情页
  4. 选择广告模板:图片、代码、文字(三选一)
  5. 图片模板:支持分别上传移动端、平板端、桌面端三种尺寸的图片,自动适配不同屏幕
  6. 代码模板:直接粘贴HTML/JS代码
  7. 文字模板:输入文字内容,可设置跳转链接
  8. 设置排序(数字越小越靠前)
  9. 选择状态(启用/禁用)
  10. 点击保存

多尺寸图片说明

轮播图广告请使用「图片」模板,宽度建议1920px,高度建议500px,保持宽高比一致。如果只上传一种尺寸,系统会自动适配所有屏幕。

文章管理

左侧导航 → 内容管理 → 文章管理,管理所有文章。

添加文章

  1. 点击「添加文章」进入编辑页面
  2. 输入文章标题(必填)
  3. 选择所属分类(必填,如无分类请先添加)
  4. 上传封面图(可选,支持JPG/PNG)
  5. 填写摘要(可选,留空自动截取正文前120字)
  6. 使用WangEditor富文本编辑器编写内容
  7. 选择状态(发布/草稿)
  8. 点击「发布文章」

文章列表功能

分类管理

点击「分类管理」弹窗,可添加/删除文章分类。删除分类不会删除该分类下的文章。

随机配图

点击「随机配图」按钮,可为没有封面图的文章自动分配图片。支持:

文章内容中的第一张图片会自动作为缩略图显示在列表中,无需单独上传封面图。

产品管理

左侧导航 → 内容管理 → 产品管理,独立的产品管理模块。

添加产品

  1. 点击「添加产品」进入编辑页面
  2. 输入产品标题(必填)
  3. 选择产品分类(必填)
  4. 上传封面图和图库(支持多张图片)
  5. 设置价格类型(议价/自定义价格)和联系方式
  6. 填写产品简介和详情介绍(富文本编辑器)
  7. 点击「发布产品」

产品列表功能

分类管理

文章和产品各有独立的分类管理:

文章分类

在「文章管理」页面点击「分类管理」按钮,可添加/删除文章分类。支持设置配图文件夹(用于随机配图功能)。

产品分类

在「产品管理」页面点击「分类管理」按钮,可添加/删除产品分类。

缓存管理

左侧导航 → 系统管理 → 缓存管理。

缓存机制

开启缓存后,文章页和分类列表页首次访问时生成HTML静态文件,过期时间内直接返回静态文件,不经过PHP和数据库处理,大幅提升访问速度。

操作说明

缓存期间阅读量不会更新。如开启时间较长,建议在文章模板中去除阅读量显示,或设置较短的过期时间(如15-30分钟)。

管理员管理

左侧导航 → 用户管理 → 管理员管理。

功能列表

密码使用bcrypt加密存储,安全可靠。登录失败5次自动锁定30分钟。

主题管理

左侧导航 → 主题管理,包含「主题列表」和「我的主题」两个子菜单。

主题列表

展示逗号CMS官方主题库,支持在线安装。需要先配置「逗号API密钥」才能使用。

主题截图展示 新增

在「主题列表」中,每个主题卡片新增了「主题截图」按钮:

主题截图在发布主题时上传,支持多张截图。截图会展示在主题列表和总控台主题展示页中。

我的主题

展示已安装的主题,支持:

默认主题「橙色阳光」不可移除。更换主题后,建议清空缓存确保前端立即生效。

AI自动撰文

左侧导航 → 内容管理 → AI自动撰文,集成逗号API自动生成文章。

前置条件

配置说明

为每个分类单独配置AI生成参数:

定时执行

将定时URL添加到宝塔计划任务,系统将自动为所有开启的配置生成文章:

https://你的域名/set/create.php?token=防刷token

不开启配图:建议最低30秒执行一次;开启配图:建议最低50秒执行一次。

TXT批量导入

左侧导航 → 内容管理 → TXT批量导入,支持批量导入TXT文件作为文章。

使用说明

定时导入

配置定时导入参数后,访问定时执行URL,每次随机抽取1篇TXT文件导入,分类随机选择:

https://你的域名/set/import_cron.php?token=防刷token

建议执行周期为 1分钟 或 5分钟。

统计安全

左侧导航 → 系统管理 → 统计安全,包含网站统计、IP黑白名单、UA黑白名单、安全设置四大功能模块。

网站统计

统计安全页面默认进入「网站统计」Tab,展示以下数据:

统计卡片

蜘蛛统计

搜索筛选

支持多维度筛选访问记录:

访问记录列表

每条记录显示:时间、来源、受访网址、蜘蛛、终端、访问IP、耗时、状态码/方法。每条记录支持:

黑白名单

统计安全页面 → IP黑白名单 / UA黑白名单 Tab。

IP黑白名单

功能按钮

黑名单列表

显示所有被封禁的IP,包含:IP地址、封禁原因、添加时间。支持「移除」操作。

白名单列表

显示所有白名单IP,包含:IP地址、添加原因、添加时间。支持「移除」操作。

白名单IP不受频率限制,也不会被自动拉黑。加入黑名单前会自动检查是否已在白名单中。

UA黑白名单

User-Agent(用户代理)黑白名单,用于拦截特定浏览器或爬虫。

UA黑名单

UA白名单

UA规则支持模糊匹配,如输入 python 将匹配所有包含 "python" 的UA。注意:UA黑名单仅当「UA黑名单跳转开关」开启时才生效。

安全设置

统计安全页面 → 安全设置 Tab,或左侧导航 → 系统管理 → 安全设置。

基础安全设置

设置项说明默认值
频率限制(次数)单位时间内允许的最大访问次数60
频率限制(秒)统计访问次数的时长(秒)60
黑名单跳转开关开启后黑名单IP跳转到 /heiwu.php关闭
UA黑名单跳转开关开启后黑名单UA跳转到 /heiwu.php关闭
自动清理自动清理指定天数前的访问日志关闭(30天)

高级安全防御

以下防御规则均支持独立开启/关闭,并支持自定义规则:

防御类型说明默认状态
SQL注入防御检测恶意SQL语句,防止数据库注入攻击开启
XSS防御检测跨站脚本攻击,防止网页被恶意篡改开启
命令执行拦截检测并拦截危险命令执行,防止服务器被入侵开启
恶意文件上传防御检测恶意文件上传,防止上传木马开启
恶意下载防御检测恶意下载,防止敏感文件被下载开启
恶意爬虫防御检测恶意爬虫访问开启
Cookie防御过滤利用Cookie发起的渗透攻击开启

数据清理

数据清理操作不可恢复,请谨慎操作。建议先备份数据库。

网站地图

左侧导航 → 系统管理 → 网站地图(或在网站设置中切换)。

功能说明

自动生成XML网站地图,帮助搜索引擎更快收录您的网站。支持分页生成(每5000条链接一个子地图)。

地图信息

生成地图

点击「立即生成」按钮,系统会自动收集所有页面链接:

定时执行URL

将以下URL添加到宝塔计划任务中,系统将自动生成网站地图:

https://你的域名/set/sitemap_cron.php?token=防刷token

建议执行周期:每天一次。

搜索引擎提交

生成网站地图后,可将地图URL提交到各大搜索引擎站长平台:

网站地图URL为:https://你的域名/sitemap_index.xml。提交前请确保地图已生成且可正常访问。

首页

前端首页包含以下模块:

分类列表页

文章分类列表页,URL格式取决于伪静态设置:

顶部有可左右滑动的分类标签,点击切换分类。文章以列表形式展示,支持左图右文/左文右图两种模式。

文章详情页

展示完整文章内容,URL格式:/article-123.html(取决于伪静态设置)。包含:

阅读全文功能

后台「网站设置」中开启「阅读全文」后:

产品页面

产品相关页面包含:

产品列表页

/product.html — 所有产品列表,支持按分类筛选。每个产品以卡片形式展示封面图、标题、价格。

产品详情页

/product-123.html — 单个产品详情,包含:

伪静态设置

服务器伪静态规则

先确定您的服务器环境,然后根据环境选择下列伪静态规则配置:

Nginx(通用)

在网站配置文件的 server 块中添加:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

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;
}

Nginx(宝塔面板)

宝塔面板 → 网站设置 → 伪静态,粘贴:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

Apache(通用)

在网站根目录 .htaccess 文件中写入:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
</IfModule>

IIS(通用)

在网站根目录创建 web.config 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="douhao">
                    <match url="^(.*)$" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php?{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

后台设置及URL格式说明

后台 → 网站设置 → 伪静态设置 Tab。

页面类型格式示例
文章详情页【前缀】【ID/哈希/MD5】.htmlarticle-123.html
文章分类页【前缀】【ID/哈希/MD5】.htmlcategory-1.html
产品详情页【前缀】【ID/哈希/MD5】.htmlproduct-123.html
产品分类页【前缀】【ID/哈希/MD5】.htmlproduct-category-1.html

前缀自定义

每个页面类型的前缀都可以自定义,例如将 article- 改为 post-

懒加载机制

系统采用懒加载方式处理伪静态URL:

切换伪静态格式后,现有文章的URL会在首次访问时自动生成,无需逐个编辑文章,用户无感知。
网站页面已经被搜索引擎收录的情况下,不建议切换,因为切换伪静态格式或前缀后,搜索引擎已收录的链接可能会失效,建议提前做好301重定向或通知搜索引擎更新。

缓存机制

系统支持页面静态缓存,当数据量庞大或者用户量庞大感觉页面速度有些慢后开启静态缓存,将会大幅提升访问速度。

工作原理

  1. 首次访问文章页或分类列表页时,系统生成HTML静态文件
  2. 在缓存有效期内,后续访问直接读取静态文件
  3. 过期后自动重新生成,更新缓存

缓存目录

缓存文件存储在 /cache/ 目录,文件名使用URL的MD5值。

注意事项

安全防护

已实现的安全机制

防护类型实现方式
CSRF防护所有后台操作需验证CSRF Token
SQL注入防护参数化查询、输入过滤、正则检测
XSS防护HTML输出转义、正则检测
命令执行防护检测危险函数调用
文件上传防护验证真实图片文件头,防止图片马
文件下载防护限制敏感文件下载
恶意爬虫防护UA黑名单检测
密码加密bcrypt算法,兼容旧MD5自动升级
登录限制5次失败锁定30分钟
频率限制单位时间内限制访问次数
IP黑白名单支持IP级别封禁和白名单
UA黑白名单支持User-Agent级别封禁
路径遍历防护限制文件操作仅在指定目录
SSRF防护远程下载限制内网IP
Cookie防护检测Cookie篡改行为

安全建议

阅读全文功能

后台「网站设置」中开启「阅读全文」后生效。

功能说明

广告位配置

「文章页阅读全文」广告位支持:

如果文章总段落数少于3段,不会触发阅读全文功能,所有内容正常显示。

版本更新说明

版本更新流程

后台首页右上角会显示CMS版本更新提示,如有新版本可一键在线更新。

  1. 点击「更新 Vx.x」按钮
  2. 系统自动下载升级包并解压覆盖
  3. 自动执行 upgrade.sql 数据库升级脚本
  4. 更新完成后页面自动刷新

常见更新问题

⚠️ 更新一直卡在「更新中...」

如果点击「立即更新」后一直卡在更新中,请按以下步骤修复:

  1. 打开文件 /admin/cms_upgrade.php
  2. 找到 require_once __DIR__ . '/auth.php'; 这一行
  3. 在其下方增加一行:
require_once dirname(__DIR__) . '/functions.php';

完整示例:

require_once __DIR__ . '/auth.php';
require_once dirname(__DIR__) . '/functions.php';
修复后重新点击「立即更新」即可正常完成升级。

其他注意事项

常见问题

Q:安装后访问网站显示空白?

检查PHP版本是否 ≥ 5.6,检查 config.php 中数据库配置是否正确。如果配置正确但仍然空白,检查PHP错误日志。

Q:伪静态不生效,文章页404?

确保服务器支持URL重写。Nginx需配置 try_files,Apache需开启 mod_rewrite 并配置 .htaccess

Q:图片上传失败?

检查 /set/img/ 目录权限是否为755或777,检查PHP的 upload_max_filesizepost_max_size 配置。

Q:如何修改文章URL前缀?

后台 → 网站设置 → 伪静态设置,修改对应前缀后保存。

Q:忘记管理员密码?

登录数据库,在 douhao_admin 表中修改 password 字段为bcrypt加密的新密码。

Q:如何备份网站?

导出数据库SQL文件 + 备份 /set/img//set/ai_pic/ 目录即可。

Q:AI自动撰文不生成内容?

检查「网站设置」中的「逗号API密钥」是否正确配置,检查API账户积分是否充足,检查分类的AI配置是否开启。

Q:广告不显示?

检查广告位是否开启,检查广告是否启用,检查投放页面是否匹配当前页面,检查广告模板是否完整。

Q:轮播图不轮播?

确保轮播图广告位有至少2个启用的广告,且广告模板为「图片」。

Q:如何更换主题?

左侧导航 → 主题管理 → 主题列表,选择主题点击「安装」,然后在「我的主题」中点击「应用」。

Q:统计数据显示不准确?

如果开启了缓存,缓存期间阅读量不会实时更新。建议设置较短的缓存过期时间(如15-30分钟)。

Q:IP被误封怎么办?

在「统计安全」→「IP黑白名单」中找到该IP,点击「移除」即可解封。

Q:如何查看网站访问日志?

在「统计安全」→「网站统计」中查看所有访问记录,支持多维度筛选和搜索。

Q:网站地图如何提交给搜索引擎?

在「网站地图」页面生成地图后,复制 https://你的域名/sitemap_index.xml 到各搜索引擎站长平台提交。

Q:后台路由管理和菜单管理是什么?

路由管理控制后台页面访问路径(page参数与文件路径的映射),菜单管理控制左侧导航的显示结构和链接。两者配合使用可以灵活扩展后台功能,无需修改代码文件。

Q:前端路由管理是什么?新增

前端路由管理控制网站前端的伪静态URL解析和模板加载逻辑。当您需要添加自定义页面(如 about.html)或修改URL格式时,无需修改根目录 index.php,直接在后台编辑前端路由配置即可。系统会自动生成缓存文件,所有用户共享,提升访问速度。

Q:伪静态模式切换后文章404怎么办?

系统采用懒加载机制,切换模式后首次访问文章会自动生成对应的哈希/MD5值并保存。如果仍然404,请访问 admin.php?page=front_route 点击「保存配置」刷新前端路由缓存。

Q:如何修改后台入口文件名和后台目录名?

为了提高后台安全性,防止暴力破解攻击,您可以重命名后台入口文件和后台目录:

  1. 重命名后台入口文件:将根目录的 admin.php 重命名为自定义文件名,如 myadmin_2024.php,访问后台时使用 http://你的域名/myadmin_2024.php
  2. 重命名后台目录:将 /admin/ 目录重命名为自定义目录名,如 /backend/
  3. 同步修改跳转路径:修改入口文件 myadmin_2024.php 中的 header('Location: admin/login.php');header('Location: backend/login.php');
  4. 修改根目录 index.php:如果根目录 index.php 中有未登录跳转路径,同步修改。
  5. 清空缓存:修改完成后,清空 /cache/ 目录下的缓存文件。
🔍

未找到相关内容

请尝试其他关键词