あるサーバーから別のサーバーにデータをまとめる単純な API を作成しました。$_GET
すべてのデータが GET データとして URL に追加される、非常に単純なベースの API です。
だから私は次のようなものを手に入れます:
http://example.com/api.php?param1=afdsa¶m2=TTTT&....
など
それを呼び出すために、私はfile_get_contents($url);
まず最初に使用します-返信の内容は本当に必要ありません。URL に「触れる」だけで、アクションが開始されます。
ホスティング (共有、justhost) に問題があり、VPS に移行しました。API呼び出しでタイムアウトが発生し始めました。Apacheのerror.logを確認したところ、次のことがわかりました。
"failed to open stream: File name too long in ..."
実際、$url
文字列は約 450 文字です。
問題は、ファイル長の設定をどこで変更するかです。私のコンピュータは問題もエラーもなく同じ文字列を取得するため、ハード ドライブのファイル システムと同じではありません。また、共有ホスティングでは、その URL に問題はありませんでした。
VPS は、PHP バージョン 5.3.2-1ubuntu4.9 で ubuntu 10.04 lts を実行します。
2日間座っていたので、助けてくれてありがとう
解決した
問題がどこにあるかを知っていると思っているのに、そうではない場合はどうですか?まあ-それが問題でした。私はAPIを書き直したので、それが行うことはすべて、print_r($_GET);
あなたが知っていることだけです-それはうまくいきました. そこで、行を 1 行ずつ追加し始めたところ、スクリプトを積み重ねたのは php メール関数であることがわかりました。なんで?わかりませんが、メールの設定が間違っているのかもしれませんが、メールをコメントアウトすると、すべて正常に動作します。
私の「file to long」エラーはまだ説明されていませんが、気にしないでください。皆様のおかげで