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

コメント

このブログの人気の投稿

java apache commons io を使って文字コードを変換する方法

Ubuntu17.10+mirakurun+chinachuでBonDriver_mirakurunでチューナが開けない

eclipseのプロジェクトのエクスポートで作ったjarとantで作成したjarのclassファイルを同一にする方法