今回は、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を入れてみたいと思います。