Skip redundant pieces
 

EECS Web Hosting

General Information

The EECS Department provides each of its users with the web space and resources to produce their own web sites and web applications. Within each user's home directory there is a public_html directory. Anything placed within your public_html directory will become available at your web space on the people.eecs.ku.edu web server. For example, if the user someuser placed the HTML file test.html in her public_html directory it would become available at http://people.eecs.ku.edu/~someuser/test.html.

Uploading Content to the People Webserver

Accessing your EECS home directory from EECS workstations
  • Windows workstations: Your EECS home directory is available as either the H drive or the Z drive under My Computer.
  • Linux workstations: Your EECS home directory is located at /home/username (this is the default location of newly opened terminal).
Remotely coping files to your EECS webspace

If you want to copy files from your home computer to your EECS web space you will need to copy the files to one of the department's cycle servers (cycle1.eecs.ku.edu, cycle2.eecs.ku.edu, cycle3.eecs.ku.edu, and cycle4.eecs.ku.edu), all of which also have your EECS home directory available.

  • Windows: Use WinSCP available at http://winscp.net/eng/index.php. Connect to one of the cycle server listed above using your EECS username and password.
  • Linux: From the terminal use the following command (where username is your EECS username and # is the number of the cycle server you wish to connect to [1-4] ):
scp file_to_copy username@cycle#.eecs.ku.edu:public_html/
  • Mac: Use CyberDuck available at http://cyberduck.ch/. Connect to one of the cycle server listed above using your EECS username and password.
Using SSH to access your EECS home directory remotely
  • Windows: To log in to the EECS cycle servers using SSH use Putty or the Windows Secure Shell Client each of which are available at https://www.eecs.ku.edu/downloads
  • Linux: From the terminal use the following command (where username is your EECS username and # is the number of the cycle server you wish to connect to [1-4] ):
ssh username@cycle#.eecs.ku.edu
  • Mac: Same as Linux

Directory Listings and Index Files

By default, directory listing is disabled on people.eecs.ku.edu. This means that if an index file is not present in public_html (or any of its subdirectories) you will be presented with a “403 Forbidden” message.

An index file is necessary and can be used to link to non-index files in your public_html folder. Valid index files include: index.html, index.html.var, index.htm, index.shtml, index.cgi, and index.php.

File Permissions/Ownership

In order for files within a users public_html directory to be served by the web server, the file(s) and/or the parent directory must be readable by other. If you get a Forbidden page when attempting to view non-script generated files (plain HTML files, image files, text files, etc.) the file(s) and/or the parent directory are most likely not readable by other. In this case use the command below to correct it's permissions. If you are getting a Forbidden page while attempting to access a CGI script see CGI Scripting and SuExec section below.

chmod 744 file_name

-or-

chmod -R 744 directory_name

If you are unsure view and modify Linux file permissions and ownership see Linux Permissions and Ownership. For more information on the chmod and chown commands see Common Linux Commands.

CGI Scripting and SuExec

The EECS department utilizes a mechanism called suEXEC as a security wrapper around CGIs running on people.eecs.ku.edu. This is a standard tool distributed with the Apache webserver and can be very effective in limiting the potential damage of a poorly written CGI. SuEXEC tool requires very specific permissions and ownership on both the CGIs and the directory in which the CGIs reside. These requirements are very important and should not be taken lightly.

CGI scripts must have their permissions set to 700 (meaning they must be readable, writable, and executable by the owner). The group ownership of your CGI should not be webgroup. You need to use the primary group of your account which can be found by running the id command on any Linux system. The primary group should be one of the following: staff, faculty, undergrad or grad. Don't assume which group your account is assigned! Check it first. If you believe you have been put into the wrong group then please file a help ticket.

The people webserver supports the following scripting languages:

  • Perl - Perl CGIs must be located under the cgi_bin directory.
  • PHP - PHP scripts can be located anywhere under public_html except under cgi_bin.
  • Python - Python CGIs must be located under the cgi_bin directory.
  • Ruby - Ruby CGIs must be located under the cgi_bin directory.
  • Java - Java servlets are not currently supported by the people.eecs.ku.edu web server. We have investigated the possibility of installing and supporting Java servlets, but found that they require an elevated level of user privileges well beyond what we can give an EECS user. Also, the nature of the technology lends itself to cause the server to be broken for everyone if bad servlet code is written and loaded into the server.

.htaccess Files

Coming Soon…

Frequently Asked Questions (about EECS Web Resources)

"How do I upload content to my EECS webpage?"

The EECS Department provides all of it users with the resources necessary to build they're own web sites and web applications. To upload files to your EECS web space copy your files into the public_html directory within your EECS home directory. Once you have copied files to your public_html directory they will become available on your web space. For example, if the user eecsuser placed a file named test.html into their public_html directory, it would become available at http://people.eecs.ku.edu/~eecsuser/test.html

Accessing your EECS home directory from EECS workstations

  • Windows workstations: Your EECS home directory is available as either the H drive or the Z drive under My Computer.
  • Linux workstations: Your EECS home directory is located at /home/username (this is the default location of newly opened terminal).

Remotely coping files to your EECS webspace
If you want to copy files from your home computer to your EECS web space you will need to copy the files to one of the department's cycle servers (cycle1.eecs.ku.edu, cycle2.eecs.ku.edu, cycle3.eecs.ku.edu, and cycle4.eecs.ku.edu), all of which also have your EECS home directory available.

  • Windows: Use WinSCP available at http://winscp.net/eng/index.php. Connect to one of the cycle server listed above using your EECS username and password.
  • Linux: From the terminal use the following command (where username is your EECS username and # is the number of the cycle server you wish to connect to [1-4] ):
scp file_to_copy username@cycle#.eecs.ku.edu:public_html/
  • Mac: Use CyberDuck available at http://cyberduck.ch/. Connect to one of the cycle server listed above using your EECS username and password.

Using SSH to access your EECS home directory remotely

  • Windows: To log in to the EECS cycle servers using SSH use Putty or the Windows Secure Shell Client each of which are available at https://www.eecs.ku.edu/downloads
  • Linux: From the terminal use the following command (where username is your EECS username and # is the number of the cycle server you wish to connect to [1-4] ):
ssh username@cycle#.eecs.ku.edu
  • Mac: Same as Linux

Note: If you have successfully copied your HTML file(s) to your public_html directory and get a 403 Forbidden error when you attempt to view it the problem is that the file permissions are set incorrectly. To correct this use SSH to log into one of the EECS cycle servers using the directions above, and use the follow command to correct to problematic file's permissions:

chmod 644 public_html/filename


"Is python supported on the people.eecs.ku.edu server?"

Python is supported on the people.eecs.ku.edu server and is one of the languages we recommend you try for writing CGI's. Python is an interpreted language thus allowing us to run it on a broad range of hardware and operating systems in case we need to temporarily move the people.eecs.ku.edu server for repairs.


"Are java servlets supported on the people.eecs.ku.edu server?"

Java servlets are not currently support by the people.eecs.ku.edu web server. We have investigated the possibility of installing and supporting Java servlets, but found that they require an elevated level of user privileges well beyond what we can give an EECS user. Also, the nature of the technology lends itself to cause the server to be broken for everyone if bad servlet code is written and loaded into the server.


"Is perl supported on the people.eecs.ku.edu server?"

Perl is support on the people.eecs.ku.edu and is one of the languages we recommend you try for writing CGI's. Perl is an interpreted language thus allowing us to run it on a broad range of hardware and operating systems in case we need to temporarily move the people.eecs.ku.edu server for repairs. If you find that we don't have a certain Perl module on the system that you think would be good to have installed - please contact the EECS Help Desk to have the module reviewed and potentially installed.


"Is PHP supported on the people.eecs.ku.edu server?"

PHP is available on the people.eecs.ku.edu server. The PHP interperter should also be available on the linux workstations for you to test your code before using it on the people webserver.


"Is java supported on the people.eecs.ku.edu server?"

Java is supported on the people.eecs.ku.edu server. We should point out that even though the creation of Java CGIs is possible, it may not be the best choice of languages due to the high cost of program startup. In other words - you won't find plain Java CGI's in the real world.


"What is the URL I need to use to access my EECS web space?"

The URL to your website on the people web system is of the form:

http://people.eecs.ku.edu/~yourusername/


"Can I access the postgresql server from the people.eecs.ku.edu machine?"

If you are using the postgresl server for a class and need to write a web interface to the system - it is possible to access it from the people.eecs.ku.edu web system. Please review your class notes or the database API for your language for more information on making remote database connections. ”


"What permissions do I need to use to make CGIs work on http://people.eecs.ku.edu?"

The EECS department utilizes a mechanism called suEXEC as a security wrapper around CGIs running on people.eecs.ku.edu.

This is a standard tool distributed with the Apache webserver and can be very effective in limiting the potential damage of a poorly written CGI.

The suEXEC tool requires very specific permissions and ownership on both the CGIs and the directory in which the CGIs reside. These requirements are very important and should not be taken lightly. The documentation for the suEXEC mechanism can be found here:

http://httpd.apache.org/docs/2.2/suexec.html

Please note the group ownership of your CGI should not be webgroup. You need to use the primary group of your account which can be found by running the 'id' command on any Linux system. The primary group should be one of the following: staff, faculty, undergrad or grad. Don't assume which group your account is assigned! Check it first. If you believe you have been put into the wrong group then please file a help ticket.


 
web_hosting.txt · Last modified: 2015/08/24 16:02 by cmock