maccms,影视站点搭建教程

简介

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

1
apachectl -M

(3)如果输出结果没有 mod_rewrite 或者 rewrite_module,则启用

1
a2enmod rewrite

(4)重启 apache,使其生效,运行后会退出容器

1
service apache2 restart

(5)再次进入容器,查看是否启用

1
apachectl -M

开启伪静态

(1)在根目录添加 .htaccess

1
vim .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 地址配置-路由伪静态设置

  • 路由状态:开启
  • 伪静态状态:开启

测试访问网站,查看是否成功。

image-20240321044447508

image-20240321044520980

插件

自动更新海报图

在网站根目录添加 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即可生成

设置定时任务

1
crontab -e

添加如下信息

这个任务表示每 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

页面浏览量Loading
网站总访客数:Loading
网站总访问量:Loading
使用 Hugo 构建
主题 StackJimmy 设计
-->