ホームページ >バックエンド開発 >PHPチュートリアル >win2003 iis が php を統合した後、環境変数を読み取ることができなくなります_PHP チュートリアル

win2003 iis が php を統合した後、環境変数を読み取ることができなくなります_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:22:25880ブラウズ

通常であればphpinfo()のページが表示されます。ページを表示できるようになった後に発生する問題から始めましょう。

phpの問題はphpinfo()ページに表示されます。

まず、php.ini のパスが正しいかどうかを確認してください。

Q: php.ini ファイルを設定しましたが、サーバーを再起動しても効果がないのはなぜですか?

A: この問題には主に以下の状況が関係します。

最初の理由は、システムによって読み取られた php.ini ファイルが、その時点で変更した php.ini ファイルと矛盾していることです

1. 現在の設定ファイル (php.ini) は、設定ファイル ( php.ini) phpinfo()のPathオプション PHPサーバーがどの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 のファイル パス」で新しい環境変数を作成します。 file"

2 番目の理由は、PHP が対応する拡張ライブラリを見つけられませんでした

1. PHP が見つけた拡張ライブラリの場所を確認します: phpinfo() の extension_dir オプションで確認できます

2. php.ini の extension_dir ファイル

3 番目の理由: IIS が完全に再起動されていません

1. はい php.ini の変更を有効にするには、現在のサイトを再起動するだけでなく、IIS を完全に再起動する必要があります。

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 ファイルにもアクセスする必要があります

2. php.ini php_mysql.dll ダイナミック リンク ライブラリの拡張子を通じてアクティブ化され、それにアクセスするには libmysql.dll ファイルを Windows システム パス PATH に配置する必要があります。libmysql.dll を system32 ディレクトリにコピーするか、新しいファイルを追加します。 PATH 環境変数へのパス。

3. 推奨されるアプローチ: PATH を設定することで将来の PHP アップグレードを容易にするには、システム環境変数の PATH の後に「libmysql.dll」が存在するフォルダーを追加します。忘れずに「;」で区切ってください

4. 【事例】 最近、サーバーがMySql拡張ライブラリを見つけることができず、プログラムの実行に失敗します。そのため、すべてのファイルを削除し、PHP サーバーを再構成してください。しかし、結局、MySql をインストールしても、MySql 拡張ライブラリをアクティブ化できませんでした。

phpinfo()で見つかった情報は次のとおりです:

PATH: c:php

PHPRC: C:php

extension_dir: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ファイルが読み込まれていないことを意味します。

さらに、php を IIS と統合する場合、ISAPI モードと CGI モードの 2 つの方法があることがわかりました

どちらの方法でも、phpinfo ページを表示できます

しかし、ISAPI モードを使用すると、環境変数を読み取ることができません。環境変数 PHPRC で設定された php.ini パスが見つかりません。

CGI を使用するだけなので、多くのファイルをシステム ファイルにコピーする必要はありません。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446966.html技術記事通常であれば、phpinfo()のページが表示されます。ページを表示できるようになった後に発生する問題から始めましょう。 PHP の問題は phpinfo() ページに表示されます。 まずは自分自身を見つめてください...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。