Guide to the SourceForge.net Project Web Hosting Services

This document is the comprehensive guide to the web hosting services provided by the SourceForge.net site. Included within this document are instructions for uploading web content, a description of the various scripting options available, and information on advanced topics about which we frequently receive inquiries.



This document has been designed for use ONLY by SourceForge.net users that are members of a project team (i.e. listed active developers on a project, in the team member list for that project). The information provided here assumes you are a project developer, affiliated with a project and listed on their development team. If you are not a project developer, the information in this document likely does not apply to you.


Table of Contents » | doc feedback | support


^ Service requirements » | doc feedback | support

The project web hosting services offered by SourceForge.net are available to all Open Source software development projects hosted on SourceForge.net. At this time, we do not offer web hosting services to projects which are not hosted on SourceForge.net, nor to any SourceForge.net users, only to projects hosted on SourceForge.net. Each project hosted on SourceForge.net is responsible for their own content.


^ How may I access the web site of a project hosted on SourceForge.net? » | doc feedback | support

All project web sites may be accessed by the UNIX name of that project, i.e. http://projectname.sourceforge.net


^ SourceForge.net logo » | doc feedback | support

We ask that projects using the web hosting services of SourceForge.net include a special SourceForge.net logo on their web pages. This logo serves two purposes. First, it helps to generate additional traffic to the SourceForge.net site, and ultimately back to the projects hosted on SourceForge.net.

Second, when this logo is displayed, it generates a log entry that allows us to track the number of hits to each project hosted on SourceForge.net. This information is compiled and is used in generating the Top Activity listing seen on the SourceForge.net home page. This information is used to help us identify projects which may require additional hosting resources (due to large amounts of activity).

To include the SourceForge.net logo on your project pages, use the HTML code provided in the "SourceForge.net Logo" information on the "Shell/DB/Web" section of the Project Admin page for your project (accessible using the "Project Admin" link in the left navbar while viewing the summary page for your project). You may display this logo in any location on your pages as you see fit; please display this logo only once per page.


^ How do I upload content to my project web site? » | doc feedback | support

Content may be uploaded to your project web site using scp (Secure CoPy), included with most popular SSH suites. If you do not already have a SSH suite loaded on your workstation, please refer to our guide to selecting a SSH client.

Using the scp client on your machine you may upload content to your project web space by using the following path as your destination: username@shell.sourceforge.net:/home/groups/p/pr/projectname/htdocs

Whereby you replace username with the username you use to login to the SourceForge.net web site, and you replace p/pr/projectname with the UNIX name of your project, preceded by the first; and first and second letters of that project name. For instance, if your username is myusername and your project name is foobar, you would use the following as your destination path for SCP: myusername@shell.sourceforge.net:/home/groups/f/fo/foobar/htdocs

SourceForge.net requires the use of the SCP protocol for uploads to your project web site. FTP is not supported for this purpose, since FTP sends password data in the clear over the network, a significant security risk. In addition to SCP, the SFTP protocol is a supported means to upload content; SFTP clients are included in most SSH suites.


^ How can I edit my content directly? » | doc feedback | support

From your SourceForge.net shell account, you may directly manipulate the web content for your project web site. By default, all members of a project team will have write access to the project web content; no additional steps need be taken. The SourceForge.net project shell servers are loaded with several editors, including vi and nano (a pico clone), thus permitting you to directly modify web content.


^ How do I obtain support for my project web site? » | doc feedback | support

The SourceForge.net support team is happy to assist with any issues related to the services we offer, including project web services. To contact the SourceForge.net support team, first login to the SourceForge.net web site, then submit a support request.


^ Disk space limitations » | doc feedback | support

Each project hosted on SourceForge.net is given up to 100 MB of disk space for web content hosting. In the event that your project has requirements beyond this capacity, please contact the support team before exceeding this quota.


^ Project web environment overview » | doc feedback | support

The SourceForge.net project web environment is currently driven by five web servers, all systems with dual 700 MHz Intel Pentium III processors, 512MB of RAM and 18GB of RAID1-protected disk. Project web content is stored on centralized file servers with much larger disk capacity.

The SourceForge.net project web servers all run Linux in conjunction with the Apache web server software. Also provided are the PHP scripting language suite and access to MySQL database services.


^ Answering web traffic for another domain (VHOST services) » | doc feedback | support

At your request, SourceForge.net will configure its servers to answer web traffic for your project's domain name. Details of VHOST services, including the DNS configuration you need to establish for your registered domains, and instructions on requesting VHOST services, may be found here.


^ Project web server statistics » | doc feedback | support

The log data collected from the SourceForge.net project web servers is post-processed; the resulting web site hit data is placed in to the SourceForge.net statistics system. These statistics are updated nightly and may be accessed using the 'View project activity statistics' link on the summary page for each project.


^ Access to project web server logs » | doc feedback | support

