Apache webserver tutorial

<< Prev
Next >>

Introduction

The Apache web server is the most widely used web server in the world.

It can be installed in Windows, Linux or other platforms.


Installing the Apache web server in Windows.

You can also use the Apache web server installer, but the simplest way to install and configure it automatically is to use the free XAMPP application.
Download the XAMPP application installer, and install it. The installation folder will be named xampp and will look like this:


Xampp

The directory from which the web pages are served (html) is called: htdocs. In this directory, there must be a file named: index.html, which is the home page of any website.
After installation, in the htdocs directory, there is a file: index.html, which confirms that the Apache web server has been installed correctly.


Htdocs

The XAMPP application has a control panel where the servers start and stop:


Controll

We start the Apache web server, open a browser and type: http: // localhost or http://127.0.0.1 (which is the loopback IP address).
Page: index.html will be displayed.


Index

The Apache web server software is typially distributed into the following subdirectories:
- cgi-bin - where some interactive programs that you write will reside. There will be programs written with Perl, Java or other programming language.
- conf - where are your configuration files.
- htdocs - will contain your site, and will have many subdirectories. This directory is known as the Document Root.
- icons - contains the icons that Apahe will use when displaying information or error messages.
- images - will contain the imagge files (jpg or gif), that you will use on your web site.
- logs - will contain your log files: the access_log and error_log.
The Apache configuration files:
- access.conf - is the security configuration file. Contains instructionsbabout which users should be able to access what information.
- httpd.conf - is the server configuration file.
- srm.conf - is the resource configuration file.
- mime types - is a configuration file that relates filename extensions to file type.
Example to a httpd.conf file:


###*********************
###* Web-Developer Server Suite *
###* external link: https://jweb.ro *
###* development@users.jweb.ro *
###* v1.95-httpd22-ssl *
###*********************
ThreadsPerChild 250
MaxRequestsPerChild 0
Listen 80
ServerRoot "/www/Apache22"
DocumentRoot "/THDL/thdl-site"
## was /www/webroot
ServerName localhost:80
ServerAdmin admin@localhost
ErrorLog logs/error.log
LogLevel error
###
# Note that the following LoadModule lines only represent the minimum 'Web-Developer' Suite configuration.
#
# Also note that some of the following LoadModule lines, which are commented out, are still loaded under ...
# confSuite-extra*.conf
# confextra*.conf
# ...configuration files -- for modular reasons.
#
# For example:
# mod_deflate is loaded under confSuite-extramod_deflate_logio.conf and NOT under httpd.conf
# status_module is loaded under confextrahttpd-info.conf and NOT under httpd.conf
#
# Check last part of httpd.conf for the Apache base and 'Web-Developer' *.conf files that are included.
###
#LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
#LoadModule asis_module modules/mod_asis.so
#LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_default_module modules/mod_authn_default.so
#LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule authz_default_module modules/mod_authz_default.so
#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
#LoadModule cgi_module modules/mod_cgi.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule imagemap_module modules/mod_imagemap.so
#LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
#LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule status_module modules/mod_status.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
<IfDefine SSL>
LoadModule ssl_module modules/mod_ssl.so
</IfDefine>
DefaultType text/plain
<IfModule dir_module>
DirectoryIndex index.html index.php index.aspx
</IfModule>
IndexIgnore .htaccess
<FilesMatch "^.ht">
Order allow,deny
Deny from all
</FilesMatch>
Redirect /thdl external link: http://localhost
<Directory />
Options FollowSymLinks
AllowOverride all
Order deny,allow
Allow from all
Satisfy all
</Directory>
## was /www/webroot
<Directory "/THDL/thdl-site">
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
# Apache base configuration
#
# The configuration files in the conf/extra/ directory can be
# included to add extra features or to modify the default configuration of
# the server.
# Server-pool management (MPM specific)
#Include conf/extra/httpd-mpm.conf
# Multi-language error messages
#Include conf/extra/httpd-multilang-errordoc.conf
# Fancy directory listings
Include conf/extra/httpd-autoindex.conf
# Language settings
Include conf/extra/httpd-languages.conf
# User home directories
#Include conf/extra/httpd-userdir.conf
# Real-time info on requests and configuration
Include conf/extra/httpd-info.conf
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
# Local access to the Apache HTTP Server Manual
Include conf/extra/httpd-manual.conf
# Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf
# Various default settings
Include conf/extra/httpd-default.conf
# DeveloperSide.NET Server-Suite Configuration
#
# The configuration files in the conf/Suite-extra/ directory can be
# included to add extra features or to modify the default configuration of
# the server.
#
# The specifics are loaded under components.conf...
Include conf/Suite-extra/components.conf
# Security check -- if no php module is loaded, Apache should return 'permissions denied' on php(4,5) all URL requests
<IfModule !php5_module>
<IfModule !php4_module>
<Location />
<FilesMatch ".php[45]?$">
Order allow,deny
Deny from all
</FilesMatch>
</Location>
</IfModule>
</IfModule>
#For PHP5
LoadFile "C:/www/php5/php5ts.dll"
LoadModule php5_module "C:/www/php5/php5apache2.dll"
<IfModule php5_module>
#PHPIniDir "C:/Windows"
<Location />
AddType text/html .php .phps
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps
</Location>
</IfModule>
<IfModule ssl_module>
Include conf/extra/httpd-ssl.conf
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
## Added for MYsql/PMA based on guide.
<IfModule mod_alias.c>
Alias /phpMyAdmin "C:/www/phpMyAdmin"
</IfModule>
<Directory "C:/www/phpMyAdmin">
Options None
AllowOverride None
order deny,allow
deny from all
allow from 127.0.0.1
</Directory>



Installing the Apache web server in Linux.

First we install a version of Ubuntu that corresponds to the PC we own:


Ubuntu

We open the Terminal and type:


sudo apt update
sudo apt install apache2


After installing the appropriate packages, we open a browser and type:


http://localhost


and the home page (index.html) will open, which confirms that the web server is installed correctly.


Ubuntu

The directory from which the web pages are served is called html. The index.html file is in the path: /var/www/html/index.html.


<< Prev
Next >>

Visit my websites:

https://www.jwebsaints.com
https://www.jwebplants.com