gpt4 book ai didi

PHP $_FILE 临时位置 open_basedir 冲突 PHP-FPM/Nginx

转载 作者:行者123 更新时间:2023-12-04 23:26:16 24 4
gpt4 key购买 nike

我有一个用于将文件上传到我的网站的脚本。它工作得很好,但现在我想使用 ffmpeg/ffprobe library 从视频文件中提取元数据.我的代码:

if (!empty($_FILES)) {
$requestAr = requestCheck(['title', 'description']);
$assetName = randomString(11);
$assetSalt = randomString(3);

$bucket = "videos";
$fileTmpPath = $_FILES['qqfile']['tmp_name'];
$filenameOrig = $_FILES['qqfile']['name'];
$fileExtension = pathinfo($filenameOrig, PATHINFO_EXTENSION);
$assetFilename = $assetName . "_$assetSalt.$fileExtension";

$trustedExtensions = ['webm', 'mp4', 'ogg'];
if(array_search($fileExtension, $trustedExtensions) !== false) {
$ffprobe = FFMpeg\FFProbe::create([
'ffprobe.binaries' => '/usr/bin/ffprobe'
]);
$fileInfo = $ffprobe
->format($fileTmpPath) // extracts file informations
->get('duration'); // returns the duration property
print_r($fileInfo);
}
}

我结束了这个错误:
file_exists(): open_basedir restriction in effect. File(/usr/bin/ffprobe) is not within the allowed path(s): <lists all the directories in the open_basedir variable>

我已经向 ffmpeg 库传递了 ffprobe 的绝对路径,所以它知道它在哪里。我四处寻找,有人说这是因为 lib 无法使用上传的文件访问 tmp 目录。无论哪种情况,我都在尝试禁用 open_basedir或者至少添加我需要的路径以使其正常工作。

我尝试设置 open_basedir在我的 php.ini 中没有但它没有用。当我查看 phpinfo() ,它仍然列出了该设置的一堆路径。我试图 grep where open_basedir存在于服务器上。确实是 php.ini文件,我不需要修改 phpinfo() 中报告的文件以外的任何文件。 .

最佳答案

我修好了它。出于某种原因,grep 没有返回所有带有 basedir 的文件。字符串。我必须编辑特定站点的 php-fpm 文件:/etc/php/7.0/fpm/pool.d/web8.conf并附加路径:
/usr/bin/ffmpeg:/usr/bin/ffprobe
php_admin_value[open_basedir]指示。然后systemctl reload php7.0-fpm.service并做了。

关于PHP $_FILE 临时位置 open_basedir 冲突 PHP-FPM/Nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46250266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com