Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save forestrf/f70b24d96482e0c0aaf165c6375c9ae8 to your computer and use it in GitHub Desktop.
Save forestrf/f70b24d96482e0c0aaf165c6375c9ae8 to your computer and use it in GitHub Desktop.
setup http server on android with termux

Setting up http server on android with termux

Setting SSH server

To be able to make all procedures without pain you should have physical keyboard or just install ssh server and connect to your device shell from computer.

Folow this guide to setup ssh server.

Installing needed stuff

As bunch of utilites that you can expect in general linux distro is not preinstalled with termux you need to do following:

Update packages

pkg update
pkg upgrade

And install following (that will take ~250Mb):

pkg install autoconf automake bison bzip2 clang cmake coreutils diffutils flex gawk git grep gzip libtool make patch perl sed silversearcher-ag tar

Installing and configuring apache2

In this and further steps you will need to acces the /etc folder, but in termux it is hidden in /data/data/com.termux/files/usr/etc/, so I suggest you to make link.

ln -s /data/data/com.termux/files/usr/etc/ ~/etc

Install is a simple part

pkg install apache2

You can configure it if you need in ~/etc/apache2/httpd.conf.

Now you can run apache2 server by simple httpd (by default it will run on 127.0.0.1:8080).

Installing php

pkg install php php-apache

According to archwiki page libphp7.so included with php-apache will only work with mod_mpm_prefork.

  • In ~/etc/apache2/httpd.conf comment following line:
#LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so
  • Add following line in the start of section with LoadModule instructions
LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so

To enable PHP, add these lines to ~/etc/apache2/httpd.conf:

  • Place this at the end of the LoadModule list:
LoadModule php_module libexec/apache2/libphp.so
AddHandler php-script .php
  • Place this at the end of the Include list (this will be at the end of file):
Include etc/apache2/extra/php_module.conf

That file doesn't exist yet, so just create empty file, to load apache2 properly touch ~/etc/apache2/extra/php_module.conf

To test if php works:

  • Create index.php file with arbitrary content
echo "<?php phpinfo();?>" > ~/../usr/share/apache2/default-site/htdocs/index.php
  • Restart apache2 server
killall httpd; httpd
  • Verify PHP output (you will need to install curl, if you haven't already)
curl 127.0.0.1:8080/index.php
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment