LoginSignup
33
38

More than 3 years have passed since last update.

Androidスマホ・タブレットは何でもできる!Termuxで動かすアレコレまとめ

Posted at

「使ってないAndroidスマホ,タブレットがある」
「これサーバーにできないかな?」

その夢,かなえられます。

少々めんどくさい作業もありますが,やっていけば必ずできます。

どうやって動かすか

Androidには「Termux」というアプリがあります。
これを使うと,Linuxを動かすことができます。
パッケージもAPTで管理されていて,豊富です。

また,GBoardなどのキーボードですと不便を感じるかもしれません。
「Hacker's Keyboard」がおすすめです。

下ごしらえ

Linuxに触れたことのある方は慣れていると思います。

まず,Termuxが端末内のファイルにアクセスできるようにするには権限を与える必要があります。

$ termux-setup-storage

これを実行すると,Android 8以降では権限ダイアログが出ますので許可してください。

Termuxではaptのエイリアスとして「pkg」コマンドが用意されています。

コマンド 説明
pkg update apt updateを実行後apt upgradeを行う
pkg install <package...> apt install <package...>
pkg remove apt remove <package...>

他にもコマンドがあります。pkgだけ実行するとヘルプを見れます。

さっそく,パッケージを最新にします。

$ pkg update

アップデートが完了したら,下ごしらえはおしまいです。

Termuxの基本

ディレクトリ

Termuxの中では,ルートディレクトリは /data/data/com.termux/files/usr になっています。
これは,$PREFIXで表せます。
以下に例を挙げます。

本来のディレクトリパス Termuxでのパス
/etc $PREFIX/etc
/usr/share $PREFIX/share
/bin $PREFIX/bin

エディタ

nanoが標準でついています。

$ nano filename

で起動できます。

よく使うキーボード操作を挙げておきます。

キーボード入力 意味
Ctrl + X 終了
Ctrl + O 保存

使用できるポートの制限

Termuxは 1024~65535 の範囲で使用できます。
80や443などは使えませんので,インターネットに公開する場合はポート変換が必要になる場合があります。

あれこれ

PCからシェルに入る (telnet)

本来はTelnetはネットに公開しちゃいけないものです。ローカルで使うだけにしておきましょう。

$ pkg install busybox

busyboxをインストールしたら

$ busybox telnetd -p 5888

とします。-p 数字はポート番号です。
TeraTermなどで,アクセス可能です。

HTTPサーバーを建てる

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

Termuxにも apache2 (httpd),nginxパッケージがありますので,インストールできます。
PHPも使いたい場合は,apache2の場合は phpphp-apache が必要です。
nginxの場合は phpphp-fpm が必要です。

【apache2の場合】

$ pkg install apache2 php php-apache

【nginxの場合】

$ pkg install nginx php php-fpm

設定を変える (apache2)

設定ファイルは $PREFIX/etc/apache2/httpd.conf です。

PHPを使う場合,設定の変更が必要です。

$ nano $PREFIX/etc/apache2/httpd.conf

でエディタを起動します。

まず,先頭に ServerRoot "..."という項目があると思います。
その次の行に

HostnameLookups On

を記述します。これは,ログにホスト名を表示させるようにするための設定です。

次に,

LoadModule mpm_worker_module xxxxxxxx

と書いてある行があるはずです。それはコメントアウトします。
代わりに,その行の一つ上にある

#LoadModule mpm_prefork_module xxxxxxx

