RaspberryPiでWebサーバを公開(WordPress)

1.今回の内容

Raspberry Piで外部からアクセスすることのできるWebサーバを構築できるとこまで紹介します。順序としては

  1. Raspberry Piにサーバを建てる。
  2. ルータのポートを解放する。
  3. ドメインを取得する。
  4. wordPressをインストールする。

の豪華4本立てです。

 

2.Raspberry Piにサーバを建てる

ではまず、Raspberry Piにサーバを建ててみましょう。ちなみに、僕があえて建てるという文字を使っているのは建設する印象があるからです(?)

まぁそんなことは置いといて

#apt-get install apache2 // Apacheサーバを入れる

今回使うのは有名どころのApacheです。インストールが終わったら設定ファイルの編集をしていきます。

#vi /etc/apache2/site-avalable/default

最初の方に次のような記述があると思います

<VirtualHost *:80>

これを次のように変更しつつ、足りない項目を保管していきます。

<VirtualHost [DomainName]:80>
    ServerName [DomainName]  ← これはRaspberryPiのホスト名です。なんちゃら.ddns.netにしてください
    ServarAdmin [UserName]@[DomainName]  ← UserNameは任意名で大丈夫です。

そしたらApache2を再起動といきたいところですが、もう少しやることがあります。
Raspberry Piのホスト名を解決しなければいけません。てことで、

#raspi-config

Raspberry Piを始めて設定した時にもこんな画面出てきましたよね
で、8のAdvanced Optionsを開いてA2のHostNameを選択してください。そして、先ほどの設定ファイルで記述した[DomainName]をここに記入しちゃってください。
それともう二つ、これは任意なのですがサーバ運用ということでもう少しサーバ向けの設定にします。
まずはMemory Splitでメモリ割当量を変更します。なお、GUIは全く使わないということを想定しているので必ずしもやらなければいけないというわけではないです。
ここでメモリ量を8にしてください。
それともう一つはオーバークロックの設定です。僕はPi2に設定していますがこれは危険との隣り合わせなのでリスクを負っても良いという方のみにしてください。
なお、オーバークロックと言っても常時OCしているわけではなくCPU稼働率が70%を超えたらOCするみたいです(Core iシリーズのターボブーストに相当)
そしたらApache周りの設定は終了したので再起動してください。

再起動が終わったらhttp://[RaspberryPi-IP]にアクセスしてみてください。It Works!と表示されれば成功です。次のステップに進みましょう。

 

3.ルータのポートを解放する

次に、外からアクセスできるようにルータのポートを解放します。ポートの説明があまりできないのですがようするに窓口のようなものです。

外からアクセスしてきても、ルータはLAN内のどのデバイスにパケットを送れば良いのかわかりません。そこでポートという窓口へ行きます。窓口に行けばどこに行けば良いのかを教えてもらい無事たどり着くことができます。

と言った感じでしょうか。てな訳で受付を作ります。とは言っても僕はNTTのPR400-MIしか持っていないので他のものを使っている場合は説明書を見て頑張って下さい。

まずはブラウザで192.168.1.1にアクセスしてください。ユーザ名とパスワードを尋ねられるのでご自身で設定されたものを…

次に左のメニューから「詳細設定>静的IPマスカレード設定」に進んでください。

127af818d282b16276b5a6551d8e5e05
こんな画面になりましたよね。そしたら、右の編集というところをクリック。

スクリーンショット-2016-03-21-23.22.48

なんか設定画面が出てきましたね。パラメータの説明は省きますが、以下のように設定してください。

有効/無効:有効

変換対象ポート:80

宛先アドレス:Raspberry PiのIP

宛先ポート:80

これで外からアクセスできるようになりました。

ちょっと長いのでここら辺で少し休憩しましょうか…

……

……

 

4.ドメインを取得する

この章ではドメインというものを取得します。そもそもドメインとはなんでしょうか…?

サーバを公開しようとしている皆さんなら分かっているとは思いますけど少しおさらいです。

LANにはIPアドレスがありますよね。ようするに住所です。インターネット、つまりWANもLANのエリアが広くなっただけなので当然住所となるIPアドレスが存在します。ではその住所は私たちみたいにずっと固定なのでしょうか?…答えは否です。とても頻繁にお引越しをします。前までAというIPだったのにいつの間にかBに引っ越しています。しかしみんなは引っ越したことに気がついていません(悲しい世界ですねw)。知らずにAに手紙を出します。届きませんでした。さて、どうしたことでしょう。

