phpinfoは動くのにWordPressインストールが真っ白な場合に確認したい事の”一つ”
ここではWordPressのサーバー(Apache,PHP)のバージョンを上げ、
新しい環境で既存のローカル環境を移行する過程で遭遇したパターンで、
Apache、PHPのインストール後にWordPressの表示が真っ白になった際の確認手順をご紹介します。
概要
phpinfoは動くのにWordPressインストールが真っ白な場合に確認したい事
今回の「WordPress真っ白な件」は、
既にインストールし稼働しているローカル環境のデータを、
バージョンアップしたApache、PHP環境に移行する際に遭遇したものです。
function.phpやプラグインを変更した直後に、
「WordPress真っ白」とは別の話になりますのでご注意ください。
結論は拡張ライブラリの設定ミス
最初に結論から申し上げますと、単なる設定ミスです。
サーバー設定やらなんやらで動かない理由なんて大半がそれ。
ミスと認識しているか否かは別として分からないまま設定をいれて動かないとかもよくあるもの。
今回は「php.ini」の「extension=xxx」設定に誤りがあって、
正しく拡張ライブラリの読み込みができておらず、
MySQLとの接続に失敗したために「WordPress真っ白」な結果になっていたというだけでした。
今回は「php-5.6.36-Win32-VC11-x64.zip」をダウンロードしてインストールしました。
PHP: Downloads/PHP For Windows: Binaries and sources Releases
Zip [22.08MB] sha256: 44126577080726d1f486a060ada43d3f2d8539a718ae62c14241713425e47cce
ApacheはスレッドセーフなのでThread Safeとなっているものをダウンロードします。
ダウンロードしたファイルを展開したら、
「C:\」などに適宜フォルダを置きインストールを行います。
今回はそのままのフォルダ名「php-5.6.36-Win32-VC11-x64」としましたので、
パスは「C:\php-5.6.36-Win32-VC11-x64」となっています。
PHPのフォルダ内(C:\php-5.6.36-Win32-VC11-x64)には、
「php.ini-development」又は「php.ini-production」という
php.iniのひな形が用意されています。
どちらかのファイルをコピーしてから「php.ini」にリネームしてphp.iniを作成します。
MySQLを利用する場合には編集して、
拡張ライブラリのある場所を指定する必要があります。
; extension_dir = "ext"
を
extension_dir = "C:\php-5.6.36-Win32-VC11-x64\ext"
とフルパスで指定。
※「php-5.6.36-Win32-VC11-x64
」部分は、
PHPをインストールしたフォルダ名で「php5
」など何でも可。
なんか、この「extension_dir = "ext"
」の記述、
phpのフォルダ内にあるだけに、変更しなくても相対パスで動くような気がしません??
ダメなんですね。
ちゃんとインストール(フォルダ配置)したフォルダ名を含むよう、
フルパスで指定してあげる必要があるんです。
テンプレートには元から以下の様な書かれ方をしているのです。
1 2 3 4 5 6 |
; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ; extension_dir = "./" ; On windows: ; extension_dir = "ext" extension_dir = "C:\php-5.6.36-Win32-VC11-x64\ext" |
; On windows:
; extension_dir = “ext”
コメントアウトするだけでいいような書きっぷりにハマります・・・。
ちゃんとフルパス指定です。
相対パス指定ではうまく動きませんでした。
知ってる人には当たり前。
それでもWordPress真っ白とかだと、気づくのは意外に大変だったりするわけで。
パスさえあっていればこんな長ったらしいフォルダにする必要はないですけど、
フォルダ名変えちゃうと元のzipファイルが何だったのか分からなくなるので、
個人的にはそのまま使う方が好みなだけです。
その他、ライブラリの読み込みを有効にするのはお約束です。
;extension=php_mysql.dll
;extension=php_mysqli.dll
を
コメントアウトを外して有効化。
extension=php_mysql.dll
extension=php_mysqli.dll
PHP側でMySQLを使うには、これだけの設定で完了。
お約束のphpinfoの確認をするも、MySQLの項目は表示されていない
パスの設定だけならすぐに気づけよと言われそうなのですが、
php_mysql.dll
の読み込みがされているか、されていないのかは、
phpinfo出力の以下の違いで判断できます。
正しく「php_mysql.dll
」の読み込みが出来ていない場合には、
phpinfoをMySQLで検索しても「mysqlnd」という項目しか表示されていません。
この時の「core」という部分に表示された「extensions_dir」は、
初期php.iniのコメントアウトを外した「ext
」となっています。
「extensions_dir」に対してフルパス指定を行ってブラウザを更新し再度確認します。
※Apache再起動必要。
正しく「extensions_dir」に対して「C:\php-5.6.36-Win32-VC11-x64\ext
」が表示されました。
設定が正しく行えている場合は、
phpinfoをMySQLで検索すれば「mysql/mysqli」が表示されるようになります。
これでWordPressの真っ白症状から解放されました。
phpinfo()が動くならApacheはPHPを実行可能な状態
Apache側でPHPをApacheモジュールとして実行するのであれば、
phpinfo()が実行できることの確認できていればそれでいい。
もし、phpinfo()も確認ができないという事であればApache側の設定になります。
httpd.confにPHPのインストール先のディレクトリ指定と、
PHPのライブラリ読み込みが適切に設定できているかを確認します。
1 2 3 |
PHPIniDir "C:\php-5.6.36-Win32-VC11-x64/" LoadModule php5_module "C:\php-5.6.36-Win32-VC11-x64/php5apache2_4.dll" AddHandler application/x-httpd-php .php |
phpinfo()って、そもそもどうやって表示するのか
あまり必要はないと思いますが、一応補足をしておきます。
サイトの公開ディレクトリ直下(例-C:\Apache\htdocs)などに、
phpinfo.phpという空ファイルでも作成します。
ファイルをテキストエディタで開き、以下のように記述し保存します。
1 2 |
<?php phpinfo(); |
後は、ブラウザからphpinfo.phpにアクセスして表示する。それだけです。
私は好みで「phpinfo.php」としてファイルを作成していますが、
hogehoge.phpでもなんでも構いません。
例では「http://(ドメイン)/phpinfo.php」として表示しています。
お使いの環境によって異なりますが、以下の方が一般的かもしれません。
http://127.0.0.0/phpinfo.php
http://localhost/phpinfo.php
尚、本記事は以下のコンテンツの一部になります。
当サイト内のコンテンツおよび画像を含むすべてにおいて、管理人アルゴリズンが著作権を保持しております。
当サイトでご紹介しております写真等につきましては著作権の放棄はしませんが、
ライセンスフリーでご利用いただいて構いません。
コンテンツを有益であると感じていただけましたら非常に光栄です。
ありがとうございます。
サイト内コンテンツを引用される際には、出典元として当サイト(個別記事)へのリンクをお願いいたします。
申し訳ございませんが、無断転載、複製をお断りさせて頂いております。
公開日: