CPET 499/ITC 250 Web Systems

Web Server Configuration and Trouble Shooting

 

 

References

·         Apache HTTP Server Project, http://httpd.apache.org/

o   Apache httpd 2.4.10 Released, 2014-07-21

·         XAMPP Server, https://www.apachefriends.org/index.html

·         Wamp Server, http://www.wampserver.com/en/

·         Apache HTTP Server 2.2 Server Administration Vol. I, 2010, by The Apache Software Foundation

·         Apache – The Definitive Guide, 2003, by Ben Laurie & Peter Laurie, published by O’REILLY

·         Apache Cookbook, 2008, by Ken Coar & Rich Bowen, published by O’REILLY

·         IIS, http://www.iis.net/

 

 

Topics on Web Server

·         Configuration

·         Virtual Hosts

·         Authentication

·         Content Description and Modification

·         Indexing

·         Redirection

·         Proxying

·         Logging

·         Security

·         Running a Big Web Site

·         Building Applications

·         Server-Side Includes

·         PHP

·         CGI and Perl

·         mod_perl

·         mod_jserv and Tomcat

·         The Apache API

·         Writing Apache Modules

 

1.       Web Servers

·         Apache

·         Nginx, http://nginx.org/en/

·         Microsoft IIS

·         Google Mongoose, http://code.google.com/p/mongoose/

October 2014 Web Server Survey, http://news.netcraft.com/archives/2014/10/10/october-2014-web-server-survey.html

 

Server Administration Knowledge/Skills

·         Building, Installation, Upgrading

·         Configuration

o   Configuration Files

o   Configuration Sections

·         Starting, Stopping, Restarting

·         Adding common modules

·         Logging

·         Virtual Hosts

·         Aliases, Redirecting, and Rewriting

·         Security

·         Installing SSL

·         Dynamic Content

o   Enabling CGI scripts, PHP, Perl, Python

·         Error Handling

·         Proxies

·         Performance

·         Directory Listings

 

2.       IPv6 References

·         IPV6 Technical Overview, http://en.wikipedia.org/wiki/IPv6

·         IPv4 vs. IPv6

o   IPv4, 32-bit, 4.3 billion (4.3 x 10^9) IPs

o   IPv6, 128-bit, 340 undecillion (3.4 x 10^38) IPs

§  Addressing:

·         8 groups of 4-hex digits separated by colons

·         2001:0db8:85a3:0000:0000:8a2e:0370:7334

·         IPV6, Internet Society, http://www.internetsociety.org/what-we-do/internet-technology-matters/ipv6

·         RFC 2460 Internet Protocol, Version 6 (IPv6) Specification, Dec. 1998, http://tools.ietf.org/html/rfc2460

·         Test Your IPv6 Connectivity, http://test-ipv6.com/

 

 

3.       IIS Web Server

ASP.NET and IIS Configuration, http://msdn.microsoft.com/en-us/library/ms178477(v=vs.100).aspx

Microsoft IIS Configuration Reference, http://www.iis.net/configreference

 

4.       Apache Web Server

Apache Folders/Subdirectories (XAMPP example)

·         apache

o   /bin/

o   /conf/httpd.conf         …… the configuration file

§  Listening port 80 (default)

§  LoadModule

§  ServerName localhost:80

§  DocumentRoot “C:/xampp/htdocs”

§  <Directory “C:/xampp/htdocs”>  … </Directory>

§  <Directory “C:/xampp/cgi-bin”> … </Directory>

o   /conf/exta

o   /conf/original

o   /conf/ssl.crt

o   /conf/ssl.csr

o   /conf/ssl.key

o   /error

o   /icons

o   /include

o   /lib

o   /logs

o   /manual

o   /modules

o   /scripts

·         htdocs

·         cgi-bin

·         php

·         perl

·         phpMyAdmin

 

Apache and TCP/IP Ports

Processes (viewed from Window Task Manager)

·         httpd.exe *32 …. Apache server (PID: 1244)

·         httpd.exe *32 …. Apache server (PID: 9188)

 

NNTP: Port number (Network News Transport Protocol)

SMTP: Port number (Simple Mail Transfer Protocol)

DNS:   Port number  (Domain Name Service)

HTTP: Port number 80

 

Apache SSI (Server Side Includes), http://httpd.apache.org/docs/current/howto/ssi.html

·         SSI are directives that are placed in HTML pages, and evaluated on the server while the pages are being served.

·         Add dynamically generated contents to an existing HTML page

·         Examples

<!--#echo var="DATE_LOCAL" -->