そこで登場するのがお手紙代行サービス、ドメインです。(実を言うと違いますがここではそういうことにしておきます)

早速ドメインをとってみましょう。

NO-IPというところで無料でドメインが取れるので登録しましょう。ただしここで取得するドメイン名はApacheの設定ファイルに書いたものにしてくださいね。

取得が終わったらもう少しやることがあります。代行サービスに依頼するにも今の住所を代行業者が知っていなければいけませんよね。そこで知らせるためのソフトを入れます。
そのソフト自体はno-ipが公式に配布しているのでそれを使います。

$wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
$tar xvzf noip-duc-linux.tar.gz
$cd noip-2.1.9-1/ // 2016/03/23時点でのバージョンは2.1.9でしたが適宜変更してください。
#make
#make install 

// ここから、自動設定ツール
Auto configuration for Linux client of no-ip.com.

Multiple network devices have been detected.

Please select the Internet interface from this list. // 有線/無線LANを使っている場合
By typing the number associated with it.
0	eth0
1	wlan0
0 // 基本的に有線の方が安定するはず
Please enter the login/email string for no-ip.com [NO-IPの登録名] // no-ipの登録に使ったアドレスを入れる
Please enter the password for user '[No-IPの登録名]' [********]  // no-ipにログインするためのパスワード

Only one host [koron0902.ddns.net] is registered to this account. 
It will be used.
Please enter an update interval:[30]  30 // デフォの30でいいと思う(単位がわからないってのが理由)
Do you wish to run something at successful update?[N] (y/N)  y
Please enter the script/program name  no-ip2.conf

これでインストールは終わり。でもまだ自動実行用の設定がいる。

#cp debian.noip2.sh /etc/init.d/noip2
#chmod 755 /etc/init.d/noip2
#update-rc.d noip2 defaults

ここまでできたら一旦再起動してください。そしたら起動されてるか確認。

$ps aux | grep noip
nobody    2189  0.0  0.1   2296  1696 ?        Ss   15:00   0:00 /usr/local/bin/noip2

こんな感じのが出てきてたら成功。
そしたらスマホからhttp://[DomainName]にアクセスしてみてください。ここでもIt Works!と出れば順調です。ここでの注意点としては、スマホはWi-Fiにはつなげていてはダメということですね。

 

5.WordPressをインストールする

ではとうとう最終段階です。早速ですがWordPressをRaspberry Piに入れてみましょう。

#apt-get install php5-cgi php5-mysql mysql-server php-apc // php、mysqlをインスコ
#mysql -u root -p
  mysql>create database [name];
  mysql>grant all privileges on [name].* to [username]@localhost identified by "[password]";
  mysql>exit;
$wget https://ja.wordpress.org/latest-ja.tar.gz  // wordpressをDL
$tar xvf latest-ja.tar.gz  // 展開
$sudo chmod -R a+r+w /var/www
$cd wordpress
$cp -r * /var/www  //適宜自分のWeb鯖のRootに置き換える。
$cd /var/www
$chown -R www-data:www-data * // こうしないとplug-inのインストールとかでこける

そしたらブラウザで http://[RaspberryPi-IP]/wp-admin/ にアクセス。…するだけなんですがその前に公開するために一つやらなければいけません。

外からアクセスするためにドメインを取得しましたよね?ですがあれはグローバルIPです。しかしLAN上でそれに対してアクセスしようものならアクセスできないと怒られてしまいます(外に出たら自分に返ってこれないため)。

なのでその問題を解決します。

使っているPCがWindowsの場合はC:\Windows\System32\drivers\etc\hostsを、Macの場合は/etc/hostsを編集します。最終行に以下のように書き込んでください。

[Raspberry Pi-IP]  [DomainName] ← もちろん適宜変更で。

そんだけです。では改めてhttp://[DomainName]/wp-admin/にアクセスしてください。できますか?できるはずです。

あとは指示に従って入力していくだけでOKです。

非常に長くなってしまいましたがこれで公開サーバの完成です。お疲れさまでしたm(_ _)m

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です