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>
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.