我正在 Ubuntu 上工作,并试图让 PHP 脚本工作,该脚本将允许用户输入 Youtube 视频 URL,该脚本将下载 flv 并使用 youtube2mp3 进行转换(我在这里找到: http://hubpages.com/hub/Youtube-to-MP3-on-Ubuntu-Linux ) 。我收到了一些错误,我确信这些错误是基于权限的,我想知道纠正这些错误的最佳和最安全的方法。现在我正在打电话
echo system("youtube-dl --output=testfile.flv --format=18 $url");
只是为了尝试让下载部分正常工作。下一页显示的是
[youtube] Setting language
[youtube] xOMEi2g_oEU: Downloading video webpage
[youtube] xOMEi2g_oEU: Downloading video info webpage
[youtube] xOMEi2g_oEU: Extracting video information
[youtube] xOMEi2g_oEU: Extracting video information
在显示我的其余(不相关)输出之前。在 apache 错误日志中,我得到
ERROR: unable to open for writing: [Errno 13]
Permission denied: u'testfile.flv.part'
这显然表明存在权限问题。我是否必须将有问题的目录 chown 给 www-user?这样安全吗?或者我应该 chmod 目录?最终我将把它放在面向公众的服务器上,我不希望我的实现中出现任何漏洞。非常感谢任何和所有的建议和答案!
最佳答案
这是在用户运行 php 进程时运行的,所以有两件事:
- 确保该用户有权访问您将测试文件写入的目录。我会指定一个独立的路径,而不是它现在正在执行的 Web 服务器目录结构的一部分
$url
是否来自用户输入?如果是,我将对整个字符串使用escapeshellcmd
以确保其中不存在随机的rm -rf *
命令。
关于php - Linux PHP 创建文件权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5547584/