我正在嘗試使用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'函數嘗試過。 –