Introduction
Apache is part of the popular LAMP (Linux, Apache, MySQL, PHP) software stack. The Apache server is the basis of many web hosting stacks, including business websites, SaaS products, and multiple AI-powered applications.
Apache's popularity comes from its seamless integration and reliable high performance under increasing workloads. Knowing how to start, stop, and restart Apache in Ubuntu and similar distributions is crucial for efficient server management.
In this tutorial, you will learn how to start, stop, and restart Apache in Ubuntu.
Prerequisites
- A machine running Ubuntu.
- A user account with root privileges.
- An Apache installation.
How to Start Apache on Ubuntu
There are several ways to start the Apache web server on Ubuntu, depending on whether you have a systemd-based system or a SysVinit-based system.
A systemd-based system uses systemd as its init system, which provides service management capabilities and parallelization. On the other hand, a SysVinit-based system relies on the traditional System V init system, which is simpler and less feature-rich.
Follow the steps below to start Apache:
1. Open the terminal and run one of the following commands, depending on your system type:
Systemd-based systems:
sudo systemctl start apache2
This command is the modern and preferred way to manage services on systemd-based Linux distributions. systemctl
communicates directly with systemd to start, stop, enable, or disable services.
SysVinit-based systems:
sudo /etc/init.d/apache2 start
The command above directly executes the Apache2 init script, which is used in traditional SysVinit systems. While this method is still supported in many Linux distributions for backward compatibility, it is considered outdated compared to systemctl
.
All system types:
sudo service apache2 start
The above command is a system-independent way to start the Apache2 service that works across various Linux distributions and init systems. The command checks whether the system uses systemd or SysVinit and then calls the appropriate command (systemctl
for systemd-based systems and the init script for SysVinit-based systems).
2. Verify that the service has successfully started by checking its status. Run one of the following commands:
Systemd-based systems:
sudo systemctl status apache2
SysVinit-based systems:
sudo /etc/init.d/apache2 status
All system types:
sudo service apache2 status
The output should provide the service status details and state that the service is active:
Note: After installing Apache and starting the service, see how to set up Apache virtual hosts.
3. To make sure Apache starts on system startup, run one of the commands below:
Systemd-based systems:
sudo systemctl enable apache2
SysVinit-based systems:
sudo /etc/init.d/apache2 enable
All system types:
sudo service apache2 enable
Note: Learn how to check Apache version via CLI, WHM or cPanel.
How to Restart Apache on Ubuntu
Restarting the Apache service initiates a force restart. A force restart (or hard restart) abruptly stops and then starts Apache, which can interrupt active connections. It is a more aggressive action and may cause some users to experience temporary disruptions in service.
To restart the Apache server, open the terminal and run one of the commands below:
Systemd-based systems:
sudo systemctl restart apache2
SysVinit-based systems:
sudo /etc/init.d/apache2 restart
All system types:
sudo service apache2 restart
Note: The restart command can take a few moments to complete, depending on the complexity of your server configuration. If you are running a large or complex server configuration, this can cause disruptions for users who rely on the server.
How to Stop Apache on Ubuntu
Stopping the Apache service halts the Apache server, terminates any active connections, and shuts down all associated processes. This action suspends the serving of web pages or applications hosted by Apache until the service is started again.
To stop Apache on Ubuntu, open the terminal and run one of the following commands:
Systemd-based systems:
sudo systemctl stop apache2
SysVinit-based systems:
sudo /etc/init.d/apache2 stop
All system types:
sudo service apache2 stop
To confirm that Apache has been stopped, check the service's status:
If the service is no longer running, the output indicates an inactive (dead) status message, as in the screenshot above.
How to Reload Apache on Ubuntu
Reloading Apache means gracefully restarting it, as opposed to a force (hard) restart.
A graceful restart means that Apache will attempt to restart without interrupting any active connections. It finishes serving any current requests, reloads the configuration, and restarts any necessary processes. Reloading is a smoother process that minimizes downtime.
To reload the Apache server, open the terminal and run one of the commands below:
Systemd-based systems:
sudo systemctl reload apache2
SysVinit-based systems:
sudo /etc/init.d/apache2 reload
All system types:
sudo service apache2 reload
After reloading, check the service status to ensure it is running.
Conclusion
This tutorial showed how to start, stop, and restart the Apache service on Ubuntu. Knowing how to do these basic tasks is essential when managing a server, and the commands listed in this guide make the task fast and easy.
Next, see how to view, configure, and use Apache log files or learn the difference between Apache and Nginx.