WordPressをローカル環境で構築する方法(RaspberryPi ZERO W編)

Wordpressをローカル環境で構築する方法(RaspberryPi ZERO W編)

wordpressをローカル環境に構築

WordPressをローカル環境に構築するにはLAMP、MAMP、XAMPP、LOCALなどを使用する方法があります。
しかし、個人の方一人であれば手元のパソコン内でローカル環境を構築すれば事足りますが、チームや組織として使用するのであれば、少々不自由に感じるのも事実です。
そこで今回は約10ドル、日本円で1,300円前後で入手可能な「RaspberryPi ZERO W」を使用し簡易サーバーを立てて、WordPressをのローカル環境を構築する方法をご紹介します。

MAMPを使用する場合は下記の記事を参照してみてください。
WordPressをローカル環境で構築する方法(MAMP編) WordPressをローカル環境で構築する方法(MAMP編)

LOCALを使用する場合は下記の記事を参照してみてください。
簡単すぎる!WordPressをローカル環境で構築する方法(Local編) 簡単すぎる!WordPressをローカル環境で構築する方法(Local編)

RaspberryPi ZERO Wとは

RaspberryPi ZERO Wとはlinuxが動作する極最小のシングルボードコンピュータです。
RaspberryPi ZEROは有線のみ、RaspberryPi ZERO WはWiFiとBluetoothによる接続が可能なモデルとなっています。
RaspberryPiに対応したOS「Raspbian」をmicroSDカードに書き込み、スロットに差し込み電源を入れることで、Linuxサーバーとして機能する優れものです。

今回はRaspberryPi ZERO Wを利用してWiFiとSSHによってヘッドレスでローカル環境を構築する手順となります。
まずは最低限必要なものをチェックしましょう。

最低限必要なもの

  1. RaspberryPi ZERO W本体
  2. microSDカード16GB or 32GB
  3. microUSB給電ケーブル
  4. microUSB電源
  5. microSDカードリーダライタ
  6. Mac or Linuxパソコン

WindowsでもVirtualboxを利用して、仮想マシンからmicroSDカードリーダライタで書き込み操作することで同じ手順で作業可能です。
作業はターミナルでの作業となり、GUIではなくCUI環境で構築する流れとなります。

コストパフォーマンスが高い

microUSB給電ケーブルや電源、microSDカードリーダライタは100円ショップで売られているものでも十分に使えるので、microSDカードが容量に応じて1000円~2000円前後としても、全部で5,000円前後で揃うことを考えると非常に魅力的な価格でWebサーバーが手に入ります。
microUSB給電ケーブルや電源はスマホやタブレットで利用しているものでもOKですし、microSDカードリーダライタも既にお持ちで、余っているmicroSDカードがあればRaspberryPi ZERO W本体の購入費用のみで済みます。
格安のレンタルサーバーなどでテスト環境を構築するとしても、月々の費用が発生することを考えると、長期的なコスト面を考えても非常にお得だと言えるでしょう。

microSDカードにOSをインストール

まずはパソコンのブラウザでRaspberryPi ZERO WのOSをダウンロードします。zip形式で圧縮されており、ダウンロードサイズが約350MB、展開すると約1.8GBほどになるのでパソコンの空き容量をチェックしておきましょう。
microSDカードに直接ダウンロードしても起動しませんので、作業しやすいフォルダ・ディレクトリを指定してください。

Raspbianのliteをダウンロードして展開

RaspberryPi公式ページからもダウンロード可能ですが、今回はダウンロードの早い日本のミラーサーバーを利用します。

FTP.JAIST.AC.JP – Raspbian Liteダウンロードページ
https://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/images/

FTP.JAIST.AC.JP – Raspbian Liteダウンロードページ

URLにアクセスすると簡素なページが表示されます。一番新しい日付のリンクを選びましょう。
現時点で「 raspbian_lite-2018-11-15/ 2018-11-16 06:06 」が最新なのでリンクをクリックします。

https://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/images/raspbian_lite-2018-11-15/

FTP.JAIST.AC.JP – Raspbian Liteダウンロード詳細ページ

ページが移動したら「 2018-11-13-raspbian-stretch-lite.zip 」をクリックすればRaspbianのLite版のダウンロードが開始されます。
ダウンロードが完了したらzipファイルを展開してください。これでOSのインストール準備が整いました。
ターミナルに慣れている方であれば、下記2行を順番に実行するだけでダウンロードからファイルの展開まで終わります。

wget https://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/images/raspbian_lite-2018-11-15/2018-11-13-raspbian-stretch-lite.zip
unzip 2018-11-13-raspbian-stretch-lite.zip

microSDカードをフォーマット

microSDカードを挿入する前にターミナルで「 lsblk 」と打ち込んでドライブをチェックして、挿入したら再度lsblkでチェックするとわかりやすいです。

ターミナルで「 lsblk 」と打ち込む

スクリーンショットの場合はsdbがフォーマット前の新しいmicroSDカードとなります。

使用済みのmicroSDカードであればfdiskやgpartedでフォーマットする

使用済みのmicroSDカードであればfdiskやgpartedでフォーマットしましょう。GUIのツールを利用して、自分がわかるやり方でフォーマットしてもOKです。

fdiskによるフォーマットの例

上記はfdiskによるフォーマットの例です。
ターミナルにsudo fdisk /dev/sd○と入力してエンターすると対話方式に切り替わります。

  1. dでエンター
  2. 1か何も入力せずエンター
  3. dでエンター
  4. wでエンター

上記手順はdがデリート、1や2の数字はsdb1やsdb2の選択、wは書き込みのコマンドになっています。

フォーマットされている場合はNo partition is defined yet!と表示されます。

フォーマットされている場合は上記のように赤文字でNo partition is defined yet!と表示されます。

Gpartedによるフォーマットの例

上記はGpartedによるフォーマットの例です。
削除するパーティションを選んでDELキーを押した後、緑色のチェックマークにて実行すればフォーマットされます。

次項のimgファイルの書き込みも同様ですが、OSの入ったディレクトリをフォーマットしないように注意が必要です。
パソコンのOSがインストールされているドライブがわからない時やUSB接続によって複数のドライブを取り扱っている時はよくチェックしてから行ってください。
特にSDカード類はドライブ名としてsd○となるので入力ミスするだけでデータを失うこともあります。
取り外せるドライブは可能な限り取り外しておくと安心です。

microSDカードにimgファイル書き込む

microSDカードのフォーマットが終わったら、次はRaspbianのOSイメージを書き込みます。

カードリーダライタに挿入したmicroSDの文字列を入力

sudo dd if=2018-11-13-raspbian-stretch-lite.img of=/dev/○○○ bs=512

/dev/○○○の部分はlsblkなどで確認して、カードリーダライタに挿入したmicroSDの文字列を入力します。

※間違ってもOSの入ったディレクトリを指定しないように注意してください。

間違ってもOSの入ったディレクトリを指定しない

SSH接続・IPアドレス固定・WiFi設定のためにマウントする

microSDカードにOSを書き込んだら、次はSSH接続するためにIPアドレス固定、WiFi設定をそのままパソコンから行います。まだカードリーダライタからmicroSDカードを抜かないでください。
ダウンロードしたOSイメージを書き込んだだけなので、このままですとWiFiに繋がらず、ネットワーク越しにSSHで作業することはできません。

sudo mount /dev/sdb2 /mnt
sudo mount /dev/sdb1 /mnt/boot

/mntの部分は作業しやすいディレクトリを設定してください。上記のコマンドを順番にターミナルで実行することでmicroSDカードのOS内のデータを編集できます。

bootフォルダ内に拡張子無しの「ssh」ファイルを作成

bootフォルダ内に拡張子無しの「ssh」ファイルを作成

sudo touch /mnt/boot/ssh

Raspbianは標準でSSHがオフになっています。
上記のコマンドを実行して/boot/ディレクトリに拡張子無しのsshファイルを作成することでSSHがオンになります。

sudo nano /etc/dhcpcd.confを編集

dhcpcd.confを編集

sudo nano /mnt/etc/dhcpcd.conf

上記コマンドを入力して開いたファイルの最後尾に下記を追加します。

interface wlan0
static ip_address=192.168.1.111/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

これで192.168.1.111でssh接続が可能になりました。ルーターの設定などは環境に応じて変更してください。Ctrl + xで保存して終了します。
111の部分は他のパソコンやプリンタなど、WiFiに接続している機器と被らない番号であれば任意で指定可能です。

/etc/wpa_supplicant/wpa_supplicant.conf を編集

コマンドラインでWiFiのSSIDとパスワードを入力します。

コマンドラインでWiFiのSSIDとパスワードを入力

wpa_passphrase wifispot 00000000

上記のwifispotの部分にSSID、00000000の部分にパスワードを入力して実行すると、スクリーンショットのように暗号化されたパスワードが生成されるのでコピーします。

暗号化されたパスワードを貼り付けます

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

上記コマンドを実行して、先ほどの生成されたnetwork{から最後の}までを貼り付けます。
その時、パスワードの一行は削除しておきましょう。Ctrl + xで保存して終了します。
最後にsudo umount /dev/mntなどでマウントを解除して、直接microSDカードを編集は終了です。

SSHで接続して必要なパッケージをインストール

OSのインストールと編集が終わったら、microSDカードを抜いてRaspberryPi ZERO Wに挿入します。
microUSB給電ケーブルと電源を入れて、RaspberryPi ZERO Wを起動してください。初回起動のみドライブスペースの拡張で少し時間が掛かります。

