Docker WordPressをスマホから確認する設定|wp-config.phpでWP_HOME指定
概要
Docker WordPressをスマホから確認する設定について解説していきます。
というのもDockerでローカルに立てたWordPress、PCブラウザでは見えるのにスマホからだと画面が崩れたりログインできなかったりして困りますよね(- -;
これはWordPress側がアクセス先URLをlocalhostとして記憶してしまうのが原因で、スマホから別のIPアドレスでアクセスするとCSSや管理画面のリンクがズレてしまうんですね。
実はwp-config.phpのWP_HOME・WP_SITEURL指定を設定すれば、同じLAN内のスマホからでも普通にレイアウト確認やログインができるようになります。
ここではdocker-compose.yml・custom-php.ini作成からwp-config.phpのWP_HOME指定、ipconfigでのIP取得までの手順を一通り紹介していきます!
これでスマホ表示でのレスポンシブ確認もサクサク進みます。
それではやっていきましょう!
目次
なぜDocker WordPressはスマホから見えないのか
まず原因を押さえておくと対処が早いので、軽く触れておきますね。
WordPressはインストール時にアクセスしたURL(多くの場合http://localhost:8080)を「サイトのホームURL」としてデータベースに保存します。
PCのブラウザはlocalhostを自分自身として解決できますが、スマホにとってのlocalhostはスマホ自身を指してしまうので、当然WordPressには届きません。
さらに厄介なのが、URLは届いてもページ内のCSSや画像、管理画面のリンクがlocalhost基準で生成され続ける点です。
その結果スマホからIPアドレスでアクセスしても、レイアウトが崩れたり管理画面でログインループに陥ったりするわけですね。
これを解決するのが、これから設定していくWP_HOMEとWP_SITEURLの固定指定です。
作成ファイル
docker-compose.yml
docker-compose.ymlファイルでサーバの詳細を定義していきます。
WordPress本体とデータベース(MariaDB)の2コンテナ構成です。portsの"8080:80"が、PCの8080番ポートをコンテナの80番(Apache)に転送する設定で、スマホからアクセスする際もこの8080番を使います。
docker-compose.yml
1 | services: |
テーマやプラグインをvolumesでホスト側にマウントしているので、エディタで編集した内容がそのままコンテナに反映されます。
ブログのテーマ開発をしているなら、このマウントがあると確認サイクルが一気に速くなりますよ(^^b
custom-php.ini
PHPの設定ファイルを手動で配置します。
画像アップロードの上限やメモリ、OPcacheなどをまとめて指定しています。
WordPressはデフォルトのupload上限が小さく、テーマやメディアのアップロードで引っかかりがちなので、ここで広げておくと安心です。
docker-compose.yml
1 | memory_limit = 256M |
ディレクトリ構成
上記で作成したファイルは下記のディレクトリ構成で配置します。
ディレクトリ構成
1 | / |
custom-php.iniはdocker-compose.ymlのvolumesでコンテナ内のPHP設定ディレクトリにマウントされるので、同じ階層に置いておけばOKです。
dockerコンテナ構築
dockerコンテナ起動
一度dockerでコンテナを作成し、WordPressの環境構築&起動を行います。
コマンド
1 | docker-compose up -d |
-dはバックグラウンド起動の指定です。
初回はイメージのダウンロードが走るので、少し時間がかかってもそのまま待ちましょう。
WordPress起動確認
WordPressが正常に起動されたか確認します。
下記のURLにアクセスして画面が表示されればOKです。
URL
1 | http://localhost:8080 |
初回アクセス時はWordPressのインストール画面(言語選択・サイト名・管理者ユーザー設定)が表示されます。
ここで一度セットアップを済ませておきましょう。
dockerコンテナ停止
起動が確認出来たらコンテナを停止します。
コマンド
1 | docker-compose down |
スマホで画面閲覧する為の設定
ここからが本題の、スマホから同じLAN内のDocker WordPressにアクセスするための設定です。
PCとスマホが同じWi-Fiに接続されていることを前提に進めていきますね。
ipconfigで自分のIPアドレスを取得
ipconfigコマンドをコマンドプロンプトで実行し、自分のネットワークのIPアドレスを取得します。
コマンド
1 | ipconfig |
表示された中の「IPv4アドレス」が、LAN内でPCを指すアドレスです。
多くの家庭用ルーターでは192.168.x.xの形式になっています。
wp-config.phpを設定
wp-config.phpに取得した自分のIPアドレスを設定します。
これが今回の肝で、WP_HOMEとWP_SITEURLをlocalhostからPCのIPアドレスへ固定で上書きします。
これでWordPressがCSSや管理画面のリンクをIPアドレス基準で生成するようになり、スマホからでもレイアウトが崩れなくなります。
wp-config.php
1 | define('WP_HOME','http://[ip]:8080'); |
この2行は、/* That's all, stop editing! */というコメントより上に書くのが定番です。
コンテナを再起動
コンテナを再起動して、WordPressサーバを立ち上げます。
コマンド
1 | docker-compose up -d |
スマホからWordPressを確認
スマホからWordPressを確認します。
下記の2ついずれのURLでも確認可能です。
URL
1 | http://[ip]/wp-admin |
.localはmDNS(Bonjour)でホスト名を解決する仕組みで、IPアドレスが変わっても同じURLでアクセスできるのが便利なところです。
締め
この手順を行えばWordPressの画面がスマホでも確認できるようになったはずです。
ポイントはwp-config.phpでWP_HOMEとWP_SITEURLをPCのIPアドレスに固定することで、これさえ押さえればレスポンシブ確認も実機テストも一気に楽になります。
docker君はやっぱり構築を一瞬でできるので便利ですね!
コンテナ技術は人類の宝ですよほんとに(^^/
自分のブログではこんな感じでエンジニアの知識を紹介しています。
実務レベルの知識もたくさん置いているので、他の記事も是非見ていってください!
以上
WordPressをオワコンなんて言ったらだめです!
それではお疲れさまでした。





