安卓手機如何使用Termux搭建web伺服器教程

前言

因為疫情的關係一直在家隔離,看了看手裡的四部手機 ,一臺伊拉克成色的小米2s(咱當年也是發sao青年),3臺蘋果(也都是比較舊的型號。。。撿老爸老媽剩下的。。。)

其實小米還算正常--除了自帶聽筒和麥克風不好用、電源鍵不太好使以外,其他沒有什麼毛病。但感覺就像雞肋,食之無味,棄之可惜。

後來我仔細想想,能不能把手機搞成個小伺服器呢?手機的硬體本就是為了長時間待機的,穩定性應該不錯的。如果能打造成伺服器,豈不是“充分利用閒置的舊手機,讓其發揮餘熱?“(知乎上這個問題給了我不少靈感)

先吐槽下,雖然不知道國外啥樣,但是感覺國內的Termux資源以及使用人群是真的少.....沒個論壇或者qq群啥的,Termux吧裡好多都不是適合自己學習的資料。大家如果有折騰Termux的圈子,希望能告訴我一下,過去學習學習(寒窗12年,從來沒這麼自發的想學習過....)。所以特別編寫、整理了這個“最詳細、完整的基於安卓手機使用Termux搭建web伺服器教程”。

小白不要怕、萌新不要怕,我在linux以及搭建伺服器這方面也是賊白賊白、賊新賊新的。

