2016-07-19 17 views
0

この問題に関しては、他にもいくつかの記事があります。違いは、私が厄介なURLを出してくれることです。curlコマンドラインが動作し、php shell_exec()が実行されない

これは動作します: curl https://pas-gdl.overdrive.com/advanced-search

は、これは動作しません: $pagesource = shell_exec("curl https://pas-gdl.overdrive.com/advanced-search");

を私は恐ろしい51エラーを取得:「カール:(51)SSL:なし代替証明書のサブジェクト名は、ターゲット・ホスト名と一致しません「PASを-gdl.lib.overdrive.com '"

ワイルドカードSSL証明書が含まれています。私はコマンドラインカールがデフォルトで可能な解決策として何をしているのか把握しようとしました。しかし、私がshell_execで同じコマンドを実行しているのを見ても、違いはないはずです。

コマンドラインオプションで詳細検索htmlが生成され、shell_execは表示されません。なぜ大いに評価されるかに関する情報。代わりに

+1

1は、PHPスクリプトから走ったよりも別のユーザーでシェルを実行経由で起動 'curl'に見えます。いくつかの解決方法がありますが、最初に気にするのは '--insecure'スイッチを使ってSSL検証を無効にすることです。もう一つは[guzzle](https://github.com/guzzle/guzzle)のようなライブラリを使って 'shell_exec'を試してみる必要がないようにすることです。第3の方法は '$ pagesource = file_get_contents( 'https://pas-gdl.overdrive.com/advanced-search')'を試みることです。 –

+0

リダイレクトエラーにつながる '-k'を試しました。私は 'file_get_contents'を試みましたが、' 'blah.phpで暗号を有効にできませんでした.' –

+0

まだ対戦していません.. –

答えて

関連する問題