.. _project-web-site: Project Web Site ================ .. warning:: Enabling this feature has major security consequences, as such the feature is disabled by default. It is **strongly** advised to let it disabled. Visiting a Web Site ------------------- When a new project is created on Tuleap a project specific Web Site is created as well. You can access a project Web site in 2 different ways: - By forming the following URL in your favorite Web browser (where projectname is your project short name): :: http://projectname.tuleap.example.com Or, if your server is setup in secure mode: :: https://projectname.tuleap.example.com - Click on the "Home Page" link in the Project Main menu at the top of the Project Dashboard. If the project team has not yet created its own Web pages, you'll see the default project home page informing you that the site will come soon as well as a link back to the Tuleap site. Visiting a Web Site under HTTPS ------------------------------- If you want to access to a project web site using HTTPS, you will need to edit the Apache TLS configuration in ``/etc/httpd/conf/ssl.conf``. Add the following informations: - Add ``NameVirtualHost *:443`` before any virtualhost declaration - Take example to this virtualhost to add at end of your file: :: ServerName tuleap.example.com ServerAlias *.tuleap.example.com VirtualDocumentRoot /home/groups/%1/htdocs # We won't allow cgi scripts to run on project web sites. (see installation guide) DirectoryIndex index.html index.php # PHP variables php_admin_value open_basedir "/home/groups/" php_admin_value include_path "." php_admin_flag safe_mode on php_admin_flag safe_mode_gid on Options Indexes FollowSymlinks AllowOverride All order allow,deny allow from all LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost CustomLog logs/vhosts-access_log vhost SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLHonorCipherOrder on SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key Note that you will need to use a x509 wildcard certificate or a specific certificate for each website. Web Site Creation ----------------- Directory Structure and Location ```````````````````````````````` Each project has its own specific location where to store their collection of HTML pages along with the images or related data files and document that comes with it. The location of the directory where to store all these documents is: :: /home/groups/projectname If you use your Shell Account (see :ref:`shell-account`) to log into the Tuleap server and place yourself in this directory with the Unix command "cd /home/groups/projectname" you'll see 3 subdirectories: - **htdocs**: this is where you must place all your HTML pages including those with embedded PHP or SSI instructions (see below for more details). All the images, icons or documents used or referenced in your Web pages must also be stored in this directory (or in any sub-directory under htdocs). In the Apache jargon the directory ``/home/groups/projectname/htdocs`` is the Document Root of your Web Site. **Tip** Apache is the HTTP server developed by the Apache Consortium. It is available under an Open Source license and is by far the most popular Web server in the world with more than 60% of the market share. For more information on Apache see `http://httpd.apache.org `__ Apache expects your home page to have one of the following name: - ``index.html, index.htm`` for pure HTML pages - ``index.shtml`` for pages using Apache SSI extensions - ``index.php`` if you use embedded PHP scripts If your own home page is called index.php then rename the default index.php file created by Tuleap into something else by using the following commands from your Shell Account: ``cd /home/groups/projectname/htdocs mv index.php index_default.php`` - **cgi-bin**: this directory is where you must place all your CGI scripts. CGI scripts can be written in a number of languages like Perl, Python, Shell or even C. - **log**: this is a reserved directory. Do not put any of your files in it. Web Site Scripting with PHP ``````````````````````````` Project members can build sophisticated project Web sites by using the `PHP language `__. PHP, is becoming extremely popular as a server-side scripting language for the Web. PHP is easy to learn, optimized for the Web and interact nicely with SQL databases. If you decide to embed PHP scripts in your Project Web pages, first make sure to use the ".php" extensions for all the files with PHP code in it. For pure HTML pages use the "htm" or "html" extensions as usual. For `security reasons `__, your php scripts will only be allowed to access files located in the document root of your project (e.g. ``/home/groups/projectname/htdocs``). Web Site Publishing ``````````````````` You can use various methods to publish your Web pages on your Tuleap Web site: - Remote editing with HTML capable editors like Netscape or Mozilla Composer, Microsoft FrontPage or Emacs with transparent ftp access - Local editing on your machine and transfer of the files either via ftp or, even better, via scp - Small changes to web pages can be made from the shell account on Tuleap, using emacs or vi, but substantial editing is discouraged. Local Editing and Remote Transfer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For those of you who use an HTML editing tool that has no built-in export facility you can transfer your HTML files by other means. - **FTP**: this is the simplest method for transferring your Web pages to the Tuleap remote location. Use ftp to connect to ``projectname.tuleap.example.com`` and use your Tuleap username and password to login. Once logged in issue the following command: :: cd /home/groups/projectname/htdocs and finally use the put (or mput) command to transfer the modified files. Check with your Web browser that everything is ok. Mind your Web Browser page cache and force page reloading to be sure you see the latest version of your pages! - **SCP**: :: scp -r * login@SYS_SHELL_HOST:/home/groups/projectname/htdocs/ where login is your Tuleap login. The -r option stands for recursive copy and will copy all the files in the directory as well as all others in subdirectory while preserving your directory structure.