在Android上运行个网页

发布于 2020-07-06  958 次阅读


``想建个站却不想花几毛钱买服务器?
直接用闲置的安卓手机作服务器岂不美哉?

系统建议Android L以上,最好已Root,即使有些软件可以无Root使用,也建议在Root下运行,否则会各种受限,比如无法使用1024以下的端口(网站通常采用80和443)。

一、现成的Android应用

这可能是最简单快速的方法,如果你不想碰命令行的话。

这里提到两个软件:ANMPPKSWEB(如果链接不行可以使用这两条:ANMPPKSWEB

 1. ANMPP(必须Root)

  安装好后名为“超级主机”;ANMPP的功能还算是比较全,不仅FTP等功能齐全,还自带了FRP内网穿透。
  使用时直接把所需的服务点上(至少带个Nginx),再把网页文件放入相应的目录下:
/data/user/0/xiaoqidun.anmpp/files/root/andriod.wwwroot/localhost
若使用FTP则为
/data/data/xiaoqidun.anmpp/files/root/andriod.wwwroot/localhost
  文件放好再浏览器访问http://localhost (或者127.0.0.1)便看到网页正常运行了。
网页文件不知道哪有的可以先随便网上找个或者用文本编辑器创建个index.html试试,这里不提供。
  SQL数据库配置快捷入口则在右上角菜单。
一切准备好后,跑个WordPress不是问题。
  到此,网站基本就算是建好了。
  接着,把Frp配置文件的内容复制到“内网穿透配置”并保存,就能实现从外网访问了。
至于这个Frp配置文件从哪来,将在下面提到。

 2. KSWEB

  功能比ANMPP更多,自带三种服务端(Lighttpd、Nginx及Apache),三选一即可。实在纠结就选Nginx吧。
  用法实际和上面说的ANMPP差不多,不过这个可以自定义目录和端口号,已配置的站点的目录和地址什么的在软件首页便已列出。(数据库用户名用“root”)
作为入门者,只管把文件放对位置即可,放好文件就可以直接访问了。
  若要使用MySQL,记得选好phpMyAdmin服务端,和已开启的对应。
  这个软件并不自带内网穿透客户端,所以内网穿透要另外整,这个后面提到。

二、Linux工具

(这里数据库安装我一直没搞定,要用到MySQL的站点就没法搭了)

相比之下,直接像用Linux一样来配置一个站点,可能是更好的选择。

这里提到两个软件:Linux DeployTermux

 1. Linux Deploy(必须root)

  这是以Chroot的方式在安卓上运行其他Linux发行版。
  首先点击该软件右下角的设置图标打开配置页,可以参考下图配置(此处以Ubuntu为例)。
密码自己改改;底下的项目只需(至少)勾上SSH即可;若是32位机器,架构不应选“arm64”而应选“armhf”。
  回到首页,右上角菜单点击安装,直到底下出现“<<< deploy”即是完成。
  此时可以点击启动了,没有出现“fail”即说明成功。
  下一步是使用SSH连接,这里以JuiceSSH为例。
  JuiceSSH主页选择快速连接,填入地址(“IP地址:端口号”,端口默认22)并确认。
它会提示选择认证,新建一项。
只需填写用户名和密码。
成功则如下。
  后面是安装Nginx和PHP。
  分别输入两条指令:

apt install nginx
apt install php-fpm

  安装完成后需要改配置文件以使得二者能够通信;需要一个好用的编辑器,
比如vim,用apt install vim安装。
  打开Nginx配置文件:

vim /etc/nginx/sites-enabled/default

  找到以下字段:

# Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files uriuri/ =404;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
        #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        #}

  按注释提示改为如下:

# Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html index.php;
#上面一堆index.xxx是默认网页文件名,可以理解为“首页”
#加上“index.php”即把名为“index.php”的文件作访问网址时直接打开的文件作为“首页”
        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files uriuri/ =404;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
#去掉“location”前的“#”以启用PHP
                include snippets/fastcgi-php.conf;
#这里“include”前的“#”也去掉
                # With php7.0-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;

                # With php7.0-fpm:
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#把第二个“fastcgi_pass”前的“#”去掉,启用UNIX Socket方式通信;
#若去掉第一个“fastcgi_pass”前的“#”则开启TCP模式,这需要将/etc/php/7.0/fpm/pool.d/www.conf中的模式也改为对应的;
#总之,只能二选一
        }#括号前当然不能有“#”

把多余的内容去掉,即:

        index index.html index.htm index.nginx-debian.html index.php;

        server_name _;

        location / {
                try_files uriuri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

  然后启动Nginx和PHP-FPM,指令直接nginxphp-fpm7.0

这里PHP-FPM可能会报错说找不到目录,手动创建一个即可:mkdir /run/php

  浏览器访问主机IP就能看到欢迎页“Welcome to Nginx”了,把你的网页文件放到/var/www/html下(用SFTP,找一个支持SFTP的文件管理器,连接和SSH类似),测试,搭建完成。
  MySQL整了一天没搞定。(¦3[▓▓]放弃治疗。

 2. Termux

  这是个带有成吨工具包的终端模拟器。
  整个操作和上面差不多。
Nginx配置文件在/data/data/com.termux/files/usr/etc下,站点目录为/data/data/com.termux/files/usr/share/nginx/html
  数据库经过多次尝试后,依旧同样也没成功。

三、内网穿透

前面做的都只是在局域网实现访问,现在要让它能被广域网访问,而我们的主机常常在“网中网”中,没有公网IP,因此需要内网穿透。

  内网穿透的方式有多种,这里只介绍Frp,这是一个支持多种协议的反代应用,请转至《咕咕咕》
下篇内容暂且失去时效,因为免费的方法在找了,原本免费的Sakura Frp现在需要一次性付费开启HTTP通道。