简介
Maccms,全称苹果 CMS,是一款开源免费的视频内容管理系统 (CMS)。它基于 PHP 和 MySQL 构建,主要用于快速搭建视频网站、影视资源站等。
核心功能和特点:
- 资源采集: Maccms 具有强大的采集功能,支持多种采集方式,可以从第三方资源站采集视频资源,自动更新和管理。这是它最核心的功能之一。
- 视频播放: 支持多种视频格式和播放器,方便用户在线观看视频。
- 模板引擎: 拥有强大的模板引擎,可以自定义网站界面风格。
- 会员系统: 集成会员系统,可以实现会员注册、登录、权限管理等功能。
- 搜索功能: 内置搜索功能,方便用户查找视频资源。
- 广告管理: 可以添加和管理网站广告,实现流量变现。
- 分类管理: 可以对视频资源进行分类管理,方便用户浏览。
- 插件扩展: 支持插件扩展,可以扩展系统的功能。
- SEO 优化: 提供了基本的 SEO 优化功能,有利于网站被搜索引擎收录。
- 免费开源: Maccms 是开源免费的,可以自由下载和使用。
主要用途:
- 搭建视频网站
- 搭建影视资源站
- 搭建电影、电视剧、动漫等在线观看平台
- 搭建个人视频分享平台
官方源码:https://github.com/magicblack/maccms10
安装
docker
由于 maccms 是 PHP 编写,配置比较繁琐
所以采用 docker 的方式安装,docker 镜像已经好心人帮忙构建了,用的最多是这个:esme518/docker-maccms10。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
version: '3.3'
services:
maccms:
image: esme518/docker-maccms10
container_name: maccms
restart: unless-stopped
volumes:
- ./maccms_data:/var/www/html
ports:
- 8013:80
depends-on:
- maccms-db
maccms-db:
image: mariadb:10.3
container_name: maccms-db
restart: unless-stopped
volumes:
- ./mysql:/var/lib/mysql
environment:
- MARIADB_ROOT_PASSWORD=maccms_db_password
|
播放器(必须)
播放必须要配置播放器,播放器编码根据对应采集的站点说明添加
采集(必须)
数据的来源
采集站点:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
```bash
360|点播: https://360zy.com/api.php/provide/vod/
OK|点播: https://okzyw9.com/api.php/provide/vod/
U酷|点播: https://api.ukuapi.com/api.php/provide/vod/
ikun|点播: https://ikunzyapi.com/api.php/provide/vod/
百度资源: https://api.apibdzy.com/api.php/provide/vod/
宝片|点播: https://zpsps.com/api.php/provide/vod/
暴风|点播: https://bfzyapi.com/api.php/provide/vod/
豆瓣|点播: https://caiji.dbzy.tv/api.php/provide/vod/at/josn/
非凡|点播: http://cj.ffzyapi.com/api.php/provide/vod/
腐剧|点播: http://www.fuju2024.cc:8013/ruifenglb_api.php/provide/vod/
高清资源: https://api.1080zyku.com/inc/apijson.php/
光速资源: https://api.guangsuapi.com/api.php/provide/vod/from/gsm3u8/
豪华|点播: https://hhzyapi.com/api.php/provide/vod/
黑木耳|点播: https://json.heimuer.xyz/api.php/provide/vod
红牛|点播: https://www.hongniuzy2.com/api.php/provide/vod/
虎牙|点播: https://www.huyaapi.com/api.php/provide/vod/
华为吧|点播: https://hw8.live/api.php/provide/vod/
极速|点播: https://jszyapi.com/api.php/provide/vod/
金鹰|点播: https://jinyingzy.com/api.php/provide/vod/
金鹰资源: https://jyzyapi.com/provide/vod/from/jinyingm3u8/at/json/
快车|点播: https://caiji.kczyapi.com/api.php/provide/vod/from/kcm3u8/
量子|点播: https://cj.lziapi.com/api.php/provide/vod/
魔都|点播: https://caiji.moduapi.cc/api.php/provide/vod/
墨斗|点播: https://www.mdzyapi.com/api.php/provide/vod/
牛牛|点播: https://api.niuniuzy.me/api.php/provide/vod/
飘零|点播: https://p2100.net/api.php/provide/vod/
闪电|点播: http://sdzyapi.com/api.php/provide/vod/
速博|点播: https://subocaiji.com/api.php/provide/vod/
索尼|点播: https://suoniapi.com/api.php/provide/vod/
淘片资源: https://taopianapi.com/cjapi/mc/vod/json/m3u8.html/
旺旺|点播: https://api.wwzy.tv/api.php/provide/vod/
卧龙|点播: https://collect.wolongzyw.com/api.php/provide/vod/
无尽|点播: https://api.wujinapi.com/api.php/provide/vod/
小黄人|点播: https://iqyi.xiaohuangrentv.com/api.php/provide/vod/
新浪|点播: https://api.xinlangapi.com/xinlangapi.php/provide/vod/
丫丫|点播: https://cj.yayazy.net/api.php/provide/vod/
樱花|点播: https://m3u8.apiyhzy.com/api.php/provide/vod/
影图|点播: http://cj.vodimg.top/api.php/provide/vod/
最大|点播: http://zuidazy.me/api.php/provide/vod/
|
1
2
3
4
5
6
7
8
9
10
|
## 伪静态配置
默认运行环境是 apache,按照官方的教程在根目录添加 `.htaccess`,接着后台开启伪静态是不成功的,因为 docker 这个版本没有启用 rewrite 组件。我们这下来介绍如何开启 rewrite 模块。
### 启用 mod_rewrite
(1)进入 docker 容器
```shell
docker exec -it <容器id> bash
|
(2)查看是否启用 mod_rewrite
(3)如果输出结果没有 mod_rewrite 或者 rewrite_module,则启用
(4)重启 apache,使其生效,运行后会退出容器
1
|
service apache2 restart
|
(5)再次进入容器,查看是否启用
开启伪静态
(1)在根目录添加 .htaccess
1
2
3
4
5
6
7
8
|
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>
|
(2)登录后台,启用伪静态
路径为:系统-URL 地址配置-路由伪静态设置
测试访问网站,查看是否成功。


