Androidスマホ上で動くTermux。apache やperl も動かすことができます。
私は、自分自身の備忘録を兼ねて、自宅WEBサーバ上のFsWiki上にいろいろと
書き込んでいたのですが、ネットがつながらないところでも見たい。
でもそのために普段からノートPCを持ち歩くのも辛い ...
と思っていたのですが、Termux があれば、スマホの上に、FsWikiを構築できます。
そのための手順を紹介します。
環境構築
Termux をプレイストアから入手。これがないと始まりません。
まずは、Perl CGIを動くようにする
apache,perl の入手
Termuxをインストールし、起動したら apache,perl を入手します。
apt update
apt upgrade
apt install apache2
apt install perl
httpd.conf 修正
ファイル: /data/data/com.termux/files/usr/etc/apache2/httpd.conf
以下のエントリに、以下を追加 Optins +ExecCGI を追加
<Directory /data/data/com.termux/files/usr/lib/cgi-bin>
</Directory>
以下のAddHandler ... のコメントを外す
AddHanderl cgi-script .cgi
mod_cgiモジュールを読み込むため、以下のように変更し、強制的 mod_cgi.soを読ませる
<IfModule mpm_prefork_module>
#LoadModule cgi_module libexec/apache2/mod_cgi.so
</IfModule>
↓
#<IfModule mpm_prefork_module>
LoadModule cgi_module libexec/apache2/mod_cgi.so
#</IfModule>
ここまでで、apace でperl CGIが動く状態になっています。
サンプルの printenv が動くように実行権限の付与と修正を行います。
chmod ugo+x /data/data/com.termux/files/usr/lib/cgi-bin/printenv
また、エディタを使って、printenv の先頭行に以下を追加します。
# !/usr/bin/perl
ここまできたら、apace を起動し
apachectl
スマホのWEBブラウザでいかにアクセスしてみましょう。
http://127.0.0.1:8080/cgi-bin/printenv
(127.0.0.1ではなく、localhost でもアクセスできますが、Yahooブラウザ等だとダメでした)
FsWikiを動かす
モジュールの入手
apt install make
apt install clang
apt install wget
apt install openssh
(wegt は、FsWikiを取得するため。標準で入っている wget は httpsに対応していないため)
cpan からCGIを取得
cpan
上記で、cpan を一度動かし、一通り設定(問い合わせは全て デフォルトでOK)が終了したら、"q"で終了。
再度cpanを起動
cpan
cpan>install CGI
FsWikiを取得し、htdocs 配下に展開
cd /data/data/com.termux/files/usr/share/apache2/default-site/htdocs/
/data/data/com.termux/files/usr/bin/wget https://ja.osdn.net/projects/fswiki/downloads/69263/wiki3_6_5.zip
unzip wiki3_6_5.zip
mkdir /data/data/com.termux/files/usr/share/apache2/default-site/htdocs/wiki3_6_5/log
mkdir /data/data/com.termux/files/usr/share/apache2/default-site/htdocs/wiki3_6_5/backup
httpd.conf に以下の定義を追加
<Directory /data/data/com.termux/files/usr/share/apache2/default-site/htdocs/wiki3_6_5>
Options +ExecCGI
</Directory>
その後、apache 再起動し、以下にアクセスしてwikiが表示されればOK。
小さなスマホの中で、apache や perl CGI が動いていると思うと、ちょっと感動です。