こんにちは。
考えてみたら。
只野です。
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のダウンロードサイトへ行けます。
バージョンアップ自体はダウンロードした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」に変更してみます。再度起動します。
無事に起動しました。
環境周りでこのような問題はプログラムをやる場合の日常です。開発環境を直したおかげで開発する時間は無くなりました。
本日はこの辺で