「使ってない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の場合は php
と php-apache
が必要です。
nginxの場合は php
と php-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をコピーして,
$ 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ライフを!