XAMPP(ザンプ)を使ってパソコン上でワードプレスを動作させて、テストや確認を行ってます。

ブログのPHPバージョンをエックスサーバー上で7.2.17にするにあたって、XAMPPも同じ環境に使用と、PHPバージョンを 5.6.28 から 7.2x に上げようとしたところ大苦戦のトラブルしまくり。

XAMPPのPHPのバージョン変更作業にかかる時間は、普通にやれば数分レベル。でも今回はエラーメッセージが表示されて悩みに悩んで、結果、日をまたいで延べ数時間かかって、できた!と思ったら、最終的にワードプレスの表示ができませんでした。(くぅぅ)

結局、散々時間をかけた挙句、XAMPPを一旦アンインストールとして新しいバージョン(PHPが7.2xのもの)をインストールしなおした、ということになりました。

どこでどうなって結局できなかったのか、というところの誰かの参考になれば、ということで記録を残しておきます。

手順1)PHPのダウンロード

まずは、このバージョンにしたい、というPHPのダウンロードから。
以下にアクセスして、必要なPHPパッケージをダウンロードします。

PHP For Windows: Binaries and sources Releases
https://windows.php.net/download

PHPのダウンロードページ

こんなページが表示されるので、必要なPHPバージョンを探します。

今回は、エックスサーバー上で変更予定の7.2にしたいので、「VC15 x86 Thread Safe」を選択。

↓↓↓↓↓↓

  • 「VC15 x86 Thread Safe」のZipをクリックしてダウンロード!

ポイント1:XAMPPはx86を選ぶ?

XAMPPのバージョンにもよるみたいですが、XAMPP(v3.2.2)は32bit版ソフトらしいので、ここではx86版を選んでます。自分の使っているパソコンが64bit版だからと言って64bit版(x64)は選ばない。

ただ、新たにXAMPP(v3.2.4)をインストールしたら 64bit版みたいなので、確認しておく必要がある。

参考)
ワードプレスのブログをパソコン上で動かすソフト!XAMPPのインストール方法を詳しく解説

ポイント2:「Thread Safe」を選ぶ

よく見ると「Non Thread Safe」というのと「Thread Safe」という2種類がある。(私のように)注意してないと最初に目にする「Non Thread Safe」を選んでしまって、これがトラブルの元。

「Non Thread Safe」では、XAMPPでPHPが動作するために必要な「php7ts.dll」「php7apache2_4.dll」が含まれてないため、XAMPPのApacheを起動すると以下のようなエラーが出てメチャメチャ悩むことになる。

エラーメッセージは以下の通り(参考までに)

Error: Apache shutdown unexpectedly.
This may be due to a blocked port, missing dependencies, improper privileges, a crash, or a shutdown by another method.
Press the logs button to view error logs and check the Windows Event Viewer for more clues.
If you need more help, copy and post this entire log window on the forums.

Apacheが予期せずシャットダウンしたぞ!
ポートがブロックされているか、何か依存関係や権限がおかしいか、クラッシュしたかみたいだ。ログボタンを押してエラーログを見てチェックしてみてくれ。
助けが必要ならフォーラムにエラーメッセージをコピーして投稿してみてね。

というような内容。
要するに、何らかの原因でシャットダウンしたよ、ということですね。

こんなメッセージに悩まされないように、必ず「x86 Thread Safe」版を選びましょう。

手順2)PHPの解凍とリネーム

ダウンロードしたPHPは「~.zip」という圧縮ファイルになってるので、クリックしてまず解凍。

グーグルクロームでPHPファイルをダウンロードした時の表示
  • 「php-7.2.19... .zip」というファイルがダウンロードされた
  • クリックして解凍する!

↓↓↓↓↓↓

解凍すると、ダウンロードしたバージョンの名前のphpフォルダがデスクトップなどに出来ます。

解凍してできたPHPフォルダ

手順3)PHPフォルダーをXAMPPへ

ダウンロードして解凍したphpフォルダをXAMPPへ持って行きます。(XAMPPフォルダーの場所が分からなければ、以下の操作をすればOK)

  • ①:XAMPPを起動(コントロールパネルを開く)
  • ②:「Explorer」をクリック!

↓↓↓↓↓↓

XAMPPフォルダーが開くので、まず元々ある「php」フォルダーの名称を適宜変えてバックアップしておく(何かあった時にすぐ元に戻せるようにしておく)

  • ここでは「php-5.6」と変えているが、「php-古い」「php-使わない」など分かるように名称変更しておけばOK

↓↓↓↓↓↓

続いて、先ほどダウンロードして名称変更した「php」フォルダーを、この場所に移動し、フォルダ名称を単に「php」に変更します。

phpフォルダをXAMPPフォルダに移動し、名称を「php」に変更
  • ダウンロードしたphpフォルダを移動する
  • フォルダ名称を「php」に変更する

ポイント:まだApacheは起動しない

単純に新たなバージョンをXAMPPフォルダに持って行っただけでは(ある意味当たり前ですが)Apache は起動しない。上の方で見た同じメッセージが表示されるだけ。

手順4)php.iniへ名称変更

新たに追加した php フォルダ内には php.ini がないので、「php.ini-production」を「php.ini」へ名称変更しておく。

  • 「php.ini-production」を「php.ini」へ名称変更

