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 OREILLY
· Apache Cookbook, 2008, by Ken Coar & Rich Bowen, published by OREILLY
· 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 Todays 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 cmd =ls -->
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 whats 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)
π