HTTPS にアクセスすると、curl_exec が 502 エラーを返す問題を解決するには、ソース コードから PHP5.5.0 をコンパイルしてインストールします。

WBOY
リリース: 2016-06-23 13:38:35
オリジナル
1553 人が閲覧しました

最近、PHP がcurl_execを使用してHTTPS Webページにアクセスすると、502エラーが返されます。opensslとcurlをサポートしています。インターネット上で多くの情報を見つけましたが解決しませんでした。


[root@www ~]# php -VFailed loading /usr/local/zend/ZendOptimizer.so:  /usr/local/zend/ZendOptimizer.so: undefined symbol: zend_throw_exception_internalPHP Warning:  PHP Startup: memcache: Unable to initialize moduleModule compiled with module API=20060613PHP    compiled with module API=20090626These options need to match in Unknown on line 0PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/openssl.so' - /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/openssl.so: undefined symbol: zend_parse_parameters_none in Unknown on line 0
ログイン後にコピー

#php -V を使用して表示すると、openssl.so のロードに失敗したことが示されており、openssl ライブラリに関連しているようです。 openssl ライブラリを再インストールしましたが、問題は解決しません。 その理由は、openssl ライブラリが zend を使用しているためです。上記のプロンプトを見ると、zend ライブラリもエラーを報告していることがわかります。 これに対処するには、おそらく zend ライブラリを再インストールする必要があります。 問題はありませんが、ソース コードから直接 php をコンパイルすることは許可されていません。そのまま実行してください。

: PHP 5.5.0.tar.gz でダウンロード 得られる質問も異なります。



1. エラーが発生しました xpm.h が見つかりません

# yum install libXpm-devel // x は大文字であることに注意してください

# yum install libXext-devel // .h が見つからないことに注意してください

#yum install gmp

#yum install gmp-devel


3. エラーが発生しました: utf8_mime2text() には新しい署名がありますが、U8T_CANONICAL がありません これは起こらないはずです

#yum install libc-client-devel


4.エラーが発生しました: ICU プレフィックスまたは /usr/bin/icu-config を検出できませんでした

#yum install libicu*

#yum install icu*

5 エラーが発生しました: ODBC ヘッダー ファイル '/usr/ include/sqlext.h' が見つかりません

#yum install unixODBC-devel

6. エラーが発生しました: pspell

#yum install aspell-devel

7 が見つかりません、エラーが発生しました: recode.h が見つかりません/usr /usr/local /usr /opt のどこかに net-snmp-config binary


#yum install net-snmp-devel

9 が見つかりません。

#yum install libtidy-devel


php のインストール これで完了です。php ページをテストしましたが、問題は残りました。最後に、phpinfo() 関数で表示されるバージョンは 5.2.17 です。私がインストールしたのは 5.5.0 です。明らかに、nginx サーバーはまだ


古い php を使用しています。検索したところ、古い php のディレクトリは /usr/local/bin/php でした。新しくインストールしたphpのディレクトリは/usr/bin/phpです


理由 最新のphpを使用していない場合は、明らかに環境変数PATHに関連しています。envコマンドを実行して


PATHを確認してください。 =/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin: /bin:/usr/sbin:/usr/bin:/root/bin

変更できます/etc/profile ファイルを作成し、ファイルの最後の行を次のように入力します:


export PATH=/usr/local/mysql/bin :$PATH


次のように変更します

export PATH=/usr/local/mysql/ bin:/usr/bin:$PATH


次に


# cd /etc

# ソースプロファイル プロファイルファイルをリロードします

最後に、curl_exec が https ファイルにアクセスしてデータを取得できることをテストします。



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!