【Termux】NginxとPHPをインストールしてみた【Fireタブレット】

Fireタブレットにインストールした「Termux」
このTermux上でNginxを動かして、Fireタブレットをwebサーバーにしてみたいと思います。
せっかくなのでPHP-FPMを介してPHPも使えるようにします。

当記事においてはTermux上のLinux環境のことを「termux上」と表記します

FireタブレットへのTermuxのインストールについてはこちらの記事をご覧ください。

関連記事

AndroidタブレットやAndroidスマホで動く「Termux」というアプリがあります。 一言でいえばターミナルエミュレータなのですが、簡単なLinux環境も提供してくれます。 (仮想環境みたいな感じ) Androidベースの[…]

MariaDBとWordPressもインストールしてみましたのであわせてご覧ください。

関連記事

Fireタブレットに「Termux」をインストールしていろいろと遊んでおります。 当記事ではデータベースとしてMariaDBをインストールしてWordPressを動かしてみたいと思います。 (NginxとPHP及びPHP-FPMはインス[…]

各種パッケージのインストール

termux上で必要なパッケージをインストールします。

$ pkg install php php-fpm nginx

以上でパッケージのインストールは完了です。
引き続き設定をしていきます。

PHPの設定

PHPについてはとりあえずデフォルト設定のままにしておきます。
尚、php.iniは一般的なLinuxでいうところの/usr/lib配下に存在することを想定しているようです。

$ php -v
PHP 8.1.3 (cli) (built: May 16 2022 04:20:52) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.3, Copyright (c) Zend Technologies

8.1系がインストールされました。

PHP-FPMの設定

PHP-FPMについてはデフォルト状態のままで大丈夫です。

Nginxの設定

Nginxについては設定ファイルを修正する必要があります。
ただ単にHTMLファイルを表示するだけなら修正は不要なのですが、PHP-FPMが絡む場合は修正の必要があります。

nginx.confの修正を行います。
nginx.confは/data/data/com.termux/files/usr/etc/nginx配下にあります。
serverディレクティブの中のlocation、そこのindexに「index.php」を追加します。

location / {
    root /data/data/com.termux/files/usr/share/nginx/html;
    index index.php index.html index.htm;
}

同じくserverディレクティブの中のPHPスクリプトに関する記述の部分、コメントを削除して一部修正します。

location ~ \.php$ {
    root /data/data/com.termux/files/usr/share/nginx/html;
    fastcgi_pass unix:/data/data/com.termux/files/usr/var/run/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

以上でPHPスクリプトを動かすことが可能になります。

termux-servicesのインストール

今回インストールしたNginxとPHP-FPMの起動などを簡単にするためにtermux-servicesをインストールします。

$ pkg install termux-services

インストールが終わったら一度Termuxアプリを再起動します。

起動及び自動起動設定

termux-servicesのインストールが終わったらNginxとPHP-FPMを起動します。
また、Termuxアプリ起動時に自動的にそれらが起動するように設定します。

$ sv up php-fpm
$ sv up nginx
$ sv-enable php-fpm
$ sv-enable nginx

ちなみに、「sv down {サービス名}」でサービスの停止、「sv-disable {サービス名}」で自動起動の停止ができます。

アクセスしてみる

以上でNginxとPHP-FPMは起動している状態になりました。
ブラウザでアクセスしてみます。

http://{IPアドレス}:8080

お馴染みの「Welcome to nginx!」が表示されましたでしょうか。

nginx.confを見ると分かるとおり、待ち受けポートは8080になっています。
また、ドキュメントルートは「/data/data/com.termux/files/usr/share/nginx/html」になっています。

index.phpとして下記の内容でドキュメントルートに配置後、上記URLでアクセスするとPHPの情報を確認することができます。

<?php
    phpinfo();
PHPの情報

まとめ

termux上ではシングルユーザーでLinux環境が動いているので通常のLinux環境よりもインストールが簡単だと感じました。
(権限のことを気にしなくてよい)

ローカル環境でちょっとしたwebサーバー(with PHP)が必要になったとき、便利に使えるのではないでしょうか。