1. ホーム
  2. php

致命的なエラーです。iis上のPHP構成のエラー解決における未定義関数mysql_connect()の呼び出し

2022-02-14 08:46:59

php5はapacheでは問題なく動作しますが、iisでは統合されず、データベースにアクセスする際にエラーが報告されます。致命的なエラーです。で未定義の関数mysql_connect()を呼び出しています。

phpinfoのページを見ると、php.iniファイルが読み込まれていない、つまり、phpinfoで見ると、c:/windowsに行けばphp.iniファイルがあるはずなのに、それがないのですが、c:/windowsディレクトリに以下のようにphp.iniファイルがあるのです。

設定ファイル(php.ini)パス C:/WINDOWS
ロードされた設定ファイル(なし)

解決策は、正直なところ、私はどのステップが問題の完全な解決策であるのかわからない、とにかく、一つは、システム環境変数にPHPRCを追加し、このPHPRCは私のPHPインストールディレクトリを指すようにすることです、もう一つは少しiisresetを実行すると、その後、それはOKですが、それはc:/windows/php.iniが読まれていない、phpインストールディレクトリが読み込まれますが、データベースはエラーなしで動いています。

参考記事

PHPとMySQLをインストールしようとするたびに、何かがうまくいかないようです。たいていは、PHPディストロからファイルが欠落しているか、または今回はその両方がありました。
最初にPHPのmsiインストールを試したのですが、最初の失敗でした。MySQL 拡張が含まれていないため、5.2.6 PECL zip ファイルも含まれていません (これはすべての拡張が含まれていると勘違いしていました)。  MSI インストーラを使って PHP をインストールした場合は、 (コントロールパネル - プログラムの追加と削除から) アンインストールしてください。  また、この PHP インストールの名残を手作業で削除する必要があるかもしれません - 私は php ディレクトリを手作業で削除する必要がありました。
では、まっさらな状態で次のことを行ってください。
   PHPのzipパッケージはこちらからダウンロードしてください。
   zipを解凍します。私の場合はC:/PHP5に解凍します。
   3. 3. php.ini-recommended をコピーし、php.ini にリネームします(同じディレクトリー内)。
   4. php.iniを編集し、以下のように変更します。
         1. 拡張子のディレクトリを設定します。
            extension_dir = "C:/PHP5/ext"
         2. 2. mysqlの拡張設定をアンコメントする。例えば、行頭の';'を削除する。
            拡張子=php_mysql.dll
   5. IIS管理ツール内。
         1. アプリケーション構成(サイトの「ホームディレクトリ」内)で、php拡張子を追加し、「php」をphp5isapi.dllにマッピングします(例:D:/php-5.2.6-Win32/ php5isapi.dll).
         2. Web Service Extensions に php5isapi.dll (例 D:/php-5.2.6-Win32/php5isapi.dll) を追加し、「Allowed」に設定します。
   6. 6. 環境変数 PATH を更新し、php のディレクトリを含めます(例:D:/php-5.2.6-Win32)。
   7. 7. PHPRCという環境変数を追加し、phpのディレクトリ、例えばD:/php-5.2.6-Win32に設定します(この部分はIISのインストールドキュメントにありませんでした)。
   8. 8. iisを再起動します(例:コマンドプロンプトからiisresetを実行)。
ビンゴ - これで完了です。テストするには、phpinfo.phpというファイルを作成して(Webルートに置いて)、次のように記述します。
<?php
phpinfo();
? >
ここで確認すべき重要な点は、このphpinfoの出力で、「読み込まれた設定ファイル」が上記で作成したphp.iniファイルに設定されているかどうかです。PHPがmysqlを使用するように正しく設定されている場合、この(phpinfoの出力)にはMySQLセクションがあります - これがない場合 - 何かが間違っているのです。