How do I restart an Apache 2 Web Server under a Debian / Ubuntu / CentOS /
RHEL / Fedora Linux or UNIX-like operating systems? Can you tell me
command to start or stop Apache 2 web server running on Linux?
First, login to your web-server using ssh client, if server is not in your local data center:
ssh root@your-server-com #Linode box
ssh ec2-user@aws-ip-here # AWS
ssh vivek@192.168.2.100 # My home dev server
Once logged in type the following commands as per your Linux or Unix variant.
Debian/Ubuntu Linux Specific Commands to Start/Stop/Restart Apache
You can either use service or /etc/init.d/ command as follows on Debian Linux version 7.x or Ubuntu Linux version Ubuntu 14.10 or older:
Restart Apache 2 web server, enter:
/etc/init.d/apache2 restart
OR
sudo /etc/init.d/apache2 restart
OR
sudo service apache2 restart
To stop Apache 2 web server, enter:
/etc/init.d/apache2 stop
OR
sudo /etc/init.d/apache2 stop
OR
sudo service apache2 stop
To start Apache 2 web server, enter:
/etc/init.d/apache2 start
OR
sudo /etc/init.d/apache2 start
OR
sudo service apache2 start
A note about Debian/Ubuntu Linux systemd users
Use the following systemctl command on Debian Linux version 8.x+ or Ubuntu Linux version Ubuntu 15.04+ or above:
## Start command ##
sudo systemctl start apache2.service
## Stop command ##
sudo systemctl stop apache2.service
## Restart command ##
sudo systemctl restart apache2.service
We can view status using the following command:
sudo systemctl status apache2.service
Outputs:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-02-24 20:39:39 UTC; 5 days ago Docs: https://httpd.apache.org/docs/2.4/ Process: 115 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Process: 15247 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS) Main PID: 128 (apache2) Tasks: 6 (limit: 4672) Memory: 16.4M CGroup: /system.slice/apache2.service ├─ 128 /usr/sbin/apache2 -k start ├─15254 /usr/sbin/apache2 -k start ├─15255 /usr/sbin/apache2 -k start ├─15256 /usr/sbin/apache2 -k start ├─15257 /usr/sbin/apache2 -k start └─15258 /usr/sbin/apache2 -k start Feb 27 00:00:23 ubuntu-db-mgmnt systemd[1]: Reloaded The Apache HTTP Server. Feb 28 00:00:23 ubuntu-db-mgmnt systemd[1]: Reloading The Apache HTTP Server.
CentOS/RHEL (Red Hat) Linux version 4.x/5.x/6.x or older specific commands
Use the service command:
## Start ##
service httpd start
## Stop ##
service httpd stop
## Restart ##
service httpd restart
CentOS/Fedora/RHEL (Red Hat) Linux version 7.x or newer specific commands
Most modern RHEL based distro now using systemd, so you need to use the following systemctl command:
## Start command ##
sudo systemctl start httpd.service
## Stop command ##
sudo systemctl stop httpd.service
## Restart command ##
sudo systemctl restart httpd.service
The above commands works with RHEL, CentOS, RockyLinux, Fedora, and AlmaLinux.
Alpine Linux start / stop / restart Apache 2 using openrc
We need to use the service command as root user:
service apache2 start
service apache2 stop
service apache2 status
service apache2 restart
Session:
* Stopping apache2 ... * Starting apache2
FreeBSD Unix users
FreeBSD user can restart Apache as follows:
/usr/local/etc/rc.d/apache22 restart
service restart apache22
service stop apache22
service start apache22
Latest version of FreeBSD 13 comes with apache24, so commands are:
/usr/local/etc/rc.d/apache24 restart
service restart apache24
service stop apache24
service start apache24
Generic method to start/stop/restart Apache on a Linux/Unix/*BSD machines
First, use the type command or command command to find the apachectl or apachectl2 path:
type -a apachectl
type -a apache2ctl
Outputs from the Ubuntu Linux 20.04 LTS server:
apachectl is /usr/sbin/apachectl apachectl is /sbin/apachectl
Then use the syntax is as follows (must be run as root user):
## stop it ##
apachectl -k stop
## restart it ##
apachectl -k restart
## graceful restart it ##
apachectl -k graceful
## Start it ##
apachectl -f /path/to/your/httpd.conf
apachectl -f /usr/local/apache2/conf/httpd.conf
The apachectl/apache2ctl is Apache HTTP server control interface. Other options are as follows:
Start the Apache daemon
apachectl start
# OR #
apache2ctl start
Stops the Apache daemon
apachectl stop
# OR #
apache2ctl stop
Restarts the Apache daemon by sending it a SIGHUP
apachectl restart
# OR #
apache2ctl restart
Shows a full status report from mod_status
apachectl fullstatus
# OR #
apache2ctl fullstatus
Displays a brief status report
apachectl status
# OR #
apache2ctl status
Gracefully restarts the Apache daemon by sending it a SIGUSR1
apachectl graceful
# OR #
apache2ctl graceful
We can do gracefully stops the Apache httpd daemon too? Try:
apachectl graceful-stop
# OR #
apache2ctl graceful-stop
Run a configuration file syntax test
apachectl configtest
# OR #
apache2ctl configtest
Summing up
You learned how to start, stop or restart the Apache 2 web server using command-line over ssh-based session. Use the man command or help command to read the following man pages:
man service
man systemctl
man httpd
man apachectl