Home Page FAQ

Overview
CSE runs a dedicated home page web server homes.cs.washington.edu, that supports user CGI and PHP. It's a lab-supported Linux machine running apache httpd version 2.2. (local documentation for httpd is here. This document describes the service.

Who has a home page on the server?

Home pages are created for every CSE student (all programs), faculty member (including post-docs), staff member.

What is the URL (web address) of my home page?

If your username is <user>, your home page URL is at http://homes.cs.washington.edu/~<user>/

I have business cards/publications/coffee mugs/tattoos with my http://www.cs.washington.edu/homes/<user>/ web address printed on them. What will happen when people go to that address?

We have configured "redirects" from the older addresses to the new ones, which means that anybody visiting an old one will end up at the new one. We don't plan to retire those redirects until humanity is forced to abandon the planet it 2513 (you read it here first).

How do I access my home page files?

The webroot of your home page is located in the /cse file tree at the following location:

/cse/web/homes/<user>

In order to access the /cse file tree, you'll need to logon to a CSE managed server.

Undergrads can use the attu cluster, while researchers could use recylce, bicycle, etc if you have no other options available.

There is no direct logon access to the homes webserver itself.

How much home page storage do I get on the service?

We expect you to stay below 2GB.

This is a home page server. Larger files are probably research content that should be hosted on a research server.

Does the service include a database account?

MySQL accounts are available upon request.

Can I run active content on the server?

Yes, you can. The server supports PHP (version 5.3) and CGI scripts, typically written in scripting languages such as perl, python, bash, or ruby.

Files that have a .php extension are treated as PHP scripts. Additionally, files named index.php will be treated as index documents. For example, a file named /cse/web/homes/<user>/index.php will be served as http://homes.cs.washington.edu/<user>/.

PHP runs as the web server user, which is called apache at our site.

Files with a .cgi, .cl, .lsp, .lisp, .pl, .py, or .rb filename extension will be treated as CGI scripts using the suexec mechanism. suexec CGI scripts run as the user that owns them.

Who can see my home page?

There are no default restrictions on access to your home page. You can restrict access by creating a .htaccess file. For example to restrict access to only users browsing from a washington.edu computer, create a .htaccess file with the following contents:

order deny,allow deny from all allow from washington.edu

Why can't I access my Linux home page (/homes/gws/<user>/ or /homes/iws/<user>/) from homes.cs?

Because the CGI scripts you may have on homes.cs are programs that can be run by arbitrary users on the public internet under your user context, it is easy to turn them against the owner. Therefore, homes.cs doesn't get standard file system exports, limiting the scope of a successful exploit to data you have on this server.

I had a home page on www.cs.washington.edu. What happened to that? (legacy concern)

The homes.cs.washington.edu service replaced legacy www.cs.washington.edu home pages. Redirects were configured so that accesses to legacy URLs will be served from the new service. For example, if your old home page URL was http://www.cs.washington.edu/homes/<user>, users that visit that URL find themselves looking at http://homes.cs.washington.edu/~<user>. HTTPS? Also.

Is HTTPS supported?

Yes.

Where are the logs?

See /cse/web/homes/logs/common_log.<date> for access logs and /cse/web/homes/logs/error_log.<date>. Dates are of the form YYYYMMDD.

The access logs are more or less in what Apache calls "combined" format, but with the addition of a trailing field containing the hostname and port number. Usually, that's homes.cs.washington.edu:80 (HTTP) or homes.cs.washington.edu:443 (HTTPS).

Why didn't you answer my question?

Because we didn't hear it asked.