DELL ノート Inspiron  九十九電機ロゴ  125x125  黒 アフィリエイト リンクシェア ブログ 携帯対応 成果報酬 広告 テンプレート ブログパーツ  スカパー! レンタルサービス

「Fatal error: Call to undefined function: curl_init() in」っていうphpのエラー

delicious はてな この記事をクリップ! | 2007年09月04日01:47 | 編集

- link -

 php5でcurlを使おうと、php.iniの

;extension=php_curl.dll

のコメントアウトを外してApacheを再起動すると、再起動するんだけど

Fatal error: Call to undefined function: curl_init() in (エクステンションのフォルダあたり)

っていうエラーログが吐かれちゃってる。 っていうサーバがありまして、今日あれこれ調べてみましたら、結果的にはパスが通っていなかったっていう原因で。

えっと、php.iniの「extension_dir = 」の所には適切にエクステンションのフォルダを指定してあげます。 これは普通に基本。 私のところのテストサーバでは「C:/php/ext/」であります。 スラッシュでもエンでも、ディレクトリ区切りはどっちでも構わないです。 ただ、半角英数を含むディレクトリ名は御法度だっていう位でしょうか。

んで、Apacheの設定ファイルでありますhttpd.confの中のphpの設定箇所...これは後から追記するんですけど...で「PHPIniDir」を設定している場合には注意が必要で、phpのドキュメントにも

とあり、同じページに

古いバージョンのマニュアルでは、ini ファイルおよび DLL ファイルをシステムフォルダ (C:\WINDOWS など) へ移動させることを推奨していました。この移動により、インストール手順は簡単になりますが、 アップグレードは面倒になっていました。 新しいバージョンのインストールにあたっては、これら移動させたファイル(システムフォルダ内の php.ini や PHP 関連の DLLなど)をすべて削除することを推奨します。

ともあって、あっちこっちにあれこれファイルを移動する手間がPHPIniDirで解決出来るんだぁって早合点して...早合点していいんだけど...phpのバージョンアップ時に関連ファイルを一端退避させてから新しいバージョンので再構築する訳でして。

が、パス通さないとDLL読めないですよって話です。 同じページに書いてあります。

php4ts.dll / php5ts.dll を有効に するには、[1] Windows のシステムフォルダにコピーする方法、 [2] WEB サーバのフォルダにコピーする方法、[3] PHP フォルダ (C:\php) を PATH 環境変数に登録する方法の3つの選択肢があります。メンテナンスを考慮すると、 3番目の環境変数に登録する方法をとるべきでしょう。こうすれば、将来の PHP の アップグレードが容易になります。

そのサーバはこれをしていなかった。 phpのフォルダをPATH環境変数に登録していないので、コメントアウトして定義づけたモジュールが読み込まれず、エラーを発生させるのでありました。

ケアレスミスなんだけど、忘れがち、これ。



追記:phpのcurlに関するマニュアルにも書いてあります。

Win32 ユーザへの注意: このモジュールを Windows 環境で使用可能とするには、 libeay32.dll および ssleay32.dll が PATH の通った場所に存在する必要があります。


Search

Archives

Contact

■Administrator
padmacolors@gmail.com

■Akane Miyashita
akane.padma@gmail.com
イラスト、デザインのお仕事を承ります!

フィードメーター - padma colors / 

スカウター : padma colors / 

(C) 1997-2008 padma colors All Rights Reserved. Powered by Movable Type. RSS feed