Skip to content
Advertisement

Android linux deploy (localhost LAMP server configuration)

Hello my fellow humans!

I have two rooted android phones, each running a chroot environment using the “Linux Deploy” app (HTC desire 510 running Kali Linux and vodafone smart 4 mini running Ubuntu). On each device, I have installed LAMP using:

aptitude install php5 php5-gd php5-cgi php5-mysql mysql-server mysql-client php5-curl lynx php-pear ca-certificates xml-core apache2 libapache2-mod-php5

When I start apache2 service, the server says that it has started using ServerName 127.0.0.1. However, when I do nmap -p 80 127.0.0.1, the port is closed. Netstat shows no process using port 80 and my fingers are violently bleeding from playing around with iptables all day. Changing the listening port in apache configuration doesnt seem to work either. Perhaps it is something to do with iptables in the Android kernel? I am simply trying to get this webserver available on port 80 of the phones LAN address. I am totally stumped, any help at all will be greatly appreciated!

Linux Deploy: https://github.com/meefik/linuxdeploy

apache2.config (ubuntu environment)

### Section 1: Global Environment
#
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests it can handle or where it
# can find its configuration files.
#

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# NOTE!  If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the LockFile documentation (available
# at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>);
# you will save yourself a lot of trouble.
#
# Do NOT add a slash at the end of the directory path.
#
#ServerRoot "/etc/apache2"

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
LockFile ${APACHE_LOCK_DIR}/accept.lock

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5

##
## Server-Pool Size Regulation (MPM specific)
##

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadLimit: ThreadsPerChild can be changed to this maximum value during a
#              graceful restart. ThreadLimit can only be changed by stopping
#              and starting Apache.
# ThreadsPerChild: constant number of worker threads in each server process
# MaxClients: maximum number of simultaneous client connections
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

# event MPM
# StartServers: initial number of server processes to start
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxClients: maximum number of simultaneous client connections
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_event_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

#
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#

AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

#
# DefaultType is the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, "text/plain" is
# a good value.  If most of your content is binary, such as applications
# or images, you may want to use "application/octet-stream" instead to
# keep browsers from trying to display binary files as though they are
# text.
#
# It is also possible to omit any default MIME type and let the
# client's browser guess an appropriate action instead. Typically the
# browser will decide based on the file's extension then. In cases
# where no good assumption can be made, letting the default MIME type
# unset is suggested  instead of forcing the browser to accept
# incorrect  metadata.
#
DefaultType None


#
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., www.apache.org (on) or 204.62.129.132 (off).
# The default is off because it'd be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
#
HostnameLookups Off

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog ${APACHE_LOG_DIR}/error.log

#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn

