apache+php で php5ts.dll エラーが発生しました
過去 2 日間、apache+php をインストールするときに php5ts.dll エラーが発生しました。数日悩んだ結果、ようやく原因が分かりました。
1. プラットフォーム
オペレーティング システム: Windows 2003、
Apache: 2.2.17.0、httpd-2.2.17-win32-x86-openssl-0.9.8o.msi インストール パッケージを使用、
PHP: 5.3.5.0、Apache モジュール メソッドを使用、php-5.3.5-Win32-VC6-x86.msi インストール パッケージを使用します。
2. インストールプロセス
インストール後、httpd.exe が正常に起動します。 phpをインストールし、apacheモジュール方式を選択してDドライブにインストールします。 PHP がインストールされたら、Apache の httpd.conf ファイルを開き、ファイルの末尾の設定を次のように修正します:
PHPIniDir "d:/program files/php/"
LoadModule php5_module "d:/program files/php/php5apache2_2 .dll」
三. エラー
httpd起動時にエラーが発生しました。ログを表示します。 Apache の error.log は次のように記録されます:
[warn] pid ファイル D:/Program Files/Apache Software Foundation/Apache2.2/logs/httpd.pid が上書きされました -- 以前の Apache 実行の不正なシャットダウン
Windows イベント ビューア /アプリケーションは次のように表示されます:
アプリケーション エラーのイベント詳細: エラー アプリケーション httpd.exe、バージョン 2.2.17.0、エラー モジュール php5ts.dll、バージョン t5.3.5.0、エラー アドレス 0x000e890c。
オンラインで調べたところ、php5ts.dll のエラーの処理について知りました。理由の 1 つは、PHP が独自のバージョンの DLL しか使用できないためで、システム パス変数により他のバージョンの DLL が最初に参照されると、エラーが発生します。 。このようなエラーに対処するには、他のバージョンの dll を削除するか、システムの PATH 変数を変更して PHP の dll を先頭に置くか、PHP の dll をシステムの System32 ディレクトリに置きます。ただし、私のパスには問題はありません。PATH 変数の PHP インストール ディレクトリはまだ System32 より前であり、php5ts.dll の他のバージョンはありません。複数のインストールバージョンを試してみましたが、問題は解決できませんでした。
4. 最終的な解決策
最後に php.ini ファイルを再度確認し、構成
error_log="C:WindowsTempphp-errors.log" を見つけます。
C:WindowsTempphp-errors.log を開きます:
[14-Mar-2011 10:22:15] PHP 警告: PHP 起動: ダイナミック ライブラリ 'D:Program FilesPHPextphp_oci8.dll' をロードできません - 指定されたモジュールが見つかりません。
行 0 の不明
[14-Mar-2011 10:22:15] PHP 警告: PHP 起動: ダイナミック ライブラリ 'D:Program FilesPHPextphp_oci8_11g.dll' をロードできません - 指定されたモジュールが見つかりませんでした。
行 0 の不明
[14-Mar-2011 10:22:15] PHP 警告: PHP 起動: ダイナミック ライブラリ 'D:Program FilesPHPextphp_pdo_oci.dll' をロードできません - 指定されたモジュールが見つかりませんでした。
行 0 の不明
[14-Mar-2011 10:22:15] PHP 警告: PHP 起動: ダイナミック ライブラリ 'D:Program FilesPHPextphp_sybase_ct.dll' をロードできません - 指定されたモジュールが見つかりませんでした。
0 行目の Unknown
次に、もう一度 php.ini に戻り、上記の 4 つのモジュールをコメントアウトします:
[PHP_OCI8]
;extension=php_oci8.dll
[PHP_OCI8_11G]
;extension=php_oci8_11g.dll
[PHP_PDO_OCI]
;extension=php_pdo_oci.dll
[PHP_SYBASE_CT]
;extension=php_sybase_ct.dll
Apache を再起動します。成功しました。
5. まとめ
PHP をインストールするとき、フルインストールを選択しました。インストールは完了しているにも関わらず、当該dllモジュールがインストールされておらず、それらのモジュールがphp.iniで参照されていたため、httpd.exe起動時にphp参照時にエラーが発生し、エラーメッセージが表示されたものと推測されます。 php5ts.dllと表示されました。したがって、php5ts.dll エラーが発生した場合は、php の error_log を確認することをお勧めします。