サーバー

RaspberryPiでwebサーバーを作ってみる

今回は、RaspberryPiでwebサーバーを作ってみたいと思います。今回作るwebサーバーはルーターなどの設定を変えない限り、外部に公開されることはありません。心配なら、ケータイを家のwifiから切り、この後説明するRaspberryPiのIPアドレスを入力してみてください。

今回使うwebサーバー

今回は、軽量で使いやすい(?)nginxをつかいます。今後、wordpressなども使ってみたいのでPHPもインストールします。早速インストールします。

~ $ sudo apt-get update
~ $ sudo apt-get install nginx

 

PHPをインストールする前に、nginxを起動します。

sudo /etc/init.d/nginx start

そうしたら、RaspberryPiのIPアドレスを確認します。IPアドレスとは(この場合ローカルIPアドレス)、家のルーターに接続した場合に自動的に割り振られる住所のようなものです。変わることがあるので、初期設定の

raspberrypi.local

を使っても構いません。この名前を変更したい場合は、raspiconfigから変更します。

sudo raspi-config

このNetwork Optionsを矢印キーで選択し、エンターキーを押して次に進みます。すると、最初にHostNameと出てくるので、それをエンターキーで押して進みます。

するとこのように注意が出てきます。

これは、ホストネームに使える文字は、ASCII文字のa~z(大文字と小文字を区別しない)数字「0」から「9」、およびハイフンのみを含めることができると規定されています。 ホスト名ラベルはハイフンで開始または終了できません。
他の記号、句読文字、または空白スペースは許可されていません。

と書いてあります。つまり、普通に書けば大丈夫だどいうことです。エンターを押して進めると文字を入れることができます。文字を入れて了解を選択し、エンターを押しましょう。下矢印で了解に進めます。

この名前の後に、「.local」 がつきます。つまり、raspberrypiにした場合、「raspberrypi.local」になるということです。了解を押して、ホームに戻ったらfinishを選択します。再起動しますか?と英語で聞いてくると思うので、再起動してください。次にIPアドレスの確認です。

IPアドレスはこのコマンドで調べることができます。

~ $ ip a

IPアドレスの他にもいろいろ情報が出てきますが、wlan0の欄をみて4行目をみます。そして「192.168.なんとかかんとか」 がIPアドレスです。もしくは、デスクトップ画面の右上にあるwifiマークにカーソルを合わせるとIPアドレスを見ることができます。

最初のwebページを見てみる

最初のページを見てみましょう。RaspberryPi以外のRaspberrypiと同じインターネットに接続しているパソコンで、http://raspberrypiのIPアドレス

もしくは、raspberrypi.local か、自分で作ったものを入れてみましょう。すると、welcome to nginx on Debian! と表示されるはずです。では。このページを編集してみましょう。初期設定で公開用フォルダは「/var/www/html」になっています。それでは少し編集してみましょう。

~ $ cd /var/www/html
~ $ ls
//lsコマンドを使って、フォルダの中にあるものを確認します。
//スラッシュが2個ついているのはコメントなのでコマンドではありません。
//中に、index.htmlがあるはずです。(もしくは、名前にindexが含まれる)
~ $ sudo nano index.html
//もしくは、先ほどの名前の頭の部分を入力してTABキーを押しましょう
//するとその後が記述されるはずです。

そうすると、先ほど見たwebページのソースが出てきます。これを下のように改変してみてください。

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>RaspberryPiへようこそ</title>
</head>

<body>
<p>RaspberryPiへようこそ!!</p>
<p>webページはHTMLで記述されます。</p>
<p><p></p> で文字を表示することができます。</p>
<p>また、<br>は改行をすることができます。</p>
</body>
</html>

するとこのように表示されます。

それではPHPやmysqlなどをインストールしていきます。

~ $ sudo apt-get install php-fpm 

そうしたら、nginxで使えるように、設定ファイルを編集します。

 ~ $ cd
~ $ sudo nano /etc/nginx/sites-availiable/default
//33行付近にあるindex 項目の最後にindex.phpを追加します。
//そして、45行付近のlocation から、52行付近の}までの#を取ります。その時//に,fastcgi_passの行は残しておきます。

終わったら保存します。コントロールキーとxキーを同時に押すと保存するか聞かれるのでYを押し、エンターを押すと保存されて閉じられます。その後、sudo nano /etc/php7.0/fpm/php.ini をし、772行付近にある;cgi.fix_pathinfo=1をcgi.fix_pathinfo=0にします。

;cgi.fix_pathinfo=1
//から
cgi.fix_pathinfo=0

一つショートカットキーなのですが、コントロールキーとCを同時に押すと今いる場所が見ることができます。完了したら再起動します。

~ $ sudo /etc/init.d/php7.0-fpm restart
~ $sudo /etc/init.d/nginx restart

正常にリスタートできたら、しっかりセットできています。エラーが出ていたら、間違えていなかったか確認してみてください。もしそれでも、できないようだったら、コメント欄で教えてください。もしかしたらこっちのコードを間違えて書いているかもしれません。そして、テスト用にファイルを作成します。

~ $ sudo nano /var/www/html/info.php

その中に下のように記述します。

<?php
phpinfo();
?>

終わったら、http://raspberrypi.local/info.php でアクセスします。(もしくは自分に合ったもの)PHPINFOが表示されたら成功です。紫のやつ

次に、mysqlをインストールします。

~ $ sudo apt-get install mysql-server php7.0-mysql

そうしたら、mysqlを起動します。

~ $ sudo /etc/init.d/mysql start

これで完了です!!!お疲れ様でした。次回はwordpressを入れてみたいと思います。

RaspberryPi

「あったらいいな」というものを実現してみましょう。「RaspberryPi」なら、つくれるかもしれません。RaspberryPiは超小型コンピューターですが、普通のコンピューターを大きく違う点は「電子工作」ということをして、普通のパソコンではできない、電子部品などを動かすことができるということです。「RaspberryPi」をつかって、やりたいことを実現してみましょう。

 

COMMENT

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