# Include module configuration:
Include mods-enabled/*.load
Include mods-enabled/*.conf

# Include all the user configurations:
Include httpd.conf

# Include ports listing
Include ports.conf

#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
# If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
#
LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined
LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.

# Include generic snippets of statements
Include conf.d/

# Include the virtual host configurations:
Include sites-enabled/
root@localhost:/etc/apache2#

netstat results (ubuntu environment)

root@localhost:/etc/apache2# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0    312 192.168.1.8:ssh         192.168.1.10:58501      ESTABLISHED
tcp6       1      0 192.168.1.8%13923:50042 syd01s18-in-f1.1e:https CLOSE_WAIT
tcp6       1      0 192.168.1.8%13924:45698 syd01s19-in-f9.1e:https CLOSE_WAIT
tcp6       0      0 192.168.1.8%13926:53997 tg-in-f188.1e100.n:5228 ESTABLISHED
tcp6       1      0 192.168.1.8%13928:48576 183.61.112.29:http      CLOSE_WAIT
tcp6       1      0 192.168.1.8%13929:55681 syd01s18-in-f6.1e1:http CLOSE_WAIT
tcp6      24      0 192.168.1.8%13931:36897 ec2-54-241-32-22.:https CLOSE_WAIT
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ]         STREAM                   776      /dev/socket/rild-mtk-modem
unix  2      [ ]         STREAM                   1545     /dev/socket/adbd
unix  2      [ ]         STREAM                   205      @@king_dserver:1
unix  2      [ ]         STREAM                   1483     @@king_dserver:0
unix  2      [ ]         STREAM                   211      @@king_dserver:2
unix  2      [ ]         DGRAM                    344      @/dev/socket/palinjectsock
unix  2      [ ]         DGRAM                    342      @/dev/socket/palhal
unix  2      [ ]         DGRAM                    3701     /dev/socket/wpa_wlan0
unix  2      [ ]         DGRAM                    343      @/dev/socket/paltimersock
unix  2      [ ]         DGRAM                    341      @palbt_bt30hs
unix  4      [ ]         DGRAM                    4381     /data/misc/wpa_supplicant/wlan0
unix  4      [ ]         DGRAM                    4396     /data/misc/wpa_supplicant/p2p0
unix  2      [ ]         DGRAM                    4386     /data/misc/wifi/sockets/wpa_ctrl_816-2
unix  2      [ ]         DGRAM                    4387     /data/misc/wifi/sockets/wpa_ctrl_816-3
unix  2      [ ]         DGRAM                    4416     /data/misc/wifi/sockets/wpa_ctrl_816-4
unix  2      [ ]         DGRAM                    4417     /data/misc/wifi/sockets/wpa_ctrl_816-5
unix  2      [ ]         STREAM                   168      /dev/socket/atci-serv-fw
unix  2      [ ]         STREAM                   170      /dev/socket/atci-service
unix  2      [ ]         DGRAM                    1464     /dev/socket/soc_vt_svc
unix  2      [ ]         DGRAM                    1466     /dev/socket/soc_vt_stk
unix  2      [ ]         DGRAM                    1468     /dev/socket/soc_vt_tcv
unix  3      [ ]         DGRAM                    348      /data/agps_supl/soc_soc
unix  2      [ ]         DGRAM                    350      /data/agps_supl/soc_supl
unix  2      [ ]         DGRAM                    355      /data/agps_supl/soc_tls
unix  2      [ ]         DGRAM                    351      /data/agps_supl/mnl2supl
unix  2      [ ]         DGRAM                    1966     /data/agps_supl/soc_rrlp
unix  2      [ ]         DGRAM                    353      /data/agps_supl/agps_mgr
unix  2      [ ]         DGRAM                    356      /data/agps_supl/soc_mmi
unix  2      [ ]         DGRAM                    357      /data/agps_supl/soc_gps
unix  2      [ ]         DGRAM                    3537     @bt.app.gap.twin
unix  2      [ ]         DGRAM                    3536     @bt.app.gap
unix  2      [ ]         DGRAM                    1529     /dev/socket/bt.a2dp.stream
unix  3      [ ]         DGRAM                    1531     /dev/socket/bt.int.adp
unix  2      [ ]         STREAM                   1533     /dev/socket/backuprestore
unix  3      [ ]         STREAM     CONNECTED     61257
unix  3      [ ]         STREAM     CONNECTED     61256
unix  3      [ ]         STREAM     CONNECTED     61079
unix  3      [ ]         STREAM     CONNECTED     61078
unix  3      [ ]         STREAM     CONNECTED     61069
unix  3      [ ]         STREAM     CONNECTED     61068
unix  2      [ ]         DGRAM                    59406
unix  3      [ ]         SEQPACKET  CONNECTED     44431
unix  3      [ ]         SEQPACKET  CONNECTED     44430
unix  3      [ ]         STREAM     CONNECTED     45386
unix  3      [ ]         STREAM     CONNECTED     45385
unix  3      [ ]         STREAM     CONNECTED     42809
unix  3      [ ]         STREAM     CONNECTED     42808
unix  3      [ ]         SEQPACKET  CONNECTED     23826
unix  3      [ ]         SEQPACKET  CONNECTED     23825
unix  3      [ ]         SEQPACKET  CONNECTED     22620
unix  3      [ ]         SEQPACKET  CONNECTED     22619
unix  3      [ ]         SEQPACKET  CONNECTED     18542
unix  3      [ ]         SEQPACKET  CONNECTED     18541
unix  2      [ ]         STREAM     CONNECTED     10052    /data/data/com.kingroot.kinguser/cache/.socketgTt170
unix  3      [ ]         SEQPACKET  CONNECTED     6932
unix  3      [ ]         SEQPACKET  CONNECTED     6931
unix  3      [ ]         SEQPACKET  CONNECTED     7543
unix  3      [ ]         SEQPACKET  CONNECTED     7542
unix  3      [ ]         SEQPACKET  CONNECTED     6923
unix  3      [ ]         SEQPACKET  CONNECTED     6922
unix  3      [ ]         SEQPACKET  CONNECTED     6921
unix  3      [ ]         SEQPACKET  CONNECTED     6920
unix  3      [ ]         SEQPACKET  CONNECTED     7389
unix  3      [ ]         SEQPACKET  CONNECTED     7388
unix  3      [ ]         STREAM     CONNECTED     4864     /dev/socket/rild
unix  3      [ ]         STREAM     CONNECTED     5130
unix  3      [ ]         SEQPACKET  CONNECTED     4849
unix  3      [ ]         SEQPACKET  CONNECTED     4848
unix  3      [ ]         SEQPACKET  CONNECTED     4050
unix  3      [ ]         SEQPACKET  CONNECTED     4049
unix  3      [ ]         SEQPACKET  CONNECTED     4726
unix  3      [ ]         SEQPACKET  CONNECTED     4725
unix  2      [ ]         STREAM                   3846
unix  3      [ ]         STREAM     CONNECTED     4524     @com.kingroot.master.ap
unix  3      [ ]         STREAM     CONNECTED     4525
unix  2      [ ]         STREAM     CONNECTED     4522
unix  3      [ ]         STREAM     CONNECTED     4419
unix  3      [ ]         STREAM     CONNECTED     4418
unix  3      [ ]         SEQPACKET  CONNECTED     3726
unix  3      [ ]         SEQPACKET  CONNECTED     3725
unix  3      [ ]         STREAM     CONNECTED     3717
unix  3      [ ]         STREAM     CONNECTED     3716
unix  3      [ ]         STREAM     CONNECTED     4292     /dev/socket/zygote
unix  3      [ ]         STREAM     CONNECTED     3643
unix  3      [ ]         SEQPACKET  CONNECTED     3642
unix  3      [ ]         SEQPACKET  CONNECTED     3641
unix  3      [ ]         SEQPACKET  CONNECTED     3639
unix  3      [ ]         SEQPACKET  CONNECTED     3638
unix  3      [ ]         SEQPACKET  CONNECTED     3633
unix  3      [ ]         SEQPACKET  CONNECTED     3632
unix  3      [ ]         STREAM     CONNECTED     3594     /dev/socket/agpsd
unix  3      [ ]         STREAM     CONNECTED     3593
unix  3      [ ]         STREAM     CONNECTED     4235     /dev/socket/mdns
unix  3      [ ]         STREAM     CONNECTED     4234
unix  3      [ ]         STREAM     CONNECTED     4185     /dev/socket/netd
unix  3      [ ]         STREAM     CONNECTED     4184
unix  3      [ ]         STREAM     CONNECTED     4182     /dev/socket/vold
unix  3      [ ]         STREAM     CONNECTED     4181
unix  3      [ ]         SEQPACKET  CONNECTED     3530
unix  3      [ ]         SEQPACKET  CONNECTED     3529
unix  3      [ ]         SEQPACKET  CONNECTED     3521
unix  3      [ ]         SEQPACKET  CONNECTED     3520
unix  3      [ ]         SEQPACKET  CONNECTED     3115
unix  3      [ ]         SEQPACKET  CONNECTED     3114
unix  3      [ ]         STREAM     CONNECTED     280      /dev/socket/installd
unix  3      [ ]         STREAM     CONNECTED     992
unix  3      [ ]         STREAM     CONNECTED     2223
unix  3      [ ]         STREAM     CONNECTED     2222
unix  3      [ ]         SEQPACKET  CONNECTED     383
unix  3      [ ]         SEQPACKET  CONNECTED     382
unix  2      [ ]         DGRAM                    352
unix  2      [ ]         DGRAM                    349
unix  2      [ ]         DGRAM                    339
unix  3      [ ]         STREAM     CONNECTED     270
unix  3      [ ]         STREAM     CONNECTED     269
unix  3      [ ]         STREAM     CONNECTED     1551
unix  3      [ ]         STREAM     CONNECTED     1550
unix  3      [ ]         STREAM     CONNECTED     1548
unix  3      [ ]         STREAM     CONNECTED     1547
unix  3      [ ]         STREAM     CONNECTED     124
unix  3      [ ]         STREAM     CONNECTED     123

ports.conf (ubuntu environment)

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

Advertisement

Answer

I’ve also got a Linux install on an Android tablet using Linux Deploy and also have a LAMP stack installed, so am in a similar position to you. The version of linux that I’m using is Debian Wheezy however so there may be some variation from your exact situation.

Firstly (and I doubt this makes any difference) I installed using “apt-get install”.

Then I edited /etc/apache2/sites-enabled/000-default to enable the localhost and other LAN clients to connect.

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order deny,allow
    deny from all
    allow from 127.0.0.1 192.168
</Directory>

I’m pretty sure that was it! I’ll contribute further if I remember any other setup steps that I had to do.

The other difference between our two setups could be the version of Android. I’m running CyanogenMod 12.1 (Android v5.1.1) on my tablet, though I’m not sure that this is the cause of your problem.

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement