Palapa web server is a mobile server for android operating system. The package includes the Lighttpd web server, PHP, MySQL, and MSMTP. It turns your devices based on android operating system into a web server and database server, suitable for building dynamic web sites. PWS version 2.0.0 or later includes support for devices that use ARM & Intel (x86) processor.

Palapa web server is a great server for android operating system and a great tool for people who just started learning programming with PHP (or even PHP gurus).

It is very easy to use, with one touch you can get the web server up and running. With another touch you can get the database server working.