Each of the five SourceForge.net project web servers generates approximately 100MB of log data each day, thus resulting in 500MB of log data each day, total. In the past, direct access to this log data was made available from the SourceForge.net project shell servers.

Due to the incredible performance hit caused by access to this data (both proper and excessive), we have had to remove access to this log data until such time as we have determined a more suitable means to provide this information. The SourceForge.net team is currently evaluating this matter further; the site status page will be updated once this matter has been resolved.

Error logs are available on the project shell server (synchronized twice per hour from each of the project web servers) in the /home/groups/e/er/error_logs directory.


^ What will server-side scripting do for me? » | doc feedback | support

SourceForge.net provides a number of server-side scripting options to hosted projects. Server-side scripting languages, such as PHP, perl, and python, give projects the means to greatly extend the capabilities of their web site. Using server-side scripting, one can easily develop a common theme for a project web site, access a project's MySQL database, and integrate existing applications in to the web site.


^ PHP scripting » | doc feedback | support

PHP is a powerful, well-evolved scripting language which is generally easy to learn and understand. The SourceForge.net project web servers support the use of PHP scripts with the .php and .php3 extensions. PHP4 is loaded on the project web servers in conjunction with a number of the more popular PHP modules (such as the MySQL module). Documentation on the PHP4 scripting language may be found at www.php.net.

Projects which intend to make use of PHP's session support must review the instructions we provide regarding storage of PHP session data.

It should also be noted that some PHP features (such as IMAP support and the posix_getpwuid() function) are not provided in our configuration, either due to the mechanisms we use for authentication, or the restrictions we have placed on outbound connectivity from the project web servers.

While the SourceForge.net team has made an attempt to ensure that the most popular PHP modules have been made available for use on the project web servers, it is possible you may have needs which exceed what we provide. In the event that you require the loading of a PHP module other than those we currently provide, first login to the SourceForge.net site, then submit a support request.


^ Server Side Includes (SSI) » | doc feedback | support

The SourceForge.net project web servers are configured to permit Server Side Includes (SSI). Documentation on the basics of SSI may be found here.


^ CGI scripts » | doc feedback | support

The SourceForge.net project web servers support the use of CGI scripts. All CGI scripts for a project must reside within the /home/groups/p/pr/projectname/cgi-bin directory structure. General information about CGI scripting may be found here.

The SourceForge.net project shell servers are not loaded with compiler software (compilers are prohibited from the shell servers). The SourceForge.net Compile Farm may be used to compile C-based and C++-based CGI scripts. Both the perl and python scripting languages are supported for CGI scripting purposes.

The SourceForge.net team has worked to ensure that the most popular perl and python components have been loaded for use on the project web servers. Due to resource constraints, should you require additional components to drive your CGI scripts, we request that you handle maintenance of these components and load them from your project group directory as needed.


^ JavaServer Pages (JSP) » | doc feedback | support

At this time, the SourceForge.net project web servers do not support the use of JavaServer Pages (JSP). Should you wish to use JSP on your project web site, it will be necessary to host them elsewhere.


^ MySQL database access » | doc feedback | support

MySQL database services are provided, upon request, to all projects hosted on SourceForge.net. In order to request a MySQL database and user for your project, please view the document titled, "Guide to MySQL database services".

Once your project MySQL database has been created, you will be able to access it through the use of your choice of PHP scripts, perl (with DBI), or python. A considerable amount of information about MySQL may be found in the documentation section of the MySQL web site.


^ Automatically generating content via cron jobs » | doc feedback | support

Each SourceForge.net user has access to a SSH-accessible shell account on shell.sourceforge.net. From this shell account, each user may establish a cron table containing a set of repetitive tasks they would like performed automatically, at specified intervals. Cron jobs may be used to populate data on project web sites automatically. Instructions for establishing a cron table (crontab) for your user may be viewed from the shell server using these commands: 'man 1 crontab' and 'man 5 crontab'. Please test your tasks interactively before adding them to your crontab.


^ Accessing SourceForge.net project data from your project web site » | doc feedback | support

Using mechanisms available in the SourceForge.net site, it is possible to export data for use on your project web pages. Setup instructions for the data export system may be found here.


^ Apache web server overrides (.htaccess) » | doc feedback | support

One of the benefits of our use of the Apache web server software is that your project may override some of the defaults used in our configuration through the use of an .htaccess file. An overview of this mechanism is provided here and a list of the directives known to Apache are available here. It should be noted that we only support a subset of these directives, specifically those overrides in these categories: AuthConfig, Limit, FileInfo, Options.


^ File and directory permissions » | doc feedback | support

By default, all files created in your group directory structure will be owned by you, and will have group set to match the group owner of that directory structure (i.e. the project group). This will enable all members of your project group to edit the web content for your project.

