web-dev-qa-db-ja.com

WindowsでCURLをPHPで動作させるには?(WAMP)

更新:この問題は、私のPHPインストールのどこかでDLLが破損しているか、Win2kのPHP 5.2.9のバグであるようです。 PHP 5.2.10のWindows(バイナリのみ)ディストリビューションをphp.netからダウンロードし、それをc:\ PHPディレクトリに抽出しました。それを行った後、すべてがうまくいきました。

pdate2:以前に試したすべて(下記の箇条書きのリストからすべて)を元に戻しました。exceptextension=php_curl.dll」をコメント解除したままphp.iniファイル。適切なインストールで行う必要があるのはこれだけです。


私はPHP(バージョン5.2.9-2)のWindowsインストールでCURLを動作させようとしていますが、私は機知に富んでいます。 PHP CURLインストールページこのSO質問 参照する このページ 、および this SO question 。これらすべてのページでほとんどの提案を試しましたが、それでもエラーが発生します。これが私の非常に簡単なテストページです。

<?php
$ch = curl_init();
?>
<b>Success!</b>

これは私に与えます:

致命的エラーC:\ ApacheRoot\curltest.phpの未定義関数curl_init()の呼び出し2

私のApacheエラーログでは、サーバーが起動するたびにこれを取得します:

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll' - The specified procedure could not be found.\r\n in Unknown on line 0

私は次のことをしました:

  • Php.iniの次の行のコメントを外しました:extension=php_curl.dll
  • ssleay32.dllおよびlibeay32.dllをC:\ PHPからC:\ WINNT\System32にコピーしました
  • curl.haxx.se からWin32のcURLをダウンロードし、.ZipファイルをC:\ cURLに抽出しました
  • システムPATH環境変数にC:\cURLを追加しました。
  • 検証済み:
    • php.iniにはextension_dir="C:\PHP\ext"が含まれます
    • ディレクトリC:\PHP\extにはphp_curl.dllが含まれています
    • 私のシステム上の唯一のphp.iniファイルはC:\PHPにあります(つまり、C:\WINNT\php.iniが特にないこと)
    • Apache httpd.confファイルにはPHPIniDir "C:/PHP/"行が含まれています

また、マシンを再起動しました(実際には数回...)。

29
Kip

コンピューターを再起動する必要はありません。Apacheを再起動するだけで、phpモジュールが新しいiniを読み取ります。
正しいphp.iniを変更しましたか?疑わしい場合

<?php echo 'php.ini: ', get_cfg_var('cfg_file_path'); ?>

あなたに伝えることができます。

Apacheのerror.logに、phpとphp_curl.dllの読み込み中に何か問題が発生したことを示すものがありますか?

Apacheをwin32サービスとして開始しましたか?コンソールアプリケーションとして起動しようとした場合。エラーメッセージがコンソールに表示されます。または、サービスとして起動し、error.logファイルを確認します そして Windowsイベントログ(開始、実行、eventvwr.msc /s)。

編集:
「指定されたプロシージャが見つかりませんでした」
PHPバージョンおよびビルドと互換性のあるdllが必要です。正確に何をインストールし、どこから入手しましたか?

9
VolkerK

これを試して:

  1. WAMPを完全に停止します。
  2. WAMPフォルダーを見つけます:C:\ Path\To\WAMP\bin\Apache\ApacheVersion\bin \
  3. そのphp.iniを編集し、extension = php_curl.dllのコメントを外します
  4. WAMPを再起動します。

うまくいけば解決するはずです。

* EDIT:同じことを@ C:\ Path\To\WAMP\bin\php\PHPVersion \に行います

7
Mr. Smith

With PHP 5.6.9 on Windows Server Core 2012 x64 cURLは機能していませんでした。php.iniでphp_curl.dll拡張機能のコメントを解除し、Apache 2.4サービスを再起動しても、phpinfoに表示されません。 phpパスと$ evn:pathへのphp\extパス。

修正:他のphp_curl.dllファイルをダウンロードする必要がなかったため、PHP 5.6のファイルを見つけることができませんでした。最終的に機能したのは、これら3つのファイルをApache24\binフォルダーにコピーすることでした次に、Apacheを再起動します。

libeay32.dll

libssh2.dll

ssleay32.dllこれらをSystemまたはSystem32にコピーする必要はありませんでした。

1
DCR

これは私のために働いたものです

別のSorenによる回答SO thread- CAMP for WAMP

「どこかにバグがあるようです。Win7 64ビットでこの問題が発生している場合は、Apacheアドオンバージョン2.2.9とphpアドオンバージョン5.3.1をインストールし、WAMPに切り替えてからCURL拡張機能をアクティブにしてみてください。私のために。"

1

これは私のためにそれを修正しました:

ここに行く:

http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

「php_curl-5.3.13-VC9-x64.Zip」をダウンロード

WAMPサーバーの実行を停止する

ファイル「php_curl.dll」を抽出します。

ローカルマシンで、c:\ wamp\bin\php\php5.3.13\ext(またはWAMPインストールが見つかった場所)を参照します。

Php_curl.dllの名前をphp_curl.dll.old(または選択したもの)に変更し、新しいファイルを上記のディレクトリにコピーします。

WAMPサーバーを再起動します

これですべて正常に動作するはずです。

1
RustyIngles

私はphp-5.5.26-Win32-VC11-x64(Windows)で同じ問題を抱えていたので、ここにリストされているものすべてを運よく試しました。最後に PHPインストールディレクトリをWindowsのパスに追加 を追加することで機能しました。

1
Master Drools

両方のphp.iniファイル(Apacheフォルダーとphpフォルダーにある)からモジュールのコメントを外した後、およびphp_curl.dll **を取得したことを確認した後でも問題が解決しない場合

C:\ WAMP\bin\php\php5.3.13\ext

元のDLL WAMPSERVERに付属しているものをこのWebサイトのいずれかと置き換えてください:

http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

私の問題はそこにありました!それが役に立てば幸い。

0
Lothre1