Android端末(OS:5.1.1,F-01H)でメール送信もできるWebサーバを作る
前提条件:
Android:5.1.1 V16R071A
端末名:F-01H (ネットショップで中古で3000円くらいで購入)
スマフォのIP:192.168.11.20
問題点:
Android:5.1.1なので、goolge playのtermuxの場合、対応OSバージョンが7.0なので最新版をインストールできない
なので古いアプリバージョンである0.79のapkをダウンロードしてインストールする
ダウンロード先:https://archive.org/download/termux-repositories-legacy
目的:
apache2+php7が動作するwebサーバを作る
php7からmsmtpを使ってメール送信(受信はしない)できるようにする
スマフォサーバをつくろうと思ったきっかけは、
消費電力が少なく定期的にログ送信など重くない処理を実行する分においては問題ないため。
1.apkのダウンロード(PCでの作業)
https://archive.org/download/termux-repositories-legacy
から
termux-v0.79-offline-bootstraps.apk
を入手する
※その他termux系のアプリは、このサイトからDLすること
2.Android端末を開発者モードにして、提供元不明ソフトウェアのチェックをON(スマフォでの作業)
termux-v0.79-offline-bootstraps.apkをスマフォに転送してインストール
3.pkg updateとかpkg installとかできるように(スマフォでの作業)
そのままだと、pkg installがつかえないので設定ファイルをviでひらいて、#でコメントアウト
vi /data/data/com.termux/files/usr/etc/apt/sources.list.d/game.list
vi /data/data/com.termux/files/usr/etc/apt/sources.list.d/science.list
※修正不要
/data/data/com.termux/files/usr/etc/apt/sources.list
リポジトリから正しくとれることを確認する
pkg update
参考)
https://rsn604.github.io/it/termux%E3%81%AErepository%E3%81%8C%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9D%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
4.opensshをインストールしてからteraterm,winscpなどでつなげる用にする(スマフォでの作業)
pkg install openssh
#id確認
id
uid=10435(u0_a435)
#パスワード設定
passwd
XXX
XXX
# OpenSSHサーバー起動
sshd
#sshコマンドの場合
ssh u0_a435@192.168.11.20 -p 8022
#teratermやwinscpの場合
IP:192.168.11.20
PORT:8022 ※注意:ウェルノウンポートである0-1023のポートはAndroidをroot化しないと無理らしいのでおとなしく1024番以降のポートを使おう
ID:u0_a435
PASSWORD:passwdコマンドで設定した値
参考)
https://pc.watch.impress.co.jp/docs/column/nishikawa/1409411.html
5.php7とapache2のインストール ※4でopensshサーバが使えるようになったのここからはPCでssh接続して設定する
#phpのインストール
pkg install php php-apache
#apache2のインストール
pkg install apache2
#viでhttpd.confを編集する
vi $PREFIX/etc/apache2/httpd.conf
------------------------------------------
LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so
#LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so
※デフォルトだと上がコメントアウトになっているので外して、下をコメントアウトする
DirectoryIndex index.php index.html
※index.phpを加える
LoadModule php7_module libexec/apache2/libphp7.so
AddHandler php7-script .php
※ファイルの最後の方に適当に加える(正規の位置ではないが仮なので)
※参考元サイトと同じだがphpの部分がphp7としないといけない。
------------------------------------------
※注意:ウェルノウンポートである0-1023のポートはAndroidをroot化しないと無理らしいのでおとなしく1024番以降のポートを使おう
#htdocsは以下の場所にある
/data/data/com.termux/files/usr/share/apache2/default-site/htdocs/
#このままでは、php.iniがないので、php.iniを作成後winscp経由でアップロードする
#このphp.iniの設定は最低限の設定です(デフォルト設定のphp.iniを使った方がいいかもしれないです)。
#sendmail_pathはmsmtpのインストールの所で説明する。
アップロード先
/data/data/com.termux/files/usr/lib/php.ini
------------------------
date.timezone = "Asia/Tokyo"
default_charset = "UTF-8"
mbstring.language = Japanese
[mail function]
sendmail_path = "/data/data/com.termux/files/usr/bin/msmtp -C /data/data/com.termux/files/home/.msmtprc -t"
------------------------
#apache2の起動
apachectl start
※再起動はapachectl restart。停止はapachectl stop
※注意:apachectl restartの場合、サーバ起動中は停止するので、もう一度実行すること
#webブラウザで起動確認
http://192.168.11.20:8080/
参考)
https://pc.watch.impress.co.jp/docs/column/nishikawa/1409411.html
6.msmtpのインストール
#インストール
pkg install msmtp
#設定ファイルの作成
#yahooメールの例です。gmailとかの場合は、OAuth2とかに切り替わったので、接続が無理かもしれない。(未確認)
#tls系の設定に関しては、とりあえず動く程度としたので、公開サーバの場合はセキュリティに関しては注意してください。tls_certcheckがoffだと正しくない証明書も許可するかも。
vi ~/.msmtprc
-----------------
#lues for all following accounts.
defaults
auth on
tls on
tls_certcheck off
tls_starttls off
tls_trust_file /data/data/com.termux/files/usr/etc/tls/cert.pem
logfile ~/.msmtp.log
# yahoomail
account yahoomail
host smtp.mail.yahoo.co.jp
port 465
from XXXXX@yahoo.co.jp
user XXXXX
password ZZZZZ
# Set a default account
account default : yahoomail
-----------------
#テスト送信
echo "test." | msmtp XXXXX@example.com
#php.iniに追加(5.の手順で済)
/data/data/com.termux/files/usr/lib/php.ini
------------------------
[mail function]
sendmail_path = "/data/data/com.termux/files/usr/bin/msmtp -C /data/data/com.termux/files/home/.msmtprc -t"
------------------------
参考)
https://scribble.washo3.com/msmtp-gmail.html
7.phpコード例
---------------------
<?php
//送信元のメールアドレス
$from = 'XXXX@yahoo.co.jp';
//送信先のメールアドレス
$to = 'YYYY@yahoo.co.jp,ZZZZ@gmail.com';
//件名
$subject = "件名";
//本文
$message = "本文1\r\n本文2";
if (mb_send_mail($to, $subject, $message, 'From: ' . $from)) {
echo '送信成功!';
} else {
echo '送信失敗';
}
?>
---------------------
8.自動起動
https://archive.org/download/termux-repositories-legacy
から
termux-boot-git-debug.apk
を入手する
mkdir -p ~/.termux/boot/
vi ~/.termux/boot/start-sshd
------------
termux-wake-lock
sshd
apachectl start
------------
スマフォを再起動
参考)
https://www.lisz-works.com/entry/termux-boot-sshd
コメント
コメントを投稿