Did you restart the server afterwards?
sudo service apache2 restart
Check this out too on Ubuntu forums. It looks like a similar problem to yours and is easily fixed.
Linux in general, so Ubuntu too, has directories where you can put scripts that start/stop/restart/reload a service (or whatever action this service can provide): /etc/init.d/
(=old but still used very often).
/etc/init.d is where all the traditional sysvinit scripts and the backward compatible scripts for upstart live. The backward compatible scripts basically run service myservice start
instead of doing anything themselves. Some just show a notice to use the service
command.
/etc/init.d$ ls
apache2 glibc.sh mysql screen-cleanup
apparmor halt mysql-ndb sendsigs
...
As an example, the start of the apache2
script (all the others will be similar in style):
$ more apache2
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: apache2
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop apache2 web server
### END INIT INFO
#
# apache2 This init.d script is used to start apache2.
# It basically just calls apache2ctl.
ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin"
...
There is also /etc/init
(=upstart):
/etc/init is where the upstart init configs live. While they are not scripts themselves, they essentially execute whatever is required to replace sysvinit scripts.
cups - CUPS Printing spooler and server
description "CUPS printing spooler/server"
author "Michael Sweet <msweet@apple.com>"
start on (filesystem
and (started dbus or runlevel [2345]))
stop on runlevel [016]
respawn
respawn limit 3 12
So basically inside these scripts/configuration it is stated what other service needs to be started before this service can be started and what service needs to have stopped before this service can be stopped.
Does Apache start as we start Ubuntu (i.e., it always runs in the background) or does it start when we open localhost?
When you install a service like apache (or mysql (databaseserver) or cups (print server)) it generally also includes a startup script AND this is also activated (since the assumption is: if installed you want it running).
So the answer is: it is always running and not started when you access an URL (ie. http://localhost).
It is by the way also possible to stop a service, remove the auto-start from /etc/init.d/
and manually start that service.
There are 2 session managers that take care of this: old Ubuntu (ie. <15.10) uses upstart
. New Ubuntu (>15.10) uses systemd
.
- Upstart would be
service start apache2
or service stop apache2
.
- Systemd would be
systemctl start apache2
or systemctl start apache2
but also supports the method Upstart uses on Debian/Ubuntu systems.
Best Answer
To enable it the rewrite module, run "apache2 enable module rewrite":
You need to restart the webserver to apply the changes:
If you plan on using mod_rewrite in
.htaccess
files, you also need to enable the use of.htaccess
files by changingAllowOverride None
toAllowOverride FileInfo
. For the default website, edit/etc/apache2/sites-available/default
:After such a change, you need to restart Apache again.
a2enmod