Clone wiki

server / Home

Active development is stopped due to upcoming changes in Android Q - https://issuetracker.google.com/issues/128554619

? Why was development stopped

Google is planning to block using exec() which essentially will deny running any binaries on Android. Good news is that at least for Android Q binaries packed into APK will still be able to run, but from comments on Google issue tracker it is clear that it is only for short time: "Relying on exec() may be problematic in future Android versions" and they will most likely block any exec() in future.

It would be possible for Servers for Android to be alive for some time (by packing and running binaries from APK), but it will most likely be only short term solution. Plus it would have drawback of only limited amount of PHP versions supported - single version of PHP takes ~100-200 Mb, so 10 - 20 versions of PHP would make size of APK 2Gb+, that is unacceptable.

? Why is Google doing this

Their official answer is due to security - they are essentially choosing security over freedom.

? But if Servers for Android could try to be alive for some more time why is development stopped

The main reason is that continuing development of project that has death sentence assigned by Google would simply be waste of time.

? Why exec() is important for Servers for Android

It is important because all of Servers for Android apps use exec() to run compiled binaries of PHP, MariaDB, Apache HTTP, ... .

? Can Servers for Android be back

Yes - if it becomes clear that exec() will not be blocked why Android is alive.

Servers for Android

Servers running natively on Android. Currently project consists of applications which are free, without ads, stable and pure:

Official Facebook page: https://www.facebook.com/esminis.server

Features - common to all server apps

  • Switch server version and build any time you want (you can download install package to switch server version offline)
  • Server log, with possibility to export it
  • Configuration options:
    • Network (IPv4 and IPv6 are supported):
      • Interface / address - wlan, lo, all, ...
      • Server port - 1024+
    • Data directory - contains document root, config, ... (depending on server)
    • Start server on Android device boot
    • Notifications:
      • Enable notification - show it when server is running
      • Use low priority notification (usually it will be visible only in drawer)
  • External intents - control servers from other applications with Android Intents
  • Multilingual interface - English, Spanish, Portuguese (Brazilian), French, German, Russian, Chinese, Hindi, Bengali, ... translations supplied by community
  • Stable, pure, free and without ads

Author

Tautvydas Andrikys https://esminis.com

License

Source code is licensed under the Apache License, Version 2.0 You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0

Server for PHP

PHP server for Android

Features

  • PHP 5.4+, 7+
  • php.ini - is in path [document root]/config/php.ini and you can modify it as you want
  • Configuration optionsDocument root/
    • PHP extensions - most of them can be enabled/disabled any time you want
    • Router script

PHP extensions (configurable - can be enabled/disabled)

  • apcu - APCu
  • bbcode - BBCode
  • bcmath - BC Math
  • bz2 - Bzip 2
  • calendar - Calendar
  • ctype - Ctype
  • dba - DBA
  • eio - Eio
  • ev - Ev
  • exif - EXIF
  • fileinfo - Fileinfo
  • ftp - FTP
  • gd - GD
  • gender - Gender
  • gettext - Gettext
  • gmp - GMP
  • recode - GNU Recode
  • iconv - iconv
  • id3 - ID3
  • imagick - ImageMagick
  • inotify - Inotify
  • judy - Judy Arrays
  • ldap - LDAP
  • lzf - LZF
  • mailparse - Mailparse
  • mcrypt - Mcrypt
  • mongodb - MongoDB driver
  • mysql - Mysql
  • mysqli - Mysqli
  • oauth - OAuth
  • odbc - ODBC
  • zend_opcache - OPcache
  • pdo_mysql - PDO MySQL
  • pdo_odbc - PDO ODBC
  • pdo_pgsql - PDO PostgreSQL
  • phalcon - Phalcon
  • phar - Phar
  • posix - POSIX
  • pgsql - PostgreSQL
  • pspell - Pspell
  • quickhash - Quickhash
  • rar - RAR
  • rpmreader - RPM Reader
  • soap - SOAP
  • spl_types - SPL Types
  • ssh2 - SSH 2
  • stats - Statistics
  • tidy - Tidy
  • tokenizer - Tokenizer
  • uopz - User operations for Zend
  • weakref - Weakref
  • xdebug - Xdebug
  • xdiff - XDiff
  • xmldiff - XMLDiff
  • xsl - XSL
  • yaf - Yet Another Framework
  • yar - Yet another RPC framework
  • yaml - YAML
  • zip - ZIP
  • zlib - Zlib

PHP extensions (built-in - cannot be disabled)

  • cli_server - SAPI CLI
  • core - Core
  • curl - cURL
  • date - Date/Time
  • dom - DOM
  • ereg - POSIX Regex
  • filter - Filter
  • hash - Hash and Mhash
  • intl - Intl
  • json - JSON
  • libxml - LibXml
  • mbstring - MBString
  • mysqlnd - Mysqlnd
  • openssl - OpenSSL
  • pcre - PCRE
  • pdo - PDO
  • pdo_sqlite - PDO Sqlite
  • reflection - Reflection
  • session - Session
  • simplexml - SimpleXML
  • sockets - Sockets
  • spl - SPL
  • sqlite3 - SQLite3
  • standard - Standard
  • wddx - WDDX
  • xml - XML
  • xmlreader - XML Reader
  • xmlrpc - XML-RPC
  • xmlwriter - XML Writer

How to

PHP - connect to MariaDB Server using Adminer

MariaDB Server

MariaDB server for Android

Features

  • MariaDB 10+
  • my.cnf - is in path [data directory]/my.cnf and you can modify it as you want

moNERIngAo Server

MongoDB server for Android

Features

  • MongoDB 2.6+
  • mongod.cnf - is in path [data directory]/mongod.cnf and you can modify it as you want

How to

MongoDB - Create root user

HTTP Server powered by Apache

Apache HTTP server for Android

Features

  • Apache 2.2+
  • httpd.conf - is in path [data directory]/conf/httpd.conf

How to

Apache HTTP - PHP as CGI
Apache HTTP - HTTPS with SSL

Server for Redis™

Redis server for Android

Features

  • Redis 4+
  • redis.conf - is in path [data directory]/config/redis.conf

Updated