Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

This one is giving me a headache...

I have installed XAMPP for Linux 1.7.7 on Ubuntu 12.10. I haven't installed the latest version because of the new security "feature" which makes XAMPP so secure I can't get it running. But that's another story.

After it installed and ran ok for a couple of months, I now get the famous XAMPP: Another web server daemon is already running. error while starting XAMPP. Now I've googled extensively and can rule out the following:

  • There is no other Apache installation, just XAMPP
  • There are no apache or apache 2 services running
  • There are no services running that use port 80 (checked with netstat -an grep -w 80)

I have also done a fresh install of xampp 1.7.7, but that gives me the same result. I think I have tried every solution on the first two result-pages of google and am nowhere nearer to a solution.

Can anyone give me pointers on how to find the mysterious Webdeamon that is already running?


I changed the port that XAMPP listens to in httpd.conf, which, in my case,is located in the /opt/lampp/etc/ folder. I changed the option Listen, as that was the only option that had a value of 80. Still I get the Deamon already running-error.

The output of the netstat command is the following:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1189/tntnet     
tcp        0      0 192.168.178.52:35048    91.189.94.25:80         ESTABLISHED 2350/ubuntu-geoip-p
tcp        0      0 192.168.178.52:35047    91.189.94.25:80         TIME_WAIT   - 

I have killed the ubuntu-geoip-p service and couldn't find a way to kill the tcp service, but I don't think the tcp service must be killed in order to start apache. Anyway, after this I still got the same error.

Any other suggestions?


lsof -i :80 gave a different output and I saw that tntnet also used port 80. Uninstalled tntnet and apache started as normally. Problem solved! Thanks for the info.

share|improve this question
add comment

3 Answers

@TedvG Update 17 Nov 2012

ubuntu-geoip-p was connecting to a remote IP on port 80 so it is not related.

looks like tntnet (another web server, this explains it) process was binding port 80. You have to stop it (I guess service tntnet stop does it, if NOT kill the tntnet process may be kill -9 pid to kill it). Also you can uninstall by complete the tntnet package.

Or you can change apache port, edit lampp/etc/httpd.conf, change the port to 8080, for example:

#Listen 12.34.56.78:80
Listen 8080

Start it using lampp startapache


By default XAMPP's apache use port 80 (requires root for ports below 1024), anyway it can be changed by editing $XAMPP/apache/conf/httpd.conf

You can run

lsof -i :80

or

netstat -nap | grep :80

to figure out the process using port 80

For example if I use Python's SimpleHTTPServer module on port 8080

$ lsof -i :8080
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  16484 terry    3u  IPv4 367600      0t0  TCP *:http-alt (LISTEN)

$ netstat -anp | grep :8080
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      16484/python

Very clear.

share|improve this answer
    
Hi Terry, thanks for this, but I'm no further. See my added comment in the original question. –  TedvG Nov 16 '12 at 15:27
    
Found it. See comment in original question. Thanks for your help! –  TedvG Nov 17 '12 at 10:54
    
Ha, I just updated the answer;-) In fact netstat did tell you tntnet was binding port 80 on the local host (you need to pay attention to the output format). lsof is clearler anyway. Learned something new, I didn't know tntnet LOL –  Terry Wang Nov 17 '12 at 11:13
    
@TerryWang just an aside: if you use lsof -nPi it gives you the numbers just like your netstat command. –  guntbert Sep 3 '13 at 19:35
    
You can use "Umit Port Scanner" to find out what is occupying the 80 Port ! –  Curious Apprentice Feb 27 at 4:05
add comment

Just simply run this command to terminal

sudo /etc/init.d/apache2 stop

and after that

/opt/lampp/lampp/ start
share|improve this answer
add comment

Since I don't know if I'll be needing tntnet, and don't care for finding out the hard way, the best option seemed to change the port Apache uses.

With the latest versions of XAMPP, this is very easily done using the GUI manager included:

  1. Launch the manager (use manager-linux-x64.run if working on 64bits):

    cd /opt/lampp
    sudo ./manager-linux.run
    
  2. Change to the "Manage Servers" tab and select "Apache Web Server". Click on Configure:

    XAMPP server management application

  3. Change the port on the corresponding field to, e.g., 8080 and click OK:

    Configure Apache Web Server dialog

  4. Start all servers from the application by clicking on Start All.

  5. Open your favourite browser and go to http://localhost:8080; it should redirect automatically to http://localhost:8080/xampp.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.