Skip to main content

Running a web server on my Android

I have never attempted this before. I was deciding on what to blog about today and it occured to me that this would be a fun project and blog post. The first thing I had to do was see what apps were available and I was looking for apps where I would not have to do any rooting of my android device.

I searched the play store for "web server", looking at number of installs for popular apps. Then for free options and then the reviews. No quick obvious option so now I turned to a google search for "android web server".

HTTP server powered by Apache seems like a popular and useful option but I get, your device is not compatible with this version in the play store. My mobile is a Samsung M30 running Android 10.

I also came across Tiny Web Server which I decided to try. It's simple but I can review other options in another blog post. Today I just want to get started. I installed the app and was greeted with the warning, "this app was built for an older version of Android and may not work properly. Try checking for updates or contact the developer."

I opened up my file manager app and created a folder called WEB and used that folder as the server path in the app. I then clicked on start server. I went over to the Chrome mobile brower and opened up url localhost to see what would happen. The browser returned, "This site can’t be reached localhost refused to connect. Try: Checking the connection ERR_CONNECTION_REFUSED". I then tried the ip address. Same thing. I then decided that I probably needed an index.html.

I then installed HTML editor by Subedi and created a simple index.html in the WEB folder. After a short while of trying I realised that you have to specify the complete URL with port and file name to see the web page. For me that was http://192.168.0.15:8080/index.html

Web server on Android


Then I tested if it could handle a javascript alert. It worked. What I realised now though, was that I had to restart the server whenever I made changes. Also, without specifying filename in url the server serves up a directory listing.

So that was my first and quick attempt at serving static website content from my android smartphone. In a future blog post I will look at doing more with this project like using the No-IP.com app to map ip address to a named url.

Comments

Popular posts from this blog

Hobby project - Store and view exchange rates

The next step in my project was to test out being able store and display the rates in a database. I decided to use nodejs and supabase for this. Everything worked beautifully. Only hickup was the following error due to my package.json not being correct. SyntaxError: Cannot use import statement outside a module Added this to package.json   "type": "module" This works beautifully. Right now I am just testing fragments of what could be part of a bigger system to see what is possible and what works and how easy to code on a mobile. There is no fully functioning integrated end to end system just yet. This is also what I tested. A serverless append-only database using GitHub + Actions + Pages. That’s basically a lightweight backend system. This was the ChatGPT prompt I used. Guide me through each step. This is what I want. A manually run github actions that adds to docs/data.json with the current date and time. docs/index.html displays all the entries in data.json. Make s...

What is important

Every now and again, I get reminded of the why. Why I have handed my life over to God. It is 3:08 p.m. and I have decided to write. Honestly, I feel like I could end this blog post right here. What more is there to say? God above all else. God is our compass on this journey called life. Everything else can become a distraction. Maybe not everything, but certainly many things. You get the point. What is important? What do we prioritise? What do we make time for? The answers look different for everyone. Our lives are different. We are tested differently. We are all products of our circumstances, and those circumstances vary from person to person. Yet God is the common thread across humanity and throughout time. God always was and always will be. One day, we will answer to God. We will give account to God. We cannot live without food, water, and oxygen, but all of those things come from God. So how can we live without God? How timely. I just received a notification from the Quranly app: S...

Running php and apache on termux

This was my experience getting php and apache to run on termux apt update && apt upgrade -y apt install php-apache I was following an old blog post that used php 7 and got these errors Can't locate API module structure `php7_module' in file /data/data/com.termux/files/usr/libexec/apache2/libphp.so: undefined symbol: php7_module Cannot load /data/data/com.termux/files/usr/libexec/apache2/libphp7.so Corrected in apache config file vim $PREFIX/etc/apache2/httpd.conf LoadModule php_module /data/data/com.termux/files/usr/libexec/apache2/libphp.so Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP. Comment out mpm_worker and use mpm_prefork #LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so This still does not work as apache (httpd) was failing silently. According to Chatty LoadModule php_module ...libphp.so often fails in Termux becau...