小葱计数器小葱计数器

自建网站统计系统部署指南(PHP + MySQL / SQLite)

小葱计数器是原生 PHP 程序,零框架依赖。下面按真实部署顺序走一遍,Windows 与 Linux 的关键差异单独标注。

一、环境要求

项要求说明
PHP8.0+需 pdo_mysql 或 pdo_sqlite、mbstring
数据库MySQL 5.7+ / MariaDB 10.6+,或 SQLite日 PV 一万以内 SQLite 足够
Redis可选没有则自动降级文件缓存/队列
Web 服务器nginx / Apache / IISIIS 需 PHP FastCGI 模块
目录权限data/ 与 config/ 可写缓存、队列、日志、IP 库都在 data/

二、安装

  1. 上传代码:把程序放到站点根目录,确保 data/ 与 config/ 可写。
  2. 跑安装向导:浏览器访问 /install.php,按提示填数据库信息,向导自动建库建表并创建管理员。
  3. 删掉安装文件:装完立即删除或重命名 install.php,避免被重复执行。
  4. 登录面板:访问 /login.php,用向导里设置的管理员账号登录,进「站点」页创建第一个站点。

三、定时任务(必配)

埋点接口只负责入队,落库与预聚合由定时任务完成。不配这一步,面板永远是空的。

# 每分钟消费埋点队列(Linux crontab)
* * * * * php /路径/scripts/消费.php 500 >> /路径/data/消费日志.log 2>&1

# 每小时维护(清实时表 / 失败队列 / 分区)
0 * * * * php /路径/scripts/计划任务.php >> /路径/data/计划任务日志.log 2>&1

Windows 用任务计划程序建两个任务,程序填 php.exe,参数填脚本路径,起始目录填站点根目录,触发频率同上。

Windows 上务必把"起始于"填成站点根目录,否则脚本里的相对路径会解析到系统目录,表现为任务显示执行成功但队列不动。

四、HTTPS 与反向代理

SDK 通过 HTTPS 加载,如果计数器站点是 HTTPS,客户站点是 HTTP,浏览器会把上报当作混合内容拦截。两个做法:

反向代理场景(nginx → IIS / php-fpm)要透传真实 IP,否则地域统计全变成代理地址:

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

五、安全加固清单

项做法
安装文件部署后删除 install.php
敏感目录app/ config/ core/ data/ docs/ scripts/ 禁止直接访问
数据库文件禁止下载 *.db *.sqlite *.log
后台入口面板与登录页加 noindex,避免被搜索引擎收录
密钥站点密钥只在服务端使用,不进前端、不进 Git

六、备份

要备份的只有两处:数据库文件(SQLite 的 data/计数器.db,或 MySQL 的库导出)和 config/config.php。IP 库和缓存都能重新生成。

# SQLite 每日备份示例
0 3 * * * cp /路径/data/计数器.db /备份目录/计数器-$(date +\%F).db

七、性能调优

← 上一篇AI 接入指南:让大模型和引流程序读取网站数据
全部教程返回教程列表开始使用登录面板创建站点