Starting Apache Web Server at every Reboot (for Ubuntu / Debian Linux)
If you compiled and installed Apache on a Debian/Ubuntu Linux machine and want the Apache service run every time you reboot your machine this short tutorial is for you. I have tried to make it very simple so I am pretty sure you'll be able to follow all steps even if you don't know Unix/Linux shell scripting.
Before we proceed please read the disclaimer below.
DISCLAIMER: I have made every attempt to present accurate information, but I cannot guarantee that inaccuracies will not occur. I (the author) will not be held responsible for any claim, loss, damage or inconvenience caused as a result of any information found on this website (blog).
In order to run Apache at boot time you have to write a very simple start up script. Follow the steps below. Please note that you ave to run the commands as root for both Ubuntu and Debian.
- In Ubuntu, do the following (you'll probably be prompted for password).
In Debian do the following (as root).
nano /etc/init.d/apache2
The above command will open up a text editor with an empty page (assuming that /etc/init.d/apache2 did not previously exist or was empty).
- Now, enter the code below in your text editor. Lines starting with a # symbol are comments (except the first line).
case "$1" in
start)
echo "Starting Apache ..."
# Change the location to your specific location
/usr/local/apache2/bin/apachectl start
;;
stop)
echo "Stopping Apache ..."
# Change the location to your specific location
/usr/local/apache2/bin/apachectl stop
;;
graceful)
echo "Restarting Apache gracefully..."
# Change the location to your specific location
/usr/local/apache2/bin/apachectl graceful
;;
restart)
echo "Restarting Apache ..."
# Change the location to your specific location
/usr/local/apache2/bin/apachectl restart
;;
*)
echo "Usage: '$0' {start|stop|restart|graceful}" >&2
exit 64
;;
esac
exit 0
- Now, press “Ctrl– o” to save the file and “Ctrl – x” to exit from the editor.
- You have to change the file permissions by executing the command below:
Debian: chmod u+x /etc/init.d/apache2
- To start Apache, run command below:
Debian: /etc/init.d/apache2 start
To stop Apache, run command below:
Ubuntu: sudo /etc/init.d/apache2 stop
Debian: /etc/init.d/apache2 stop
To restart Apache, run command below:
Ubuntu: sudo /etc/init.d/apache2 restart
Debian: /etc/init.d/apache2 restart
To restart Apache gracefully, run command below:
Ubuntu: sudo /etc/init.d/apache2 graceful
Debian: /etc/init.d/apache2 graceful
- In order to add the script to the default runlevel you do the following.
Debian: update-rc.d apache2 defaults
- In case you want to remove it from the run level you do the following.
Debian: update-rc.d –f apache2 remove
That’s it you’re done. Now, Apache will start automatically at boot time.
Labels: apache, Debian, linux, reboot, script, shell script, startup script, ubuntu, unix
7 Comments:
Doesn't the dafault Apache install on Ubuntu already have an init script (quite a detailed one at that) and start at boot automatically?
Mathew
I wrote this tutorial for ppl who've compiled and installed Apache on Ubuntu. It is not intended for ppl who use Ubuntu's default package manager to install Apache.
First line of my tutorial,
"If you compiled and installed Apache on a Debian/Ubuntu Linux machine and want the Apache service run every time you reboot your machine this short tutorial is for you. "
just added this to my new deployment - well written and works like a champ. I used emacs however ;-) (any text editor will do - don't have to use nano).
Hi
Just wanted to say thanks, because your how-to helped me a lot. I have installed xampp and by default it does not make the autostart of apache at booting up.
With your info it worked from the first time!
Erik
excellent!!!
I used this to start apache-tomcat-7.0.20
only line i had to add at top
export JAVA_HOME=/opt/jdk7/...
questions: how do i start apache as non-root user?
assuming user already exists on the system.
doesn't work for me.. i do see that the apche2 files wasn't there already and now its there but the command to execute permission doesn't seem o work for me.
Also, my computer has two users (one is the admin - thats me and the other one is a standard user) how is it possible to set this up so that when the other guy turns the system on, he doesn't need me to start apache and it works for all users on this system.
I am very new to this so don't know the ways out.
Many thanks in advance for your help
Post a Comment
Subscribe to Post Comments [Atom]
<< Home