IoTではないRaspberry Piの使い方(nginxの場合)

はじめに

では、Raspberry PiにApache、MariaDB、PHPをインストールして、小型のWEBサーバーにする方法をご紹介しました。

今回は、WEBサーバーを nginx にしてみます。

nginxとは?

まず、読み方からいきましょう。

あなたの周りで、IT関係の技術者だという方がいらしたら、これを読ませてみましょう。

「にじっくす?」「ねぎっくす?」 

こんな読み方をしたら、その人がIT関係者というのはかなり怪しいです。

という小話にもなっていますが、これで「えんじんえっくす」と呼びます。

WEBサーバーとしてはApache(あぱっち)はかなり有名でシェアも多いのですが、nginxも急速にシェアを伸ばしています。

Webサーバーとしてnginxをインストール

前提として、こちらのRaspberry Pi OSのセットアップが終わっている事とします。

それでは、Raspberry Pi、ラズパイにnginxをインストールしてみましょう。

ターミナルを開き

sudo apt install nginx

でインストールできます。

完了すれば、同じLANに繋がっているパソコンから

http://[ラズベリーパイのホスト名]

で接続できます。

Raspberry Piには、Google Clome のオープンソース版 Chromium が搭載されてますから、localhost で接続できます。

nginxでPHPを実行可能にする

nginxでもPHPは実行できますが、Apacheとは方法が若干異なります。

まずはPHPをインストールします。

sudo apt-get install php php-fpm

記事の執筆時点では、PHP 7.4が導入されました。

$  php -v
PHP 7.4.30 (cli) (built: Jul  7 2022 15:51:43) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.30, Copyright (c), by Zend Technologies

それでは、nginxからPHPを呼び出してみます。

インストールしたnginxのルートディレクトリは、/var/www/html になりますので、そこに info.php というファイルを作成します。

$ cd /var/www/html
var/www/html $ sudo vi info.php

<?php
phpinfo();
?>

viエディタを保存したら、

http://[ラズベリーパイのホスト名]/info.php

で呼び出します。

PHPが実行されず、作成したPHPファイルがダウンロードされてしまいます。

Apacheの場合、PHPをインストールしただけでApacheがPHPを呼び出してくれますが、nginxでは「php-fpm」を使用するため、インストールしただけではPHPが使用できないのです。

そこで、nginxからphp-fpmを呼び出す設定を行います。

$ sudo vi /etc/nginx/sites-available/default

        server_name _;<=これを探す
        index index.html index.php;<=下についか



        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {=これを探し、前にある#を消す
                include snippets/fastcgi-php.conf;

                # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
                # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        }

上記の location ~ .php$ あたりがコメントアウトされていますので、#を削除してコメントアウトを解除します。

fastcgi_pass unix:/run/php/php7.4-fpm.sock; の部分は、PHPのバージョンに依存します。

上記の場合、PHPのバージョンが7.4だったため、/run/php/php7.4-fpm.sock ですが、Raspberry Pi 3のLegacy OSで試したところ、PHP がバージョン7.3だったため、この部分が /run/php/php7.3-fpm.sock になっていました。

ここまで完了したら、念のため、Raspberry Piを再起動します。

nginxとPHPを再起動する手もありますが、Raspberry Piは簡単に再起動できるのでww

再起動が完了したら、再度、http://[ラズベリーパイのホスト名]/info.php を呼び出してみます。

今度は、PHPが実行されました。

phpMyAdminをインストールする

データベースサーバのインストールは、

と変わらず、sudo apt-get install mariadb-server でインストールし、sudo mysql_secure_installationで初期設定を行います。

ただ、データベースをコマンドで操作するのは面倒なので、GUIでデータベースを操作できるphpMyAdminをインストールします。

Apacheでは、コマンドでインストールするだけで使用できますが、nginxの場合は少々設定が必要です。

sudo apt install phpmyadmin

でインストールします。

途中、次の画面が現れます。

ここで、nginxの指定が無いため、どちらにもチェック(*マーク)がつかないようにして、tabキーで了解に移動し、Enterを押下します。

最後にこのような確認が出ます。今回はnginxの設定なので、<はい>を選択します。

処理が進行すると、次の画面になります。

今回はそのまま<了解>で進行し、正常に完了しました。

次に、nginxからphpMyAdminを呼び出す設定を用意します。

phpmyadmin.conf というファイルを/etc/nginx/conf.d/の下に作成し、以下のserverから下の部分を貼り付けします。

$ sudo vi /etc/nginx/conf.d/phpmyadmin.conf

server {
       listen 80;
       server_name  localhost;

       location /phpmyadmin {
                alias /usr/share/phpmyadmin;
                index index.php;
                }

        location ~ ^/phpmyadmin/(.+\.php)$ {
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin/$1;
                include fastcgi_params;
        }
}

次にインストールされたphpMyAdminのパスへのリンクを、htmlのルートフォルダに作成します。

sudo ln -s /usr/share/phpmyadmin /var/www/html

完了したら、Raspberry PiのブラウザでphpMyAdminを起動してみます。

呼び出しは、http://[Raspberry Pi のIP]/phpmyadmin/ です。

今回は、Raspberry PiのChromium から localhost で呼び出してみます。

正常に呼び出しに成功しました。

ユーザー名はroot、データベースの初期設定で入力したパスワードでログイン可能です。

nginxでWordPressを動かす

WEBサーバー、PHP、データベースが実行出来る環境が揃いましたので、CMSシステムのWordPressを入れてみましょう。

の手順で問題なく動作します。

$ cd /var/www/html/
$ sudo wget https://ja.wordpress.org/latest-ja.tar.gz
$ sudo tar -xzvf latest-ja.tar.gz
$ sudo chown -R www-data:www-data wordpress

でWordPressのプログラムをHTMLのルートディレクトリに取得し、展開し、所有者を変更します。

先ほど設定したphpMyAdminでwordpressというデータベースを作成します。

/wordpress で呼び出せば、セットアップ画面が表示されます。"]

無事にWordPressが実行されました。

Raspberry PiのIPアドレスに同じLAN上のパソコンから接続すれば、PCからも見る事が可能です。

まとめ

最初に設定する項目が多く、しかも設定内容をファイルに書き込んでサーバー類を再起動というものが多いため、少々手間に感じます。

ですが、処理が軽いとの事なので、マシンパワー的には余裕が少ないRaspberry Piには向いているかもしれません。

参考にしたサイト様

コメントを残す

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

コラム

次の記事

LEGOとRaspberry Pi