web-dev-qa-db-ja.com

PHPは有効ではありません

PHPでソケットトランスポート「ssl」を有効にするのに問題があります。スクリプトを実行すると、次のエラーが表示されます。

警告:fsockopen()[function.fsockopen]:ssl://www.my.site.com:443に接続できません(ソケットトランスポート「ssl」が見つかりません-PHPの設定時に有効にするのを忘れましたか? )

私はWindowsでIIS6を実行していますが、これを機能させるためにこれまで行ってきたことは次のとおりです。

  • php.iniのphp_openssl.dllおよびphp_sockets.dll拡張機能のコメントを外しました
  • PHPが変更を加えたiniファイルをロードしていたことを確認しました(それは間違いなく他の拡張機能をロードしているので、これは問題ではないと確信しています)
  • php_openssl.dllとphp_sockets.dllが正しい場所にあることを確認しました
  • ssleay32.dllとlibeay32.dllをメインのPHPフォルダー、WINDOWSフォルダー、WINDOWS/system32フォルダーにコピーしました
  • windowsパス変数にPHPの場所が含まれていることを確認しました
  • 関連するすべてのファイルのファイル許可が正しいことを確認しました。

ほぼすべての変更の後、IISを再起動しましたが、運がありませんでした。間違ったことをしていることは明らかですか。 (だから私は除去のプロセスによって問題を理解することができます...?)

残念ながら、Windows/IISは私の専門分野ではありません。他の誰も何も知らないように思われるので、私が担当しました。

53
jelina

成功!

ログファイルをチェックし、php_openssl.dllのアクセス許可が正しいことを確認した後、警告をグーグルで検索し、他にも試すことがありました。

だから私は:

  • windowsパスにC:\ PHP\extを追加しました
  • libeay32.dllとssleay32.dllをC:\ WINDOWS\system32\inetsrvに追加しました
  • サーバーを再起動しました

これらのどれが私の問題を解決したかはわかりませんが、今では間違いなく修正されています! :)

このページで次のことを試してみました: http://php.net/manual/en/install.windows.extensions.php

ご協力いただきありがとうございます!

21
jelina

Xampp 1.8.1サーバーを使用して、コマンドラインでPHP 5.4.0を使用してWindows 7で問題が発生していました。これは私がやったことです:

  1. php.ini-productionの名前をphp.iniに変更します(C:\ xampp\php \フォルダー内)
  2. php.iniを編集し、extension_dir=extのコメントを解除します。
  3. extension=php_openssl.dllもコメント解除します。

その後、うまくいきました。

67
cikatomo

XAMPPバージョン1.7.4サーバーでは、php iniファイルにextension = php_openssl.dll行がありません。 php.iniファイルにextension = php_openssl.dllを追加する必要があります

8
Selvakumar

コメントを外してくださいextension = php_openssl.dll Apacheサービスを再起動してください。

7
Yogesh Unavane

Laravel 4でSSL暗号化を使用して電子メールを送信しようとすると、同じ問題が発生します。

Windows 7 64ビットでWAMPServer 2.2を使用すると、php.iniでphp_opensslのみを有効にし、WAMPServerを再起動し、問題なく動作しました。

フォローしました:

  • WampServerをクリック-> PHP-> PHP extensions-> php_openssl
  • WampServerを再起動します
7
Marko Aleksić

私は、laravelをいじりながら、この問題に出くわしました。

私はWindows用のwampserverを使用しており、/ bin/Apache/apacheversion/bin/php.iniファイルを/bin/php/phpversion/php.iniにコピーする必要がありました

1
Dale

XAMPPを使用していますが、同じエラーが発生しました。これらすべての手順を実行し、環境変数パスを追加し、dllの可能なすべてのディレクトリを/ php、/ Apache/bin、/ system32、/ syswow64などにコピーしましたが、それでもこのエラーが発生しました。

次に、Apacheエラーログを確認した後、パスに角かっこを使用することに問題があることに気付きました。

PHP:構文エラー、予期しない '(' C:\ Program Files(other)\ xampp\php\php.iniの707行目0サーバー証明書にサーバー名と一致するIDが含まれていません

サーバーを「Program Files(x86)」ディレクトリにインストールした場合、エスケープされていない括弧のために同じエラーが発生する可能性があります。

これを修正するには、php.iniファイルを開いて「include_path」を含む行を見つけ、パスを二重引用符で囲んでこのエラーを修正します。

include_path = "C:\ Program Files(other)\ xampp\php\PEAR"

0
Ajay Singh