SSHで接続

引き続きパソコンのターミナルで作業します。

ssh pi@192.168.1.111を実行するとパスワード入力が表示されます

ssh pi@192.168.1.111

上記コマンドを実行するとパスワード入力が表示されますので raspberry とキーボードから打ち込んでください。

設定が完了していればSSHでログイン可能になります。

WiFiと固定IPの設定、sshファイルが作成されていれば、上記のようにSSHでログイン可能になります。

パッケージを最新の状態にする

sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get rpi-update

上記を実行するとOSのimgファイルがアップロードされた後にアップデートした内容がダウンロードされて最新の状態になります。

一度再起動しましょう。

A reboot ~と表示されたら、一度 sudo reboot now と入力して再起動しましょう。

apache2・php7.0・MySQLをインストール

ssh pi@192.168.1.111 で再度、SSHでログインします。

sudo apt-get install mysql-server apache2 php7.0 php7.0-cli php7.0-gd php7.0-mysqlnd php7.0-pgsql php7.0-mcrypt php7.0-dev -y

上記を実行するとWordPressを構築するためのパッケージがすべてインストールされます。

プロンプトが表示されたら終了

スクリーンショットのようにプロンプトが表示されたら終了です。かなり時間がかかりますので、気長に待ちましょう。

sudo service apache2 restart

プロンプトが表示されたら上記コマンドを実行して、apache2を再起動します。

mysql(mariadb)の設定

sudo systemctl start mariadb.service

上記を実行してデータベースを起動します。
すぐにプロンプトが表示されるので、次はrootユーザーのパスワード設定を行いましょう。

rootユーザーのパスワード設定

Enter current password for root (enter for none):  と表示されるのでエンターを押す

sudo /usr/bin/mysql_secure_installation

上記を実行すると Enter current password for root (enter for none):  と表示されるのでエンターを押します。

Set root password? [Y/n] と表示されたらyを入力してエンターを押す

Set root password? [Y/n] と表示されたらyを入力してエンター。

New password:と表示されたら、新しいパスワードを入力します。

New password:と表示されたら、新しいパスワードを入力します。
すぐにRe-enter new password:と表示されるので、同じパスワードを入力します。
このパスワードはWordPressの構築時に使いますのでメモしておきましょう。
その後、下記のように質問が来ますのですべてyで答えます。

  • Remove anonymous users? [Y/n]
  • Disallow root login remotely? [Y/n]
  • Remove test database and access to it? [Y/n]
  • Reload privilege tables now? [Y/n]

Thanks for using MariaDB!と表示されたらrootパスワードの設定は終了

Thanks for using MariaDB!と表示されたらrootパスワードの設定は終了です。

sudo mariadb

そのまま上記を実行してmariadbを起動します。

sudo mariadbを実行してmariadbを再起動します。

use mysql;

上記を貼り付けてエンターを押すとmysqlに表示が変更されます。

use mysql;を実行するとmysqlに表示が変更されます。

select user,password,plugin from user;
update user set plugin=” where user=’root’;
flush privileges;
exit;

上記コマンドを1行ずつ、順番に入力してエンターすれば、rootパスワードでのデータベース利用が可能となります。

データベース名wordpressの作成

mysql -u root -p 実行して、パスワードを入力してmysqlにログインします。

まずは mysql -u root -p 実行して、パスワードを入力してmysqlにログインします。

use mysql;
create database wordpress;
exit;

上記コマンドを一行ずつ順番に入力してエンターすればwordpressのデータベースが作成されます。
ローカル環境に複数のWordPressを設置したい場合は、create database wordpress;のworedpressの部分を任意の文字列にしてデータベースを複数作成しておきましょう。
wordpress1、wordpress2といったように連番にしたり、blog、homepageなどわかりやすい文字列など好きなもので大丈夫です。
これでWebサーバーとしての設定は終了しました。次はWordPressのダウンロードとインストールに入ります。

WordPressのダウンロードとインストール

RaspberryPi ZERO Wの設定が完了したら、WordPressの構築まではもうすぐです。
慣れないと膨大な作業をしているように感じますが、すべてコピペで可能であり、考える要素はありませんので、スクリーンショットをよく見て、コピペミスや順番の間違いがないか注意しましょう。

WordPressの最新版をダウンロードして展開

まずは固定IPアドレス直下にWordPressを構築します。

cd /var/www/html/
sudo wget https://wordpress.org/latest.tar.gz
sudo tar xzf latest.tar.gz

上記を順番に実行すると192.168.1.111の固定IPの直下にWordPressが設置されます。

展開したファイルを移動して権限を変更