The SourceForge.net project web servers run with user 'nobody' and group 'nobody'. In order for files to be visible via the web server, directories need to be flagged readable and executable (i.e. 'chmod a+rx directoryname') and files need to be flagged readable (i.e. 'chmod a+r filename'). If you receive a 'permission denied' error from the web server when attempting to view project web content, please check the permissions on the files you are unable to view and the directory holding them.

In order to use PHP's session support within your application, you will need to establish a directory with suitable file permissions, as documented in the instructions we provide regarding storage of PHP session data.


^ SSL » | doc feedback | support

Though the SourceForge.net site makes use of SSL (Secure Socket Layer) for encrypting communications between the web server and the browser, we are unable to offer this service to projects hosted on SourceForge.net at this time. Should your project require SSL for your web site application, chances are high that you should be considering dedicated hosting for that application.


^ Security » | doc feedback | support

Content placed in the web space provided by SourceForge.net to your project may be accessed directly by other users on the SourceForge.net project shell servers, even users who are not members of your project. It is important to keep this in mind when placing content in your project web space. Should you have confidential information for your project, we request that you consider hosting this material elsewhere, for security reasons.

Upon request (submit a support request), the SourceForge.net support team will change the group ownership of specific files to the group used by the project web server. This will help to prevent casual access to these files. (This can be useful for files which contain MySQL database access information and things of the like.) Do keep in mind, though, that no information placed on the SourceForge.net project web servers is completely secure.

Additional documentation regarding the security aspects of SourceForge.net project web services may be found in our document titled, "Security and Risk Management for SourceForge.net Users and Projects".


^ Apache basic authentication » | doc feedback | support

To limit the accessibility of specific sections of your project web site, you may use Apache basic authentication. To configure basic authentication for project web content:

  1. Log in to the SourceForge.net project shell server via SSH (ssh to shell.sourceforge.net)
  2. Use htpasswd to generate a password file (please use MD5 hashes)

    It is important that you DO NOT USE your normal SourceForge.net password in the basic auth file for your project. You should always use separate, secure passwords for each of your accounts, and this is no exception.

    For the first entry:

    Line 001: htpasswd -cm /home/groups/p/pr/projectname/.htpasswd username
    Line 002: chgrp projectname /home/groups/p/pr/projectname/.htpasswd
    Line 003: chmod o-w /home/groups/p/pr/projectname/.htpasswd
    

    For subsequent entries:

    Line 001: htpasswd -m /home/groups/p/pr/projectname/.htpasswd username
    
  3. Create an .htaccess file in the /home/groups/p/pr/projectname/htdocs directory tree, in the directory you wish to secure with basic auth.

    This file should contain:

    Line 001: AuthUserFile /home/groups/p/pr/projectname/.htpasswd
    Line 002: AuthName projectname
    Line 003: AuthType Basic
    Line 004: <Limit GET>
    Line 005: require valid-user
    Line 006: </Limit>
    


^ Search engines » | doc feedback | support

Projects with significant web content may wish to add their pages to popular search engines, such as Google! and AltaVista. Each project is responsible for their own content and may submit their project web site to these search engines, if they so desire.


^ Microsoft FrontPage, WebDAV, and Macromedia DreamWeaver remote administration » | doc feedback | support

At this time, SourceForge.net does not provide support for remote site administration using Microsoft FrontPage, WebDAV, or Macromedia DreamWeaver. Users of tools which support these protocols may typically save their content locally and upload it to their project web space using the procedure here.


^ Troubleshooting » | doc feedback | support

The following is a list of some of the more common symptoms and resolutions the SourceForge.net support team sees on submitted support requests. This information is provided as self-service troubleshooting materials, but is not intended as a comprehensive list of possible issues. In the event that these tips do not help you to resolve the issue you have encountered, please submit a support request.

Permission denied: Permission denied errors may typically be attributed to bad permissions on files or directories. Please see the "File and directory permissions" section of this document.

Error 500: Internal Server Error: Internal server error (error 500) messages usually come up when your project is using an .htaccess file which contains directives we do not permit to be overridden. For a list of the overrides Apache knows about, and the subset we permit, please see the "Apache web server overrides (.htaccess)" section of this document.

Error 404: Not Found: When accessing your web site for the first time, you may receive a 404 error, signifying that you have not yet uploaded project web content for your project.

Errors about DNS entries pointing to the wrong IP address: If your project utilizes VHOST services from SourceForge.net, you will receive an error message about DNS misconfiguration if the DNS configuration does not match the details provided in this document.

My PHP session code is not working correctly: In order to use PHP's session support within your application, you will need to establish a directory with suitable file permissions, as documented in the instructions we provide regarding storage of PHP session data.

The SourceForge.net support team is happy to assist with any issues related to the services we offer, including project web services. To contact the SourceForge.net support team, first login to the SourceForge.net web site, then submit a support request.


Return to the top of this page.

© Copyright 2002-2004 Open Source Development Network. All rights reserved.