【XAMPP】XAMPPのPHPのバージョンだけを上げてみたらPHPのPDOが使えなくなった件。

こんにちは。
考えてみたら。
只野です。

PHPの開発でも久しぶりにやろうかなとか思って自身のWindows開発環境の確認をしてみました。私はXAMPPを利用してPHPの開発を楽しんでいます。

PHPバージョンを確認してみました。「5.6.4」と中々前の奴でした。現在PHPの一番新しいのは「7.4.6」です。私の環境古すぎです。はい。そんでとりあえずPHPのバージョンを上げようかなとPHPのダウンロードサイトへ行きました。一番新しい奴は動作が不安定だったりするので、1個下のバージョンの「7.3.18」をダウンロードします。ダウンロードの注意点は自身の環境へ導入しているXAMPPのビット(32bit or 64bit)と合わせます。確認が終わったら「VC15 x64 Thread Safe」を「zip」でダウンロードです。

※下記URLからPHPのダウンロードサイトへ行けます。

https://windows.php.net/download#php-7.3-ts-VC15-x64

バージョンアップ自体はダウンロードしたzipを自身のXAMPP環境のphpフォルダと丸ごと入れ替えます。前のphpフォルダを適当にバックアップして新たにphpフォルダを作ったらその中にzipの中身を丸ごと放り込むだけです。

ここまで完了したら「xampp\apache\conf\extra」配下の「httpd-xampp.conf」設定ファイルを開きphpバージョンの文字を全て修正します。置換ができるテキストエディタを利用すると簡単です。

私の場合は元々「php5」系を利用していたのを今回「php7」系に変更したので設定ファイル内も同じように置換します。

これで準備は整った。前に作ったphpプログラムを起動してみると「PHP Startup: Unable to load dynamic library」とか出てライブラリ読み込みエラーが発生してプログラムが動作しない。ちなみに読み込みエラーが発生していたのは「PDO」ライブラリーでデータベース接続に利用するものです。

「php.ini」の設定を何もしていなかった。「php.ini」の設定で「extension=pdo_mysql」のコメントを解除する。

再度起動してみるが同じエラー。なぜだ。

原因を探るために「apache」のログを確認してみる。よく見たら「C:\\php\\ext\\pdo_mysql.dll」と参照していたが、そんなパスは存在しない。ダウンロードしたphpのwindows環境のデフォルトはc直下にphpフォルダが作成される想定となっているらしい。私の環境は違うのでこれを修正します。

「php.ini」の「extension_dir」に自身のphp環境の「ext」フォルダを指定します。これで問題は解決しただろうと再度起動します。

同じエラー。なぜだ。

「ext」フォルダの中をのぞいてみると「pdo_mysql.dll」なんてライブラリはなかった。あったのは「php_pdo_mysql.dll」なので「php.ini」の設定を「extension=php_pdo_mysql.dll」に変更してみます。再度起動します。

無事に起動しました。

環境周りでこのような問題はプログラムをやる場合の日常です。開発環境を直したおかげで開発する時間は無くなりました。

本日はこの辺で

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です