あるSEのつぶやき・改

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

Tiny Core Linuxにnginx+PHP7環境を構築する方法

はじめに

前の記事では、Tiny Core Linux で nginx が動作するよう設定しましたが、今度はPHP7を追加して動作するようにしてみたいと思います。

どうやら、FastCGI という方法になるようです。PHP-FPMというものを使用する手法のようですね。

では、前の環境に手を加えていきましょう。

PHP7のインストール

お約束の Apps より、PHPの以下のパッケージをインストールします。

  • php7-cgi.tcz
  • php7-cli.tcz
  • php7-ext.tcz
  • php7-fpm.tcz

nginx の設定

PHPのインストールが終了したら、nginx.conf の設定を変更します。

nginx.conf の編集は以下のように行います。

$ cd /usr/local/etc/nginx
$ sudo vi nginx.config

変更後の nginx.config は以下のようになります。基本的に FastCGI の設定を追加しただけです。

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, index.php;
    }

    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
      root  html;
    }

    # FastCGI
    location ~\.php$ {
      root           /var/www/html;
      fastcgi_pass   127.0.0.1:9000;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
      include        /usr/local/etc/nginx/fastcgi_params;
    }
  }
}

FastCGIの設定

FastCGIの設定は、以下のように行います。

まず、nginx 関連の設定を行います。

$ cd /usr/local/etc/nginx/original
$ sudo cp fastcgi.conf.default ../fastcgi.conf
$ sudo cp fastcgi_params.default ../fastcgi_params

次に、PHP-FPMの設定を行います。

$ cd /usr/local/etc
$ sudo cp php-fpm.conf.default php-fpm.conf
$ cd php-fpm.d
$ sudo cp www.conf.default www.conf
$ sudo vi www.conf

www.conf の以下の2行を編集します。

user = nginx
group = staff

設定が済んだら、PHP-FPMを起動します。合わせて nginx も再起動します。

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

PHPの動作確認

以下のように PHP の動作確認を行います。

まず、参照用のPHPファイルを作ります。

$ cd /var/www/html
$ echo "<?php phpinfo(); ?>" > info.php

参照用PHPをローカルから参照します。

$ cd
$ wget localhost/info.php
$ cat info.php

ダウンロードできて内容が出力されているのを確認できればOKです。

次にパソコンのブラウザから参照できるか確認します。その前に、以下のコマンドでIPアドレスを確認します。

$ ifconfig

IPアドレスが確認できたら、パソコンのブラウザから http:// <IPアドレス>/info.php にアクセスします。(例) http://192.168.11.14/info.php

以下のように表示されればOKです。

f:id:fnyablog:20180908112140j:plain

OS起動時にnginxと PHP-FPMが動作するための設定

OS 起動時に nginx と PHP-FPM が動作するように、/opt/bootlocal.sh を以下のように修正します。

sudo rm /var/run/nginx.pid
sudo /usr/local/etc/init.d/nginx stop
sudo /usr/local/etc/init.d/nginx start
sudo /usr/local/etc/init.d/php-fpm start

修正が済んだら、OSを再起動して動作を確認します。なお、再起動は[Exit]の Reboot から行うことを忘れないでください。

おわりに

これもものすごく苦労したのですが、記事にしてみると意外と簡単に見えますね。不思議。

あとはデータベースとの連携ですが、それはまた別の機会にでも。