Apache Web Server
Apache is actually "a PATCHy server". It was based on
some existing code and a series of "patch files" made to original NCSA
server. For many people this name brings the same meaning / feeling / spirit of
the Native American Indian tribe of Apache, well-known for their superior
skills in warfare strategy and inexhaustible endurance. Apache is HTTP 1.1
Compliant, open-source web server that is widely used.
Apache
is probably the most popular Linux-based Web server application in use. Once
you have DNS correctly setup and your server has access to the Internet, you'll
need to configure Apache to accept surfers wanting to access your Web site.
Managing
Apache's httpd daemon is easy to do, but the procedure differs between Linux
distributions. Here are some things to keep in mind.
Firstly, different Linux distributions use different daemon management
systems. Each system has its own set of commands to do similar operations. Secondly, the daemon name needs to be
known.
General Configuration
Steps
The configuration file used by Apache is
/etc/httpd/conf/httpd.conf
in Redhat / Fedora distributions and /etc/apache*/httpd.conf
in Debian / Ubuntu distributions. As
for most Linux applications, you must restart Apache before changes to this
configuration file take effect. The file is divided
into three main sections.
1. Global Environment
2. Main configuration
3. Virtual Host Configuration
In
Section 1,
only the directive Listen needs
to be set. This tells the Apache server, on which IP and port to listen for
HTTP requests.
Listen 80
or
Listen 192.168.1.254:80
We can also make it listen on any
port other than 80.
In
Section 2,
set the ServerName and DocumentRoot directives. ServerName would be the
name which will be used generally to access your server, i.e. www.mydomain.com.
Set DocumentRoot directive to the path where the web pages of your main website
reside. Similarly your VirtualHost configurations in Section 3 will have the DocumentRoot
directive set to the directories containing web content relating to
respective sites.
ServerName www.mydomain.com
DocumentRoot /var/www/html
By
default, Apache expects to find all its web page files in the /var/www/html/
directory with a generic DocumentRoot statement at the
beginning of httpd.conf :
<Directory
"/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Try starting your web server now by:
/etc/rc.d/init.d/httpd start
File Permissions and Apache
Apache will display Web page
files as long as they are world readable. You have to make sure you make all
the files and subdirectories in your DocumentRoot have the correct permissions.
It is a good idea to have the
files owned by a non privileged user so that Web developers can update the
files using FTP or SCP without requiring the root password.
To do this:
1.
Create a user with a home directory of /home/www.
2.
Recursively change the file ownership permissions of the /home/www
directory and all its subdirectories.
3.
Change the permissions on the /home/www directory to 755, which
allows all users, including the Apache's httpd daemon, to read the files inside.
useradd
-g users www
chown
-R www:users /home/www
chmod
755 /home/www
Now we test for the new
ownership with the ll command.
ll
/home/www/site1/index.*
Note: Be sure to FTP or SCP new files to your web server as this
new user. This will make all the transferred files automatically have the
correct ownership.
If you browse your Web site
after configuring Apache and get a "403 Forbidden"
permissions-related error on your screen, then your files or directories under
your DocumentRoot
most likely have incorrect permissions.
Now open your favorite web
browser and type in the URL :
http://127.0.0.1
or
http://localhost
or
http://www.mydomain.com
You should be able to see a
Apache web server Test Page. If you can see the Apache test web page that means
you are all set to further configure your server. Now copy your web site
related files in this directory /var/www/html make them Apache readable by
setting appropriate ownership and permissions and re-start the web server. You should be able to
see your website related main web page.
Log
Files
/var/log/httpd/access_log
/var/log/httpd/error_log
/var/log/messages
No comments:
Post a Comment