俗話說得好,要把大象裝冰箱,總共分幾步?(答案在文章開頭

一.軟體的準備

  • Termux
  • nat123安卓版
  • 建站系統
  • Putty(windows軟體)

二.前期Termux的設定與準備

1.Termux安裝

首先在安卓手機上安裝Termux,200k的小軟體,功能卻非常強大,自帶busybox。這個軟體的安裝要求是Android5.0及以上,建議將手機root。

2.Termux的配置(共4步)

a.為Termux改源

安裝好以後,先改源(要不下載太慢),建議改成清華源(也算圓了我上清華的夢想)。

Termux自帶vi,設定預設編輯器為vi,以及使用vi編輯器編輯軟體源:

export EDITOR=viapt edit-sources

回車後是個這樣的,按i進入編輯模式:

Ctrl A ->將游標移動到行首 Ctrl E ->將游標移動到行尾 Ctrl K ->從游標刪除到行尾

將原來的deb
   https://termux.net..........這一行前面加個#號給它註釋掉

新增:

deb [arch=all,你的平臺架構] http://mirrors.tuna.tsinghua.edu.cn/termux stable main

填寫完成後,手機上的輸入法上方應該會有ESC這個按鍵,點一下,然後找符號中的 ““ 號,然後最下面會有一個出來,再輸入wq,手機回車,就儲存並退出vi了。

b.升級軟體庫

接下來我們將軟體包庫升級一下:

pkg updatepkg upgrade

c.安裝openssh並設定

升級好後我們下載openssh,方便我們在電腦上用電腦鍵盤操作,提高效率。安裝openssh命令:

pkg install openssh

安裝完成後,我們先設定termux的密碼:

passwd

系統會提示你輸入密碼,但不會以 ** 等符號來提示你,所以輸入時要仔細

再次確認密碼--在輸入一遍剛剛輸入的密碼,回車

系統提示設定成功。

d.啟動並用putty遠端登陸Termux

啟動ssh(預設埠為8022):

sshd

查詢主機名稱:

whoami

查詢區域網ip地址(建議大家去路由器管理頁面做個ip與MAC地址繫結,以後就不用總查了)

ifconfig wlan0

然後用putty登入,putty 設定:

藍色圓圈部分是因為長時間沒有操作會自動斷開ssh,所以在這裡設定成60(其他也可以,建議不要過小)

Hostname填寫查詢到的ip,埠填寫8022,選擇下方空白處的default settings,點選右邊的save,儲存設定

點選open,這裡正常應該是login as:

ssh 主機名@查到的IP -p 8022

接著會讓你輸入密碼password: 將我們設定過的密碼輸入進去(同樣沒有提示)

回車以後會看到歡迎頁:Welcome to Termux!(balabala一大堆)

這些是前期準備工作。

三.Termux搭建WEB伺服器所需的軟體及配置(分3步,Termux中下載)

1.php

a.下載php

pkg install php

b.開啟php自帶的web伺服器並指定建站系統資料夾(-t 資料夾名稱)

ps:1.我一般是直接cd到建站系統資料夾路徑的

2.cd:類似windows裡開啟硬碟某個資料夾一樣,Termux下常用的cd
   /data/data/com.termux/files/home。每個手機的路徑可能都不相同,可以輸入“pwd”回車檢視路徑

3.建議用RE檔案管理器將建站系統資料夾直接複製過去。如果沒有許可權,可以用cp命令,這裡就不展開了,百度下“cp命令“有用法以及示範。

php -S 0.0.0.0:埠號 -t 資料夾名稱

此時一個web伺服器就成功開啟了,可以在區域網內的電腦或移動裝置瀏覽器內輸入“伺服器的區域網ip地址:埠號“即可訪問

2.mariadb資料庫

a.安裝mariadb

pkg install mariadb

b.配置mariadb

有可能會報錯,依據提示執行要求的命令即可,我碰到的是讓我執行“mysql upgrade"的命令,好像是這個。最開始還有tmp資料夾下找不到mysqld.sock檔案的錯誤,這個問題一直沒找到解決辦法,cp這個檔案到tmp下也試過了,不管用,然後我就強行執行了“mysqld”的命令

mysql_install_db

c.開啟mariadb

mysqld

3.下載phpMyAdmin資料庫管理軟體

百度phpmyadmin下載,下載後解壓出資料夾,放到某路徑下

開啟phpmyadmin,就是開啟php的web伺服器,並將指向解壓出來的資料夾,可以設定其它的埠:

php -S 0.0.0.0:埠號 -t 資料夾名稱

然後在瀏覽器內輸入主機的區域網ip地址 : 埠即可訪問,預設帳號為root,密碼為空。

會提示缺少mcrypt擴充套件,這個不影響登入,後面可以慢慢除錯。

第一次輸入帳號(密碼為空,就是不用輸入)後點”執行“上方還會提示“禁止空密碼進入”,這時候我們需要修改下他的配置檔案:

cd到phpmyadmin資料夾,然後裡面會有檔名為config.sample.inc.php的檔案,也可能是config.inc.php,或者是config.default.inc.php

用vi開啟它:

vi config.sample.inc.php

會看到:

向下滑,將

cfg[′Servers′][i]['AllowNoPassword'] = false;

改為:

cfg[′Servers′][i]['AllowNoPassword'] = true;

或將密碼設定一下(紅色部分):

接著按住ESC並輸入“:wq“,回車自動儲存退出,空密碼的問題解決。

至此,web伺服器搭建完成,但是自己在區域網內搭建個部落格啥的,也就只能給自己看,那有啥意思,部落格不就是為了分享生活,分享快樂,分享知識技術的嘛。所以我們還需要將我們搭建好的網站讓公網也可以訪問到,有兩種辦法:1.直接去兩位馬爸爸家購買相應服務 2.自己在網上找相應的軟體以及配置教程。

不過咱們用手機搭建伺服器不是為了省錢嗎,不然還折騰這個幹嗎。畢竟大家都是窮吊絲,呸!就我是個窮吊絲,大家都是富一代、富二代、青年企業家。

為了省錢我就在網上找相關的軟體以及教程。最開始用的是ngrok,買了個免費的,結果發現配置成功了,但是訪問卻訪問不到。後來查到個軟體:nat123。

說實話,最開始進官網的時候感覺介面有點low,不是很優雅、美觀,但是確實是成功的從公網訪問到了我的伺服器,不吹不黑,速度不錯!下面是通過nat123讓伺服器能被公網訪問的教程。

四.通過公網訪問伺服器的辦法

1.nat123安卓版

a.在nat123官網上註冊帳號並登入

b.登入後,找到埠對映列表,右上角“新增埠對映”

c.填寫資訊,並確認儲存

d.選擇android版,根據手機系統下載軟體

e.開啟nat123安卓版,並輸入在官網註冊的帳號密碼,進入後自動開啟服務

可選擇退出前臺程式選項,不要讓手機在後臺kill此程式,建議設定白名單,Temrux同理

Ps:以下為nat123官網複製的內容(侵刪):

android版本備註: 1.在安卓執行後,遠端web管理。登陸網頁新增修改刪除操作,管理對映/解析,自動同步生效。 2.客戶端和訪問者是分開獨立的。 3.安卓版的訪問者暫時不支援1024以下埠。

五.總結

php -S 開啟web伺服器時,指向建站系統資料夾最開始不知道怎麼表達,也就不知道怎麼搜尋,苦惱了好一陣。

mariadb中,碰到了同樣煩心的命令錯誤問題:mysql_install_db 與mysql upgrade,執行mysql upgrade命令過程中還會碰到在網上找不到合適解決辦法的mysqld.sock問題。

無論是ssh還是在手機上,開啟了mariadb服務就不能關掉終端,只能新建一個終端,否則會失效

開啟伺服器的命令最好在手機上的一個終端上完成,測試有時在ssh上開啟後不能關閉ssh或斷開連線,有機率會在後臺找不到之前開啟的伺服器活動,並且建議先執行php -S 的web伺服器指令,因為可以通過Ctrl Z、bg等指令實現在後臺繼續執行;mariadb執行後只能在前臺執行(網上其他資料也這麼說),沒有找到後臺執行的辦法,開啟mariadb的狀態下,Ctrl Z、bg等命令均無效。等這些服務執行起來後,在手機Termux介面由左向右滑動螢幕,會有“New session”選項,可以開啟一個新的終端。

Termux的installing與phpmyadmin的下載花了好久的時間,最好有特殊的網路連線。