COP3832, Assignment 6
  Due 4/18 at the start of class.
Hand in and upload copies of srm.conf, access.conf, page1.shtml, and page2.shtml.
Be sure your user name and port are written on each.
You are to configure your as follows
  - 
    Create three subdirectories of COP3832/data
    
  
 - 
    In the include directory, create two files that can be included as
    HTML in other documents. These should not be complete HTML pages, just fragments
    of HTML code
    
      - 
	header.html - This will contain a header for your web site.
      
 - 
	footer.html - This will include a footer for your web site.
    
 
   - 
    In the hw6 directory, create two files named page1.shtml and
    page2.shtml.
    
      - 
	Create some individual content for each page, and include header.html
	and footer.html using server side include commands.
      
 - 
	Include the date that each file was last modified. Change the format of the
	date for each file using a server side include file.
      
 - 
	Copy the file to the links directory
	cp page1.shtml ../links
	cp page2.shtml ../links
     
   - 
    Copy one of your cgi scripts from the cgi-bin directory into the
    hw6 directory. Also copy it to the links directory.
  
 - 
    Create a link in the hw6 directory to your errors directory,
    replace dlette07 with your user name.
    ln -s /aul/homes/dlette07/COP3832/server/errors/ ownlink
    Create a link in the hw6 directory to my student personal directory
    ln -s /aul/homes/tdowne01/COP3832/personal/ otherlink
   - 
    Change to the links directory and create the same two links again,
    replace delette07 with your user name.
    cd ../links
    ln -s /aul/homes/dlette07/COP3832/server/errors/ ownlink
    ln -s /aul/homes/tdowne01/COP3832/personal/ otherlink
   - 
    Create the following Aliases in srm.conf
    
      - 
	An alias named /ssi to your hw6 directory
      
 - 
	An alias named /simple to your hw6 directory
      
 - 
	An alias named /all to your hw6 directory
      
 - 
	An alias named /cgi to your hw6 directory
      
 - 
	An alias named /none to your hw6 directory
      
 - 
	An alias named /content to your hw6 directory
      
 - 
	An alias named /errors to your COP3832/server/errors directory
    
 
   - 
    In access.conf, use the Location directive to allow the following features
    in certain directories. Make server side includes for .shtml files and cgi
    scripting for .cgi files available for the entire document root, but only
    enable them as described below. Be sure to turn off symbolic links in the
    document root, so that symbolic links only work in the link directory.
    
      - 
	ssi: allow fancy indexing and server side includes
      
 - 
	all: allow fancy indexing and all options
      
 - 
	simple: allow simple indexing
      
 - 
	cgi: allow fancy indexing and execution of CGI scripts
      
 - 
	none: allow no options, not even indexes
      
 - 
	content: allow fancy indexing and content negotiation
      
 - 
	The <Location> directive ignores any directives that effect symbolic
	links (since they are already a type of symbolic link). Once symbolic links
	are on for a physical directory, they cannot be turned off in a
	<Location> directive.
    
 
   - 
    In access.conf, use the Directory directive to do the following for the
    links directory
    
      - 
	allow fancy indexing
      
 - 
	follow symbolic links if the owners match
      
 - 
	change the icon for .shtml files to a different one of your choice from the
	/icons directory (/depot/http/icons/)
      
 - 
	change the icon for .cgi files to a different one of your choice from the
	/icons directory (/depot/http/icons/)
      
 - 
	change the icon for directories to a different one of your choice from the
	/icons directory (/depot/http/icons/)
      
 - 
	change the icon for the parent directory to a different one of your choice
	from the /icons directory (/depot/http/icons/)
    
 
   - 
    In the errors directory, create html files for the following errors. Be creative,
    but the files should load quickly!
    
      - 
	403 Forbidden
      
 - 
	404 Not Found
      
 - 
	500 Internal Server Error
    
 
   - 
    Change the appropriate configuration file so that the above error messages
    are displayed for the appropriate errors.
  
 - 
    Create an index file in your personal directory that can be viewed by other
    web servers. Try it out on my student server:
    mongoose.aul.fiu.edu:65432.
    Do not allow cgi scripting, nor the exec command from server side includes
    in user directories.
  
 - 
    Create an index file in your data directory that will have the following
    
      - 
	A link to a file that will create a 403 error. This is not a link to the
	file in the errors directory, but a link to a file in your data directory
	that will generate a 403 error.
      
 - 
	A link to a file that will create a 404 error. This is not a link to the
	file in the errors directory, but a link to a file in your data directory
	that will generate a 404 error.
      
 - 
	A link to a file that will create a 500 error. This is not a link to the
	file in the errors directory, but a link to a file in your data directory
	that will generate a 500 error.
      
 - 
	A link to /simple
      
 - 
	A link to /ssi
      
 - 
	A link to /cgi
      
 - 
	A link to /all
      
 - 
	A link to /none
      
 - 
	A link to /content
      
 - 
	A link to /links
      
 - 
	A link to the personal page for ~tdowne01
    
 
 
Use the 3832.html to investigate what happens when you try to open each file
in each directory. Notice when ssi commands work, cgi works, links work.
Notice how the icons change in the /links directory. Notice when fancyindexing
works. Have fun.
Check my student server for an example of what the assignment looks like:
mongoose.aul.fiu.edu:65432
Extra Credit: 2 points
Create a script that uses a cookie. 
- Place the script in the hw6 directory. Name it cookie.cgi 
 - The script will ask for a user's name in a text box. Do not make the form sticky. If a cookie is available, then pre-fill the text box with the value from the cookie. If there is no cookie, then the text box should be initialized as empty.
 - When the script is called with a non-blank name,
the script will set a cookie in the response to the browser. 
 - 
The script can be executed from the /cgi and /all directories,
but the cookie should only be accessible from the /all directory.
 - The cookie should expire after one minute.