192

It seems a simple apt-get remove apache2 does not completely remove apache2 as I can still see it on one of the processes when running top. How does one remove apache2 completely on his ubuntu server?

It's not removed indeed:

~# which apache2
/usr/sbin/apache2
~# whereis apache2
apache2: /usr/sbin/apache2 /etc/apache2 /usr/lib/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz

But when I do apt-get remove apache2 again:

# apt-get remove apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package apache2 is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2
  • 8
    run apt-get purge apache2. It will remove the all config files. Aug 17, 2012 at 10:06
  • 1
    I followed this with apt-get autoremove and then sudo rm -rf /etc/apache2 Sep 4, 2019 at 12:44

10 Answers 10

210

apache2 is a metapackage that just selects other packages. If you installed apache by installing that package, you just need to run this to clean up the automatically selected packages:

sudo apt autoremove

If that doesn't work, you might have installed one of the dependents manually. You can target all the apache2- packages from space and nuke the lot:

sudo apt remove apache2*

For future reference, to find out which package a binary is from, you can run this:

dpkg -S `which apache2`

I'd expect that to come back with apache2.2-bin (at the time of writing).

12
  • 14
    also, use --purge if you want the configuration files to be deleted as well: apt-get --purge remove apache2
    – xyious
    Aug 17, 2012 at 10:03
  • 2
    The last command outputs apache2-mpm-prefork: /usr/sbin/apache2 Aug 17, 2012 at 10:03
  • 1
    @Severus fair enough -- I was just guessing but that makes sense. Yeah I'd just use the wildcard but keen an eye on what it's going to delete. apache2-common is used by some tools that aren't the apache2 httpd so you might need to reinstall some thing after.
    – Oli
    Aug 17, 2012 at 10:06
  • @Oli Removing things with a regex 'apache2*' is dangerous, loads of things end up getting removed
    – jhbsk
    Dec 8, 2013 at 7:57
  • 2
    @jasdeepkhalsa It's not "dangerous". apt-get (unlike apt-cache) limits its searches to names-only so it's not that far-reaching. Everything it captures is Apache or Apache dependent. Check it yourself with apt-get -s remove apache2*
    – Oli
    Dec 9, 2013 at 8:53
192

Follow these steps to remove the apache2 service using Terminal:

  1. First stop the apache2 service if it is running with: sudo service apache2 stop
  2. Now remove and cleanup all the apache2 packages with:

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    //or 
    sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
    
  3. Finally, run sudo apt-get autoremove just in case any other cleanup in needed

You can do the following two tests to confirm apache has been removed:

  1. which apache2 - should return a blank line
  2. sudo service apache2 start - should return apache2: unrecognized service
4
  • 12
    sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
    – john-jones
    Nov 7, 2017 at 13:49
  • 1
    works perfect for me
    – Nechtan
    Sep 7, 2019 at 18:03
  • 1
    When I run which apache2 it reports /usr/sbin/apache2. Should that someone be deleted before reinstalling?
    – DonP
    Jan 11, 2020 at 20:18
  • purging apache2-bin should remove /usr/sbin/apache2 Dec 13, 2020 at 21:04
86

A very simple and straightforward way that worked for me is as follows:

  1. Stop apache2.

    sudo service apache2 stop
    
  2. Uninstall Apache2 and its dependent packages.

    sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
    
  3. Use autoremove option to get rid of other dependencies.

    sudo apt-get autoremove
    
  4. Check whether there are any configuration files that have not been removed.

    whereis apache2
    
  5. If you get a response as follows apache2: /etc/apache2 remove the directory and existing configuration files.

    sudo rm -rf /etc/apache2  
    

Source: How to uninstall and remove Apache2 on Ubuntu or Debian by Dan Nanni

1
  • 3
    For me it was: sudo apt-get purge apache2 apache2-utils apache2-bin apache2.2-common
    – john-jones
    Nov 7, 2017 at 13:48
8

Remove apache2 from the Ubuntu

enter image description here

To remove totally from your localhost

1st check the current status using

service apache2 status

if it's active (running) write next

sudo apt remove apache2*

Say yes using y.

8

For a Debian based OS, like Ubuntu, use:

sudo apt remove --purge apache2
sudo apt autoremove -y
1
  • or you can just use this sudo apt remove apache2 Mar 1 at 7:33
5

First check if you are using right package name, IMO correct package name is : apache2.x-common

If you want to completely remove the package including config files then try:

    dpkg --purge apache2.2-common
4

Take time to check if you are using the different package apache2.2-bin for Ubuntu 16.04 the latest is apache2.4-bin

sudo apt-get purge apache2 apache2-utils apache2.4-bin apache2.4-common

3

I tried the other answers here but this is the most complete solution I have found which worked for me:

$ sudo service apache2 stop
$ sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
$ sudo apt-get autoremove

The output of the below command will provide you with information the installed package software, version, architecture and short description about the package. grep command is used to find the apache package

$ sudo dpkg --get-selections | grep apache | cut -f 1
$ sudo apt-get remove --purge <package name from the previous command output>
$ sudo whereis apache
$ sudo rm -rf <directory/file path from the previous command output>

see http://www.xavierdilipkumar.com/post/how-to-uninstall-php-apache-and-mysql-on-ubuntu

1

Use this to delete installation and its dependencies. It will also reload the firewall

sudo dpkg --purge apache2
0

These commands will completely remove Apache2, all its configs, logs and www files.

Warning: sudo rm -rf /var/www/html will delete all files in your /var/www/html directory, make sure you don't have anything important there!!!

sudo service apache2 stop
sudo apt purge apache2
sudo apt purge apache2-utils
sudo apt autoremove
sudo rm -rf /etc/apache2
sudo rm -rf /var/lib/apache2
sudo rm -rf /var/log/apache2
sudo rm -rf /var/www/html
2
  • 1
    You should not add the last command. The question is how to remove apache2, not the files. Someone might copy and paste all the commands without reading your warning (I was going to do the same). That will be a big disaster. So please remove the last command. Jan 6 at 19:49
  • This is why the warning is there, and now you comment.
    – sotirov
    Jan 6 at 22:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .