通常であれば、phpinfo()のページが表示されます。このページを表示できるようになった後に発生する問題から始めましょう。PHP
の問題は phpinfo() ページに表示されます。
まず、php.ini
のパスが正しいかどうかを確認してください。
ファイルを作成しましたが、サーバーを再起動しても何も機能しないのはなぜですか?
A: この問題は主に以下の状況に関係します。
最初の理由は、システムによって読み取られた php.ini ファイルが、その時点で変更した php.ini ファイルと矛盾していることです。 1. の設定ファイル (php.ini) パス オプションを通じて、現在の PHP サーバーの読み取りを確認できます。 phpinfo() php.ini はどれですか
2. php.ini のファイルアクセス場所を変更したい場合は、以下に示すように php.ini の検索順序を参照できます。
a) SAPI モジュールによって指定された場所 (Apache 2 の PHPIniDir ディレクティブ、CGI および CLI の -c コマンドライン オプション、NSAPI の php_ini パラメータ、THTTPD の PHP_INI_PATH 環境変数)
b) HKEY_LOCAL_MACHINESOFTWAREPHPIniFilePath (Windows レジストリの場所)
c) PHPRC 環境変数 d) 現在の作業ディレクトリ (CLI の場合)
e) Web サーバー ディレクトリ (SAPI モジュールの場合) または PHP が配置されているディレクトリ (Windows のその他の場合)
f) Windows ディレクトリ (C:windows または C:winnt)、または --with-config-file-path コンパイル時オプションで指定された場所 3. 一般的なアプローチ: PHPRC 環境変数を設定することにより、
a) 操作: [マイ コンピュータ] を右クリックして、[プロパティ] -> [詳細設定] -> [環境変数] b) システム変数の下に新しい環境変数を作成します。「変数名は PHPRC、変数値は php.ini ファイルのファイル パスです」
。PHP
が対応する拡張ライブラリを見つけられませんでした。 1. PHP によって見つかった拡張ライブラリの場所を確認します。それは phpinfo() の extension_dir オプションで確認できます。 2. php.ini の extension_dir ファイルを変更します
。 3 番目の理由: IIS を完全に再起動することはできません
1. php.ini への変更を有効にするには、現在のサイトだけでなく完全に再起動する必要があります。
2. cmd を入力し、サーバーを停止します: net stop iisadmin サーバーを起動します: net start w3svc
Q: PHP で MySql 拡張ライブラリをアクティブ化できないのはなぜですか?
A: PHP5.0 以降では、MySQL はデフォルトで有効になっていないため、手動で有効にする必要があります。
1. PHP で MySql を実行するには、php.ini の php_mysql.dll ダイナミック リンク ライブラリをアクティブにする必要があります。さらに、MySQL クライアント リンク ライブラリ、つまり libmysql.dll ファイルにアクセスする必要があります。 php.ini の拡張子を介した php_mysql.dll ダイナミック リンク ライブラリ、および libmysql.dll ファイルにアクセスするには、libmysql.dll を system32 ディレクトリにコピーするか、追加することができます。 PATH 環境変数への新しいパス。
3. 推奨されるアプローチ: 将来の PHP アップグレードを容易にするために、システム環境変数の PATH の後に「libmysql.dll」が存在するフォルダーを追加するだけです。必ず「;」で区切ってください。 4. 【事例】 最近、サーバーが MySql 拡張ライブラリを見つけることができず、プログラムが実行できなくなりました。そのため、すべてのファイルを削除し、PHP サーバーを再構成してください。しかし、結局、MySql をインストールしても、MySql 拡張ライブラリをアクティブ化できませんでした。
phpinfo() で見つかる情報は次のとおりです。
パス:c:php
PHPRC:C:php
拡張ディレクトリ:c:phpext
さらに、msql、gd2、xml などの他のライブラリのアクティブ化をテストしました。それらは phpinfo() で正常に表示でき、PHP が php_mysql.dll ダイナミック リンク ライブラリを見つけることができることが証明されました。また、MySql の動作のもう 1 つの条件は次のとおりです。 MySQL クライアントにクエリを実行できるようにするためのターミナル接続ライブラリは libmysql.dll ファイルです。問題はここにあるようです。
C ドライブで libmysql.dll ファイルを検索したところ、system32 フォルダーと php フォルダーにファイルがあることがわかりました。バックアップを作成した後、system32 の libmysql.dll ファイルを削除しようとしたところ、ロックされていることがわかりました。削除はできませんでしたが、名前を変更することはできました。何気なく名前を変更して IIS を再起動したところ、サーバーは正常に実行されました。
追加のポイント: 構成ファイル (php.ini) のパスが C:Windows と表示されている場合は
、php.ini ファイルが読み込まれていないことを意味します。
また、IIS を使用して php を統合する場合、ISAPI モードと CGI モードの 2 つの方法があることがわかりました。
どちらの方法でも、phpinfo ページは表示されます
が、ISAPI モードを使用すると、環境変数を読み込むことができないため、環境変数 PHPRC が使用されます。が設定されています。php.ini パスが見つかりません。
CGI を使用するだけなので、多くのファイルをシステム ファイルにコピーする必要はありません。