Installation of ConfTool on a Shared Web Server

If you do not have root rights on your server, the following steps are required to install ConfTool on a shared server.

Tip: The easiest and recommended way to install ConfTool is our installer – see Installation using the Installer. Only use the manual procedure described below if you specifically need it for your shared-hosting setup.

Please note: On shared servers you might experience problems sending e-mails or uploading (large) files. Your provider may also have restricted some PHP options. In such a case, please contact your provider.

The following description refers to the webhoster Strato. Some points may differ for your webhoster, as every provider has different technical specifications.

  1. Ask for a ConfTool license at requests@conftool.net, then download the installation file and unpack it (e.g. using 7-Zip) into a folder with a distinct name. The installation pack contains seven folders: classes, etc, htdocs, install, lib, pages, uploads.
  2. Log in to your webhoster's control panel and create a MySQL database for your ConfTool installation. Make a note of the database name, the database user name and the password you chose. This data will be needed later for the main configuration file etc/conftool.conf.php (see step 10). If your web host does not offer a MySQL web interface, see Hint A.
  3. Go to the web backend of your hoster (for instance phpMyAdmin) and select the newly created database. Copy and paste the contents of the files install/initdb.sql (these commands create the required tables) and install/defaultdata.sql (these commands fill the tables with default data) into the SQL field of the database.
  4. Connect to your webspace using an SFTP client and create two directories:
    • One directory must be publicly accessible on your web server – we will call it the "public" directory. You can name it, for instance, conftool.
    • The other directory must not be accessible via web browser – we call it the "hidden" directory. This might be e.g. the home directory that your SFTP access offers. If your SFTP home directory is accessible, create a second directory, e.g. conftool_hidden, and protect it with an .htaccess file containing the following single line:

      Require all denied

      If access via the web browser is still possible, create a directory with a random, impossible-to-guess name instead (e.g. ct34p58972p93845) and use that as your "hidden" directory.

  5. Copy the contents of the folder conftool/htdocs to your "public" folder, keeping the folder structure intact. The files index.php, imprint.php etc. should now be directly accessible with your web browser. Calling them will still show an error message, as the installation is not yet complete.
  6. In your "public" folder, rename the file phpinfo.ph_ to phpinfo.php and the file info.ph_ to info.php. Using your web browser, access the phpinfo.php file. The URL should look similar to:

    www.mydomain.com/conftool/phpinfo.php

    This page displays an overview of the settings of the installed PHP version. Look for the parameter DOCUMENT_ROOT (press Ctrl + F to search the page). The value should be something like:

    /home/strato/http/premium/1234567/htdocs

    If the parameter DOCUMENT_ROOT is missing, see Hint B. Based on the example above, the paths of the "public" and the "hidden" directory are:

    /home/strato/http/premium/1234567/htdocs/conftool/
    /home/strato/http/premium/1234567/htdocs/conftool_hidden/

    You will need this information later.

  7. Copy the folders etc, lib, classes, pages and uploads to your "hidden" folder using SFTP. Keep the folder structure intact.
  8. The folder conftool_hidden/uploads needs full write permissions so that the web server can store uploaded files there. Use your SFTP client to make this change (e.g. enter chmod 777 uploads or right-click the folder, select "Folder Properties…" and enable write access for everyone – the method depends on your SFTP client). See Hint C.
  9. Open the file settings.php inside your "public" folder and add the following:

    <?php 
    ini_set('include_path','/home/strato/http/premium/1234567/htdocs/conftool_hidden/etc'); 
    ?>

    See Hint D.

  10. Now edit the main configuration file etc/conftool.conf.php of your ConfTool installation:

    • The "prefix" directory is the hidden directory of your installation, e.g.:

      $ctconf['paths/prefix'] = '/home/strato/http/premium/1234567/htdocs/conftool_hidden';

    • Usually the relative directories (e.g. $ctconf['paths/etc'] = 'etc/';) stay unchanged.
    • Enter the hostname of your database server (e.g. rdbms.strato.de).
    • Set the name of the database, the MySQL user and the password (from step 2).
    • Finally, set up the parameters of the SMTP server for sending e-mails. Usually the standard parameters will do (localhost); sometimes you have to enter the login parameters of an external SMTP server.

    All further parameters are documented within that file; more detailed information can be found in the Detailed Installation Instructions.

  11. Now proceed with the configuration. See:
  12. A convenient way to check your configuration is to call:

    www.mydomain.com/conftool/info.php

    This page checks all relevant settings and gives you many hints. You should resolve all error messages and, if possible, the warning messages as well.

  13. Now you can call your ConfTool installation at:

    www.mydomain.com/conftool/

    If the login page appears, your setup works. Now delete the files phpinfo.php and info.php for security reasons. You can log into the installation using the default user name admin and password admin. Remember to change the admin password after the first login.

 

Hints

Hint A (re step 2)

If your hosting provider does not supply a MySQL web interface, we recommend installing phpMyAdmin on the server. This program is useful, for instance, to create the database, export data and make backups. More information is available at phpmyadmin.net. Your phpMyAdmin directory must be protected by username and password, or installed in a directory that is impossible to guess.

Hint B (re step 6)

If the parameter DOCUMENT_ROOT is missing, look for ORIG_PATH_TRANSLATED, where you find the name of the current script on the server. It should look like C:\web\example.org\htdocs\conftool\info.php. This means your root directory (DOCUMENT_ROOT) is at C:\web\example.org\htdocs\.

Hint C (re step 8)

Some providers require you to go to the control panel of your web server and use the file manager to set the permissions. If your provider works with Windows servers, you might have to contact your server administrator to carry out this step for you.

Hint D (re step 9)

The method shown in step 9 (ini_set() in settings.php) works regardless of how PHP is run. As an alternative, on most current shared hosts – where PHP runs via PHP-FPM or FastCGI – you can set the include path with a .user.ini file in your "public" ConfTool folder:

include_path = "/home/strato/http/premium/1234567/htdocs/conftool_hidden/etc"

If your host still runs PHP as an Apache module (mod_php), you can instead use an .htaccess file:

DirectoryIndex index.php 
php_value include_path "/home/strato/http/premium/1234567/htdocs/conftool_hidden/etc"

Note that php_value only works with mod_php; on PHP-FPM/FastCGI it causes a server error, so use a .user.ini file there. Afterwards, call info.php in your browser to check whether the settings work.

If none of these work, your provider may offer a web interface for setting PHP parameters. As a last resort, ask your provider how to set the PHP parameter include_path, or ask them to set it for you.

 

FAQ: Some common problems

  1. The file .htaccess is not parsed or causes error messages? It only works on Apache, and its use may be prohibited by the server configuration. → Use the file settings.php in your "public" folder or the PHP control panel of your provider instead.
  2. The contents of the "public" directory are displayed instead of the login page? The default file for the folder does not include index.php. You can add it via DirectoryIndex index.php in your .htaccess file. If that is not possible, link directly to index.php from your conference home page.
  3. Problems registering new users (e.g. very long delays or no e-mail is accepted)? Maybe the DNS lookup used to verify e-mail domain names does not work. → Disable this option in conftool.conf.php: $ctconf['mail/checkdns'] = false; // Default is true.
  4. Uploading files does not work? The uploads folder is probably not writable. Use your SFTP client to update the access rights (see step 8).
  5. Sending e-mails from ConfTool does not work? Check whether there are problems with the SMTP server settings or the firewall of your server. Check the mail settings in conftool.conf.php and/or try another SMTP server. Alternatively, you can disable phpmailer and use the built-in PHP mail functions: $ctconf['mail/phpmailer'] = false; // Default is true
  6. When looking for errors, please also consider the error log of your web server.

 

Please check the Technical FAQ and Security Hints as well