我正在尝试使用curl来下载可执行文件的php脚本。到目前为止,我可以下载文件,但下载后,该文件不可执行(即如果您运行php wp-cli.phar
没有任何反应)。我意识到这是预防安全风险的预期行为,那么如何告诉curl我希望将下载的文件视为可执行文件?在命令行相应的命令是:curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
使用php和curl下载可执行文件.phar文件
这是我的代码,它试图在PHP脚本执行上面的命令,但是产生的文件是不可执行的:
set_time_limit(0);
$fp = fopen ('./wp-cli.phar', 'w+');
$ch = curl_init('https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar');
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);
附加信息
如果您想重现错误,请使用上面的内容创建一个名为a.php
的文件。然后运行php a.php
然后运行php wp-cli.phar --info
当你说“什么都没有发生”你是什么意思?你没有输出运行该命令?检查文件的权限和所有者/组。它甚至可以由运行'php'的用户执行吗?下载的文件是否在您要执行它的相同目录中? – Andy
创建文件不会自动使其成为可执行文件,您需要更改权限(Linux CLI上的“chmod 775文件名”) –
@Andy通过“nothing happens”我的意思是我没有输出,是的,好像我输入了一个空白的命令。该文件的权限是'-rw-r - r - ',我是所有者。是的,我正在同一目录中运行这两个脚本(您看到的和下载的脚本),都在那里。 @NigelRen依然如此。我甚至用PHP的'chmod'函数尝试过。 –