私の問題は、コマンド ラインで PHP の cURL を実行できないことです。私のコードは次のようなものです:
public function updateSolrProfilData($arrData)
{
$solrClientOptionsCommit = $this->solrClientOptionsYazProfilCommit;
$urlCommit = "http://" . $solrClientOptionsCommit['hostname'] . ":" . $solrClientOptionsCommit['port'] . "/" . $solrClientOptionsCommit['path'] . "/update?stream.body=%3Ccommit/%3E -H \"Content-Type: text/xml\" --data-binary '<add><doc>";
foreach ($arrData as $firmaField => $firmaValue)
{
if ( ! is_array($firmaValue))
{
$urlCommit = $urlCommit . '<field name="' . $firmaField . '">' . $firmaValue . '</field>';
}
else
{
foreach ($firmaValue as $firmaField2 => $firmaValue2)
{
if ('' != $firmaValue2)
{
$urlCommit = $urlCommit . '<field name="' . $firmaField . '">' . $firmaValue2 . "</field>";
}
}
}
}
$urlCommit .= "</doc></add>'";
$urlCommit = htmlspecialchars($urlCommit);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $urlCommit);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$data = curl_exec($ch);
curl_close($ch);
}
コマンド ラインで実行すると機能しますが、cURL や PHP の shell_exec 関数を使用すると機能しません。それの何が問題なのですか?