确保你的EyouCMS系统版本为V1.5.0及以上,这是支持视频上传功能的最低版本要求。登录后台,进入【系统】-【系统设置】-【上传设置】页面,这是所有配置的起点。
视频上传对服务器环境有特定要求,请在服务器终端执行以下命令进行验证:
``` php -v PHP版本需 >= 7.3 php -m | grep -E "fileinfo|gd|pdo_mysql" 确认关键扩展已安装 ```同时,检查以下目录的读写权限(通常要求0755或0777):
在【上传设置】页面,找到【视频上传】配置区块,进行如下设置:
将以下参数填入对应表单:
修改视频存储目录,避免与图片混存:
``` 视频上传路径:/public/uploads/video/{year}{mon}{day}/ 视频访问URL:/uploads/video/{year}{mon}{day}/ ```{year}{mon}{day}是系统变量,会自动替换为上传时的年月日,实现按日期分目录存储。
如果使用Nginx,必须修改站点配置文件,否则会上传大视频文件失败。
打开你的站点Nginx配置文件(通常在`/etc/nginx/sites-available/`目录下),在server块内添加:
``` client_max_body_size 100m; ```保存后,执行以下命令测试配置并重载:
``` nginx -t systemctl reload nginx ```编辑PHP配置文件(如`/etc/php/7.4/fpm/php.ini`),找到并修改以下参数:
``` upload_max_filesize = 100M post_max_size = 100M max_execution_time = 300 max_input_time = 300 ```修改后重启PHP-FPM服务:
``` systemctl restart php7.4-fpm ```为节省存储空间和带宽,可以配置视频自动转码。
在CentOS/RHEL系统上执行:
``` yum install epel-release yum install ffmpeg ffmpeg-devel ```在Ubuntu/Debian系统上执行:
``` apt update apt install ffmpeg ```
安装后验证:
``` ffmpeg -version ```在系统根目录的`config`文件夹下,找到或创建`video.php`配置文件,内容如下:
``` true, // FFmpeg路径 'ffmpeg_path' => '/usr/bin/ffmpeg', // 转码输出格式 'output_format' => 'mp4', // 视频码率(控制文件大小) 'video_bitrate' => '1000k', // 音频码率 'audio_bitrate' => '128k', // 视频分辨率(保持原比例) 'resolution' => '1280:720', // 转码后是否删除原文件 'delete_original' => false, ]; ?> ```配置完成后,需要在模板中正确调用上传的视频。
在文章或产品详情模板中,使用以下代码:
``` {if $video} {/if} ```如果需要展示视频列表,使用以下循环代码:
``` {foreach $video_list as $key=>$vo}{$vo.title}
按顺序检查以下三项配置是否匹配:
三者必须同时大于你要上传的视频文件实际大小。
首先检查视频文件的HTTP访问权限。在浏览器中直接访问视频URL,如果返回403错误,执行:
``` chmod -R 755 /public/uploads/video/ chown -R www-data:www-data /public/uploads/video/ Ubuntu/Debian 或 chown -R nginx:nginx /public/uploads/video/ CentOS ```检查FFmpeg是否正确安装,并在EyouCMS后台的【系统】-【系统设置】-【存储设置】中,确认【视频封面自动截取】已开启。如果仍失败,手动执行命令测试FFmpeg:
``` ffmpeg -i /path/to/your/video.mp4 -ss 00:00:03 -vframes 1 /tmp/test_cover.jpg ```这是JavaScript兼容性问题。确保你的模板头部加载了jQuery和EyouCMS的上传组件:
``` ```视频上传功能存在安全风险,必须进行加固。
不要仅靠前端验证,必须在后端`app/common.php`中添加文件类型检查:
``` function checkVideoType($filename) { $allowed = ['mp4', 'avi', 'mov', 'wmv', 'flv', 'mkv', 'webm']; $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); return in_array($ext, $allowed); } ```在视频上传目录中创建`.htaccess`文件(Apache)或Nginx配置中添加:
``` location ~ /uploads/video/.\.(php|php5|sh|pl|py)$ { deny all; return 403; } ```设置Cron任务,每天清理超过24小时的未完成上传临时文件:
``` 0 2 find /public/uploads/tmp/ -type f -mtime +0 -name ".tmp" -delete ```完成以上所有步骤后,你的EyouCMS视频上传功能已完全配置就绪。测试时,请依次上传小文件(<10MB)、中等文件(~50MB)和大文件(~100MB)验证全流程,确保从上传、存储到播放的每个环节都工作正常。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图