あるSEのつぶやき・改

ITやシステム開発などの技術に関する話題を、取り上げたりしています。

Tiny Core Linux に nginx で Webサーバーを立てる方法

はじめに

今までの記事により、ようやく Tiny Core Linux を使用する環境が整ってきたので、いよいよ実戦編に入ってきます。

この記事では、nginx で Web サーバーを立てる方法をご紹介します。

nginx その前に

nginx の内容に入っていく前に、いくつか設定を行います。

VirtualBox のネットワークの割当を「ブリッジアダプター」としてパソコンと同じネットワークに参加させ、パソコンのブラウザから Web サーバーにアクセスできるようにします。

また、ControlPanel > Network から DHCP の設定を有効にします。

f:id:fnyablog:20180908105524j:plain

そして以下のコマンドでパソコンと同じネットワークのIPアドレスが表示されたら次の設定に移ります。

$ ifconfig

nginx のインストール

お約束どおり、Apps より nginx.tcz をインストールします。

nginx では以下のコマンドで操作します。

$ sudo /usr/local/etc/init.d/nginx start  #起動
$ sudo /usr/local/etc/init.d/nginx stop   #停止
$ sudo /usr/local/etc/init.d/nginx reload #再起動

nginx の設定

実行ユーザーは新規に追加した nginx として、所属グループは tc ユーザーが所属する既存の staff とします。

nginx の公開ディレクトリを /var/www/html として、

ログの出力先を /var/log/nginx とします。

プロセスIDは、/var/run/nginx.pid とします。

では、設定を行っていきます。

ユーザーの追加とグループの設定は以下のコマンドを実行します。

$ sudo adduser nginx         #パスワードは今回はなし
$ sudo addgroup nginx staff

公開ディレクトリは以下のように作成します。

$ sudo mkdir /var/www
$ sudo mkdir /var/www/html
$ sudo chown -R nginx:staff /var/log/nginx
$ sudo chown -R nginx:staff /var/www/html
$ sudo chmod 775 /var/www/html
$ echo "welcome!" > /var/www/html/index.html

nginx.config は以下のように作成します。

$ cd /usr/local/etc/nginx/original
$ sudo cp nginx.config.default ../nginx.config
$ sudo cp mime.types.default ../mime.types
$ cd ..
$ sudo vi nginx.config

これで、nginx.config の設定画面に入るので編集を行います。主要部についてのみ記述するので、適宜読み取ってください。

user nginx staff;

pid /var/run/nginx.pid

http {
  include       mime.types;
  default_type  application/octet-stream;

  log_format main  #コメントを外す。以下省略。

  access_log  /var/log/nginx/access.log main;

  sendfile           on;
  keepalive_timeout  65;

  server {
    listen       80;
    server_name  localhost;

    locatioin / {
      root  /var/www/html;
      index index.html index.htm;
    }
    
    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
      root  html;
    }

}

設定を保存したら nginx をストップ、起動します(念のため)。

$ sudo /usr/local/etc/init.d/nginx stop
$ sudo /usr/local/etc/init.d/nginx start

まずは、ローカルで動作確認します。以下のコマンドを実行して、index.html をダウンロードできればOKです。

$ cd
$ wget localhost

うまくいったら、パソコンのブラウザから先ほど取得したIPアドレスで以下のようにアクセスして「welcome!」が表示されればOKです。(例) http://192.168.11.14

f:id:fnyablog:20180908110232j:plain

再起動後に nginx が動作するための設定

Tiny Core Linux では、再起動後に nginx が起動するようにするためには、/opt/bootlocal.sh に以下の記述を追加する必要があります。なお、1行目で ngix の pid を削除していますが、これを行わないと不具合が起きるため入れています。

filetool.lst への登録

このまま設定が終わったと思ってシャットダウンしてしまうと、折角行った設定が消えてしまいます。

この辺がクセがあるのですが、シャットダウンする前に保存したいディレクトリやファイルは、/opt/.filetool.lst に登録し「Exit」から正しくシャットダウンする必要があります。

今回の設定を反映させた filetool.lst は以下のようになります。

opt
home
opt/th0.sh
usr/local/etc
var
etc/passwd

なお、起動時や再起動時にログインが表示された場合は、ユーザーを「tc」としてログインしてください。

おわりに

記事にしてしまうとなんか簡単な気がしますが、実際はここまで到達するのにかなり時間がかかりました。

まあ、これでみなさんの手間が少しでも省けたとするならば、それはそれでありかもしれませんね。