ここまでで、新たな php への差し替えは一旦完了ですが、Apacheを起動しようとしてもまだ同じエラーが出るだけの状態。

最後に、Apache と新たなPHPとの連携が残ってます。

ポイント:php.ini はまずそのまま使う

以前使っていた「php.ini」を使いたい、という場合でも、ひとまずこの手順通りにしておく方が無難。

Apache が正しく動作するのを確認後に、以前の php.iniを使いたいなら使う(差し替える)など、トラブルが起きた時にややこしくならないようにしておくのが良さそう。

手順5)Apache と PHP の連携

最後に、Apache と 新たなに入れた php との関連付けを行うため「httpd-xampp.conf」の編集を行います。

ファイルの在りか:xampp ⇒ apache ⇒ conf ⇒ extra

httpd-xampp.confの在りか

テキストエディタで「httpd-xampp.conf」を開き、「php5」の箇所を全て「php7」に変更します。(一括で置換すればOK!)

行数(目安)変更前変更後
17行目LoadFile "C:/xampp/php/php5ts.dll"LoadFile "C:/xampp/php/php7ts.dll"
19行目LoadModule php5_module "C:/xampp/php/php5apache2_4.dll"LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"
39行目IfModule php5_moduleIfModule php7_module
67行目IfModule php5_moduleIfModule php7_module
99行目IfModule php5_moduleIfModule php7_module

以上でXAMPPのPHPバージョンアップ作業は終了!

ポイント:元々のphpバージョンを確認

今回は、XAMPPに入っていた元々のphpバージョンが 5.6.28 だったため、「php5」箇所を変更してますが、変更前のphpバージョンが他のバージョンであれば、ここで見るphp5の箇所が何になっているかを確認してみてください。

実際の動作

一通りPHPバージョンアップ作業は終わったので、実際に Apache を起動したり、phpバージョンがXAMPPでどのように表示されるか見てみます。

ApacheやMySQLの動作

XAMPPのコントロールパネルから、ApacheとMySQLをスタートしてみる。

見かけ上、普通に動いているようで物凄くホッとします(笑)

続いてPHPバージョンも見てみると、...

今回入れたPHPバージョンである「7.2.19」になってますね。(想定通り)

XAMPPのPHPバージョンの見方は以下参照
XAMPPのPHPバージョンの簡単な調べ方!ワンクリックで分かる?

ワードプレスの動作

最後の確認として、パソコン上でワードプレスを動かしてみると(ワードプレスのサイトを表示させてみると)...

XAMPPを使ってワードプレスのサイトを表示させようとすると、このように

「このページは動作していません localhostでは現在このリクエストを処理できません。HTTP ERROR 500」

ぐわ...最後の最後でまたエラーが出ちゃったよ。...(もう心が砕けそう)

エラーログを確認する

今までエラーログなどというものは確認したことありませんでしたが、どうにも分からないので初めて確認してみました。

  • ①:Apacheの「Logs」をクリック
  • ②:「Amache (error.log)」を選択

ズラーッと長いエラーのログ(記録)が表示されますが、その一番最後を見てみると、以下の様に表示されてます。

分かりづらいですが、以下のような感じ。

PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect() in ~

ざっくり言うと、「mysql_connect() という見知らぬ関数が使われてるよ、というもの。調べてみたら、PHPのバージョン7では、mysql関数(mysql_xxx()という関数)がなくなっているんだそうな。(まじか)

このため、php.iniを以下の様に編集しますが、私の場合はこれでも結局「このページは動作しません」と表示され、ワードプレスのサイトが表示できませんでした。

php.ini の編集

このエラーを回避するには、php.ini を以下の様に編集します。

  • 「extension=mysqli」の先頭の「;」を削除する

「;」が付いているとコメント扱いのようで、これを削除すると実際にその行が有効になる、ということのようですね。

で、これで解決か、と思ったら、やっぱり同じエラーが出てワードプレスのサイトは表示できず。

更に、何気にXAMPPのコントロールパネルの中で「MySQL」の「Admin」をクリックすると以下のエラーも表示される。

The mbstring extension is missing. Please check your PHP configuration.」と表示されますが、どうやら更にファイルを編集したりする必要がありそうで、ここまできてギブアップ。

XAMPPで既に試しているサイトのデータ移行が面倒かも、だったらPHPだけバージョンアップすればいいじゃん、と考えたわけですが、手ごわすぎる。

このまま更にphp.iniなどを修正したりして仮にうまく動作するようになっても、また何か問題が出て、それがワードプレスの問題なのかXAMPPの問題なのか、調べたり対応したりするのに更に時間がかかるかもしれない、そうなるとしょっちゅう泥沼化するかも、というところで、PHPバージョンアップは諦めました。

(結局一旦XAMPPはアンインストールして、新しいバージョンのXAMPPを入れなおした)

XAMPPのPHPバージョンアップを試みましたが、ダメだった話し。何かしらお役に立てれば幸いです。(ノД`)・゜・。

早期退職して海外で奮闘する JIN のメールマガジン

時間や場所に縛られず稼いだJINが教える

~ 最短で月収10万円稼げるようになる方法 ~

お名前(全角文字)

隣のあの人にも、思わず教えたくなる秘密

配信停止は、いつでもできます

迷惑メールは一切配信されませんので、ご安心くださいね

自らの手で未来を変える力を手に入れる!