插件
自动更新海报图
在网站根目录添加 bbj.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<?php
$configFile = __DIR__.'/application/database.php';
if (!file_exists($configFile)) {
die('无法找到数据库配置文件,请在mac中找到配置数据库信息的文件');
}
$config = include $configFile;
$servername = $config['hostname'];
$port = $config['hostport'];
$username = $config['username'];
$password = $config['password'];
$dbname = $config['database'];
$dbtable = $config['prefix'];
$conn = new mysqli($servername, $username, $password, $dbname,$port);
$currenturl=$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
if ($conn->connect_error) {
die("连接数据库失败: " . $conn->connect_error);
}
$url = "https://bbj.icu/BBJ-code?cmsname=maccms10&level=9&dbtable={$dbtable}&bbjtype=hot&num=10&filtercondi=doubanid&orderby=ASC&requesturl=$currenturl";
$data = file_get_contents($url);
$sqlCommandsArray = explode(';', $data);
foreach ($sqlCommandsArray as $sqlCommand) {
if (!empty(trim($sqlCommand))) {
if ($conn->query($sqlCommand) === TRUE) {
echo "成功执行命令:1条<br>";
} else {
echo "执行命令时出错:$sqlCommand<br>错误信息:" . $conn->error;
}
}
}
$conn->close();
echo "执行更新操作已完成。代码由www.bbj.icu生成,有疑问可以联系qq群咨询<a target='_blank'
href='https://qm.qq.com/cgi-bin/qm/qr?k=zOJ7ZeeYk_2BkCK16CjW7oBGNRFkTOGd&jump_from=webapi&authKey=pLI5HG6JxEHWAVW7Rw5TZqV003hRX/a+/p03GIrxrR3dX834Fu6eP9253aKupdhr'><img
border='0' src='//pub.idqqimg.com/wpa/images/group.png' alt='BB机海报' title='BB机海报'>822011364</a>"
?>
|
访问在后台设置的域名: 网站域名/bbj.php
即可生成
设置定时任务
添加如下信息
这个任务表示每 7 天早上 5 点执行一次
1
|
0 5 * * 0 curl 网站域名/bbj.php
|
定时采集
。。。
任务脚本
这个任务脚本用于在服务器定时任务执行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#!/bin/bash
# 定义一个函数用于随机延迟
random_delay() {
local delay=$(shuf -i 30-60 -n 1)
sleep $delay
}
# 定义日志文件路径
log_file="$HOME/logs/maccms/maccms_collect_log.log"
# 定义请求路径数组
urls=(
"https://movie.seektao.cc/api.php/timming/index.html?enforce=1&name=ikun_spare"
"https://movie.seektao.cc/api.php/timming/index.html?enforce=1&name=hhzy_m3u8"
"https://sesea.dynv6.net/api.php/timming/index.html?enforce=1&name=layazy_m3u8"
)
# 函数用于记录日志
log_message() {
echo "$(date +'%Y-%m-%d %H:%M:%S') --- $1 --- $2" >> $log_file
}
echo "采集任务开始..."
# 循环遍历请求路径数组
for url in "${urls[@]}"
do
echo "正在请求:$url"
/usr/bin/curl "$url"
random_delay
if [ $? -eq 0 ]; then
log_message "$url" "success"
else
log_message "$url" "error"
fi
done
echo "所有任务执行完毕。"
exit 0
|
备份
整个目录备份
1
|
tar -zcvf maccms_backup_all_data_$(date +%Y%m%d%H%M%S).tar.gz -C maccms/ .
|
数据库备份
后台有些数据不是以 maccms 配置文件存在的,而是在数据库中,这里列举出常见数据
1
2
3
4
|
视频数据
分类管理
采集接口
用户数据
|
站点备份
maccms 有些数据不是存在数据库中,而是存在本地配置文件中,迁移或者备份需要指导这些文件。
进入 maccms 的配置文件夹
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
$ tree -L 1
.
├── addons
├── api.php
├── application
├── crossdomain.xml
├── extend
├── haokanadmin.php
├── index.php
├── install.php
├── LICENSE
├── macplus
├── README.md
├── robots.txt
├── runtime
├── static
├── template
├── thinkphp
├── upload
├── vendor
└── 说明文档
|
备份
1
2
3
4
5
6
7
8
9
10
11
|
tar -zcvf maccms_backup_$(date '+%Y%m%d_%H%M%S').tar.gz \
application/database.php \
application/route.php \
application/extra/maccms.php \
application/extra/bind.php \
application/extra/timming.php \
application/extra/vodplayer.php \
application/extra/voddowner.php \
application/extra/vodserver.php \
application/extra/quickmenu.php \
static/images/logo.jpg
|
解释
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# maccms 备份
tar -zcvf maccms_backup_$(date '+%Y%m%d_%H%M%S').tar.gz \
# 数据库连接配置
application/database.php \
# 路由规则
application/route.php \
# 后台主页
application/extra/maccms.php \
# !!!绑定的采集分类,不备份的话新添加相同的采集还需要手动绑定
application/extra/bind.php \
# 定时任务
application/extra/timming.php \
#
application/extra/vodplayer.php \
application/extra/voddowner.php \
application/extra/vodserver.php \
# 快捷菜单
application/extra/quickmenu.php \
# 已修改的logo
static/images/logo.jpg
|
主题备份
1
2
|
# mxonepro
tar -zcvf mxonepro.tar.gz ./template/mxpro/ ./mxtheme
|
恢复
1
|
tar -zxvf 备份文件 -C 恢复的位置
|
例如
1
|
tar -zxvf maccms_backup_20240511_170345.tar.gz -C ./data/
|
常见问题
https://www.maccms.plus/guide/help.html
如重装 maccms
https://www.maccms.plus/faq/#%E5%A6%82%E4%BD%95%E9%87%8D%E8%A3%85%E8%8B%B9%E6%9E%9Ccms
1
|
rm -rf application/data/install/install.lock
|
查看 php 信息
在 php 项目的根目录添加 info.php
1
2
3
4
|
echo "<?php
phpinfo();
?>
" > info.php
|
访问这个文件,比如:www.phpsite.com/info.php