のコメントアウトを解除します (#を外します)

次に,どんどん下へ行くと DocumentRoot "..."の行が見えてくると思います。
その周辺にある

Options Indexes FollowSymLinks

の行に,ExecCGI を書き足します。書き足すと

Options Indexes FollowSymLinks ExecCGI

となります。
その下の

DirectoryIndex indexうんたら

DirectoryIndex index.php index.html index.htm

に変えます。

最後に,ファイルの一番最後の行に

LoadModule php7_module libexec/apache2/libphp7.so
AddHandler php7-script .php

を追加しておしまいです。
Ctrl+Oで保存するのを忘れずに!

設定を変える (nginx)

httpdより,少し厄介かもしれないですね。

設定ファイルは $PREFIX/etc/nginx/nginx.conf です。

$ nano $PREFIX/etc/apache2/httpd.conf

でエディタを起動します。

まず,

location / {
 ...
}

という行があると思います。その中の

index index.html index.htm;

index index.php index.html index.htm;

にします。

次に

# pass the PHP script ほにゃららら
#
location ~ \.php$ {
 ...
}

という行があると思います。
コメントアウトされているはずですので,その部分すべて外します。

その後,その部分は以下のように置き換えます

location ~ \.php$ {
 root (任意のディレクトリ);
 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;
}

Ctrl+Xで保存して,エディタを終了します。

次にPHPの設定をします。


$ nano $PREFIX/etc/php-fpm.d/www.conf

でエディタを起動します。

スクロールしていくと, listen = ....という行があります。
そこを

listen = /data/data/com.termux/files/usr/var/run/php-fpm.sock

に書き換えます。
Ctrl+Oで保存して,おしまいです。

httpdを起動

httpdを起動させるには


$ httpd

だけでいいです。何かログを吐きますが特に気にする必要はありません。
止める時は


$ httpd -k stop

または



$ killall httpd

です。

nginxを起動

nginxは


$ nginx

とするだけです。

なお,PHPを使う場合は nginx を実行する前に

$ php-fpm

を実行する必要があります。

止める時は

$ killall nginx

です。

DiscordBot (Python)を動かす

PythonでBotを作ったのであれば,それもTermuxで動かせます。

Pythonは3.8をインストールできます。


$ pkg install python make automake autoconf clang build-essential git

なお,このインストール作業には約500MBを消費します。ストレージに2GB以上の空きがあるか確かめてください。

その後,


$ pip install wheel requests
$ pip install -U "discord.py[voice]"

を実行します。
途中PyNaClのビルドが行われます。スマートフォン・タブレットの性能によっては,完了するまで2~5分かかる場合があります。時間に余裕をもって行ってください。

さきほどgitもインストールしたので,リポジトリからプログラムを下ろしたりできます。

GitHubからプログラムを下ろす

Gitの使い方に慣れている人は説明はいらないと思います。
ということで,事前に使い方を知っているものとしてコマンドを記載します。


$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@example.com"
$ git config --global crediential.helper "cache"
$ git clone https://github.com/xxxx/xxxx.git

botを起動

起動するプログラムがあるディレクトリにいる状態で

$ python filename.py

とします。

Minecraft (PC版) のサーバーを建てる

なんと,TermuxではJavaを動かせます。

さっそくインストールしましょう。
ここでは有志の方のものを使います。なお,OpenJDK 8となります。


$ pkg install wget && wget https://raw.githubusercontent.com/MasterDevX/java/master/installjava && bash installjava

ダウンロードが終わるまで時間がかかるかもしれません。気長に待ちます。
その後,java と打ってヘルプが出てきたら完了です。

server.jar をダウンロードする

サーバーは https://mcversions.net/ からダウンロードできます。
使用法については割愛します。
建てたいバージョンにあったサーバープログラムをダウンロードします。

バージョン URL
1.15.1 https://launcher.mojang.com/v1/objects/4d1826eebac84847c71a77f9349cc22afd0cf0a1/server.jar
1.15.2 https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar
1.16 https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar
1.16.1 https://launcher.mojang.com/v1/objects/a412fd69db1f81db3f511c1463fd304675244077/server.jar

上のURLをコピーして,


$ cd ~
$ mkdir mcserver
$ cd mcserver
$ wget コピーしたURL

を実行します。
貼り付けは,画面のどこかを長押しして出る「PASTE」を押すとできます。
ダウンロードできたら


$ echo "eula=true" > eula.txt
$ java -jar server.jar

とします。
いろいろログが出て,ワールドの生成が行われます。
あまりにも性能が低いと,クラッシュする場合がありますので注意してください。

また,Android 8以降ではこのままだと


$ java -jar server.jar
Bad system call
$

となってしまいますので,このコマンドを実行する前に

$ proot -0

を実行してください。

おわりに

いかがでしたか?結構できること,ありましたね。
ネットにはもっと詳しいことが書いてありますので,ぜひ挑戦してみてください。
それではよいTermuxライフを!

33
38
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
38