sudo mv wordpress/* .
sudo chown -R www-data: .

上記のコマンドを実行すればworedpresディレクトリから/var/www/html/に展開したファイルが移動されて、実行できる状態になります。
mkdir blog などでディレクトリを作成して、/var/www/html/blog/の中にWordPressをダウンロードして展開しておけば 192.168.1.111/blog/ にブラウザからアクセスすることで別のWordPressを構築することができます。

WordPressの初期設定

WordPressのインストールが終われば、あとはブラウザから固定IPにアクセスして、直接操作します。
チームや組織で利用する場合は上記までの手順をマニュアル化してシェアしておけば、誰でも好きなようにローカル環境で新しいWordPressを構築できるようになります。
ただし、RaspberryPi ZERO WはCPUが1Ghz程度なので、あくまでもテスト環境、複数のWordPressを構築すると重たくなる可能性もありますので、乱立しすぎないように注意しましょう。

ブラウザから固定IPにアクセスする

192.168.1.111にアクセスすると、言語を選ぶ画面が表示されますので、日本語を選んで続けるをクリックしましょう。

画面が切り替わったら「さあ、始めましょう!」をクリックします。

WordPressを構築するための情報を入力する

ユーザー名は root を入れて、mariadbで設定したrootのパスワードを入力します。RaspberryPi ZERO Wのパスワードではないので注意しましょう。
複数のWordPressを作成する時は、データベースを作成して、データベース名の項目に作成した文字列を入れましょう。
その際、ユーザー名とパスワードはrootのもので大丈夫です。
ユーザー名とパスワードを入力したら送信をクリックします。

画面が移動したら「インストール実行」をクリックします。

構築したWordPressのユーザー名やパスワードを設定

インストール実行をクリックすると入力項目が表示されます。

  • サイトのタイトル
  • ユーザー名
  • パスワード
  • メールアドレス

上記を入力しましょう。検索エンジンでの表示はチェックを入れても入れなくても大丈夫です。
入力が終わったら「WordPressをインストール」をクリックしてください。

成功しました!が表示されれば無事にインストール完了です。

表示・動作確認

RaspberryPi ZERO WにWordPressがインストールされ、ローカル環境でWordPressをテストできる状態になりました。
まずはブラウザにIPアドレスを入れて、最初の状態をチェックしてみましょう。

ブラウザでIPアドレスを入れてみる

ブラウザに192.168.1.111を入力するとすぐにページが表示されました。まだ何も手をつけていないデフォルトの状態です。

管理画面にログイン・ログアウトする

次にブラウザで https://192.168.1.111/wp-login.php  にアクセスしましょう。
WordPressのインストール時に設定したユーザー名とパスワードを入力してログインします。

無事に管理画面にログインできたら、右上のこんにちは部分にマウスカーソルをフォーカスして、ログアウトを試します。
ログアウトしたら再度ログインしてみましょう。問題がなければこれで完了となります。

テーマやプラグインをインストールしてみる

管理画面へのログインに問題がなければテーマやプラグインをインストールしてみましょう。
テストデータとして画像や文章を入れ込んだり、記事や固定ページを作成したりと好きなようにテストすることができます。
同じネットワーク内であればパソコンやタブレット・スマートフォンでもアクセスできるので、デザインの練習をしたり、プラグインの機能を試したり、デバイスごとに表示の確認が可能です。

WordPressをローカル環境で構築する時の注意点

WordPressをローカル環境で構築する時の注意点として、今回の設定ではセキュリティ面は何も設定していないということです。
あくまでも簡易的なローカル環境としてWordPressを構築できる状態だとお考えください。
また、ローカル環境だからと油断せず、パスワードやユーザー名などは普段使っているものなどを設定しないようにしましょう。

まとめ

WordPressをローカル環境で構築する方法として、今回はRaspberryPi ZERO Wを利用してサーバーを立ててみました。
今回の記事を執筆するにあたり、全ての作業はRaspberryPi 3B+で行っています。
同時に全てのスクリーンショットは実際にRaspberryPi ZERO WにSSH接続して撮影したものです。
Macやその他のLinux、WindowsのVirtualboxの仮想マシンなどで作業される場合はドライブ名やパーティションなど一部表記が異なる場合もありますので、適宜読み替えてください。
全体を通してターミナルでのコマンド入力が主な作業となりますが、慣れない方ですとどこが間違っているのかわからず挫折してしまうこともあります。

しかし、何度かトライアンドエラーを繰り返すことで、コマンドラインの素晴らしさやLinuxの魅力とともにWordPressだけではなく、Webアプリケーションの基礎を学ぶことができます。
プログラミングを学びたいと考えている方であれば、PHPやPython、javaなどのパッケージをインストールすることで柔軟に機能を拡張することが可能です。
WordPressをローカル環境で構築し、個人で学んだり、チームで研鑽する方々に少しでもお役に立てれば幸いです。