·         Configuring the HTTP server to permit SSI (httpd.conf OR in a .htaccess file)

·         Basic SSI Directives

o   Today’s date

o   Modification date of the file

§  <!--#flastmod file=”index.html” -->

o   Including the results of a CGI program 

§  <!--#include virtual=”/cgi-bin/counter.pl”>

o   Executing commands

§  <pre>

§  <!--#exec cmdls” -->

 

Apache 2.2 Directives, http://httpd.apache.org/docs/2.2/mod/directives.html

·         Block Directives

o   <Directory>  … </Directory>

o   <DirectoryMatch> … <DirectoryMatch>

o   <Files> … </Files>

o   <FilesMatch> … </FilesMatch>

o   <IfDefine> … </IfDefine>

o   <IfModule> … <IfModule>

o   <IfVersion> …. <IfVersion

o   <Limit> … <LimitExcept>

o   <Location> … <Location>

o   <LocationMatch> … <LocationMatch>

o   <VirtualHost> … <VirtualHost>

·         Configuration Directives

<Directory>  .. </Directory>

<Files>

<VirtualHost>, http://httpd.apache.org/docs/2.2/mod/core.html#virtualhost

<VirtualHost host[:port]>

..

<VirtualHost>

 

<Directory “C:/xampp/htdocs”>

Options Indexes FollowsSymLinks Includes ExecCGI

AllowOverride All

Require all granted

</Directory>

 

Window

·         net start apache

·         net stop apache

Apache and Domain Name Servers

·         Multiple sites (Linux)

o   Utility ifconfig => binds IP addresses to physical interfaces

·         Multiple sites: (Windows)

 

Virtual Host and Examples, http://httpd.apache.org/docs/2.2/vhosts/examples.html

·         Running several name-based web sites on a single IP address

o   One IP address

o   Multiple aliases point to this machine in DNS

o   Example: run a web server for www.example.com and www.example.org on this machine

·         Name-based hosts on more than IP address

o   Two IP address (any number of IP)

·         Serving the name content on different IP addresses (such as an internal and external address)

·         Running different sites on different ports

·         IP-based virtual hosting

·         Listen to port 80

·         Two server names: www.example.com; www.example.org

·         Mixed port-based and IP-based virtual hosts

·         Two IP addresses

·         Run hosts on port 80 and 8080

·         Mixed name-based and IP-based vvhosts

·         Using Virtual_host and mod_proxy together

·         Using_default_vhosts

·         Migrating a name-based vhosts to an IP-based vhost

·         Using the ServerPath directive

 

 

Virtual Host Examples, http://httpd.apache.org/docs/2.2/vhosts/examples.html

·         VirtualHost Example, http://httpd.apache.org/docs/2.2/mod/core.html#virtualhost

<VirtualHost 10.1.2.3:80>
ServerAdmin webmaster@host.example.com
DocumentRoot /www/docs/host.example.com
ServerName host.example.com
ErrorLog logs/host.example.com-error_log
TransferLog logs/host.example.com-access_log
</VirtualHost>

·         IPv6 Example

<VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80>
ServerAdmin webmaster@host.example.com
DocumentRoot /www/docs/host.example.com
ServerName host.example.com
ErrorLog logs/host.example.com-error_log
TransferLog logs/host.example.com-access_log
</VirtualHost>

·         Running several name-based web sites on a single IP address

Server configuration:

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example.com

# Other directives here
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example.org

# Other directives here

</VirtualHost>

·         Name-based hosts on more than one IP address.

Two IP addresses: 172.20.30.40; 172.20.30.50

Server configuration:

Listen 80

# This is the "main" server running on 172.20.30.40
ServerName server.domain.com
DocumentRoot /www/mainserver

# This is the other address
NameVirtualHost 172.20.30.50

<VirtualHost 172.20.30.50>
DocumentRoot /www/example1
ServerName www.example.com

# Other directives here ...

</VirtualHost>

<VirtualHost 172.20.30.50>
DocumentRoot /www/example2
ServerName www.example.org

# Other directives here ...

</VirtualHost>

 

 

Apache or XAMPP Startup Problem

See what’s Using Port 80:
1) start => command

2) netstat –ao

π  TCP 0.0.0.0:80 PID 4

3) Task Manager

Kill the process

NT Kernel & System?

4) Administrative Tools

=> Services

 

Opening Up Port 80 for Apache to Use on Windows,

http://www.devside.net/wamp-server/opening-up-port-80-for-apache-to-use-on-windows

π  Administrative Tools => Web Deployment Agent Service (STOP this service)

π