![PHPのexecが機能しない](https://linux33.com/image/122963/PHP%E3%81%AEexec%E3%81%8C%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%AA%E3%81%84.png)
私はラズベリーパイ3からPHP 7.0にApacheを実行しています。コマンドラインでカールコマンドを使用すると正常に動作します。
ただし、PHPコードでこのコマンドを使用すると、何もしません。これは何か知っていますか?
リソースID#5を取得します。何が起こったのかはわかりませんが……
以下を試しました。
- コマンドの最後に2>&1を追加します。
- sudo の前にあるコマンドを実行します。
- www-dataの権限の変更(Apacheを実行しているユーザーかどうかわからない)
答え1
PHPでは、すべてのリソースID#は物理的であるかどうかにかかわらず、一種のファイルハンドルを表します。通常、素晴らしいデータを取得する前に、ハンドルで何らかの読み取り操作が発生します。 cURLとPHPは通常次のようになります(から抜粋)。文書)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);