This repository has been archived on 2025-06-21. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
suitedesk/config
2018-06-06 20:36:11 +02:00
..
default New social icons for providers 2018-06-06 20:36:11 +02:00
CHANGELOG.md Added info about cookies 2017-10-05 19:38:44 +02:00
LICENSE.md Removed duplicated licenses and not needed changelog files 2017-08-14 23:19:19 +02:00
README.md New menu for contacts 2017-08-17 20:15:06 +02:00
UPGRADE.md Reviewed installation guide 2017-08-16 20:39:39 +02:00

INSTALLATION GUIDE

Contents of this file:

  • Requirements
  • Installation
  • Drupal administration
  • Customizing your theme(s)
  • Multisite Configuration

REQUIREMENTS

SuiteDesk began long time ago as a Drupal 6 project, and now continues as a standalone opensource product. It requires:

  • A web server (Apache web server with mode_rewrite module and the ability to use local .htaccess files is recommended),
  • PHP 5 (better with version 5.4.45), and
  • MySQL (4.1.1 or greater).

See http://www.php.net and http://www.mysql.com for more information.

INSTALLATION

1. DOWNLOAD SUITEDESK

You can obtain the latest SuiteDesk release from:

https://gitlab.cillero.es/manuelcillero/suitedesk ( = REPOSITORY )

If you select files in .tar.gz or .zip format, they can be extracted using most compression tools. Example, on a typical Unix command line, use:

wget REPOSITORY/archive.tar.gz?ref=version
tar -zxvf archive.tar.gz

This will create a new directory called suitedesk-version/ containing all SuiteDesk files and directories. Move the contents of that directory into your web server's document root or your public HTML directory:

mv suitedesk-version/* suitedesk-version/.htaccess /var/www/html

2. DOWNLOAD AND INSTALL LIBRARIES

Just follow the instructions provided in the README.md file available in the libraries directory to install the required libraries.

3. CREATE THE CONFIGURATION FILE AND GRANT WRITE PERMISSIONS

SuiteDesk comes with a default.settings.php file in the config/default directory. Use this file as a template to create your settings file. To avoid problems when upgrading, SuiteDesk is not packaged with an actual settings file. You must create a file named settings.php. You may do so by making a copy of default.settings.php. For example (from the config directory):

cp config/default/default.settings.php config/default/settings.php

Next, give the web server write privileges to the config/default/settings.php file with the command (from the config directory):

chmod o+w config/default/settings.php

So that the files directory can be created automatically, give the web server write privileges to the config/default directory with the command (from the config directory):

chmod o+w config/default

4. CREATE THE SUITEDESK DATABASE

SuiteDesk requires access to a database in order to be installed. Your database user will need sufficient privileges to run SuiteDesk.

To create a database using PHPMyAdmin or a web-based control panel consult the documentation or ask your webhost service provider.

Take note of the username, password, database name and hostname as you create the database. You will enter these items in the next commands.

This step is only necessary if you don't already have a database setup (e.g. by your host). In the following examples, useradmin is an example MySQL user which has the CREATE and GRANT privileges. Use the appropriate user name for your system.

First, you must create a new database for your site (here, databasename is the name of the new database):

mysqladmin -u useradmin -p create databasename

MySQL will prompt for the useradmin database password and then create the initial database files. Next you must login and set the access database rights:

mysql -u useradmin -p

Again, you will be asked for the useradmin database password. At the MySQL prompt, enter following command:

```sql
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
CREATE TEMPORARY TABLES ON databasename.*
TO 'username'@'localhost' IDENTIFIED BY 'password';

where

- *databasename* is the name of your database,
- *username@localhost* is the username of your MySQL account, and
- *password* is the password required for that username.

Note: Unless your database user has all of the privileges listed above, you will
not be able to run **SuiteDesk**.

If successful, MySQL will reply with:

 Query OK, 0 rows affected

In the configuration file you will fill out the `$db_url` value to configure the
database connection using the format:

 $db_url['default'] = 'mysql://username:password@localhost/databasename';

If your *username*, *password* or *database name* contain characters used to
delineate `$db_url` parts, you can escape them via URI hex encodings:

 : = %3a   / = %2f   @ = %40
 + = %2b   ( = %28   ) = %29
 ? = %3f   = = %3d   & = %26

If you prefix some or all database table names, you can use the `$db_prefix`
setting and each table name will be prepended with its value. Be sure to use
valid database characters only, usually alphanumeric and underscore. If no
prefixes are desired, leave it as an empty string ''.

To have all database names prefixed, set `$db_prefix` as a string:

 $db_prefix = 'main_';

To provide prefixes for specific tables set `$db_prefix` as an array where keys
are the table names and the values are the prefixes. The `default` element holds
the prefix for any tables not specified elsewhere in the array:

 $db_prefix = array(
   'default'   => 'main_',
   'users'     => 'shared_',
   'sessions'  => 'shared_',
   'role'      => 'shared_',
   'authmap'   => 'shared_',
 );

All data stored in database is in UTF-8. MySQL support different algorithms for
comparing, indexing, and sorting characters; a so called "collation". The
default collation of a database normally works for many use-cases, but depending
on the language(s) of the stored data, it may be necessary to use a different
collation in the `$db_collation` setting. Important:

- Only set or change this value before installing **SuiteDesk**, unless you
 know what you are doing.
- All database tables and columns should be in the same collation. Otherwise,
 string comparisons performed for table JOINs will be significantly slower.
- Especially when storing data in German or Russian on MySQL 5.1+, you want
 to use the 'utf8_unicode_ci' collation instead.
- More information at http://drupal.org/node/772678

### 5. POPULATE THE DATABASE

Run the next command to setup the database, create tables, populate them, set
the first users accounts and provide basic web site settings. Remember, you will
be asked for the *username* database password defined in previous step:

 mysql -u username -p databasename < config/populatedb.sql

Also you will need to create a files storage directory in the default location
at config/default/files (the location of the files directory may be changed
after Drupal is installed). In some cases, you may need to create the directory
and modify its permissions manually. Use the following commands (from the
installation directory) to create the files directory and grant the web server
write privileges to it:

 mkdir config/default/files
 chmod o+w config/default/files

The install script will attempt to write-protect the settings.php file and the
config/default directory after saving your configuration. However, you may need
to manually write-protect them using the commands (from the installation
directory):

 chmod a-w config/default/settings.php
 chmod a-w config/default

If you make manual changes to the file later, be sure to protect it again after
making your modifications. Failure to remove write permissions to that file is a
security risk. Although the default location for the settings.php file is at
config/default/settings.php, it may be in another location if you use the
multi-site setup, as explained below.

### 6. REVIEW FILE SYSTEM STORAGE SETTINGS AND FILE PERMISSIONS

The files directory created in previous step is the default file system path
used to store all uploaded files, as well as some temporary files created by
Drupal. After installation, the settings for the file system path may be
modified to store uploaded files in a different location.

It is not necessary to modify this path, but you may wish to change it if:

* your site runs multiple Drupal installations from a single codebase (modify
 the file system path of each installation to a different directory so that
 uploads do not overlap between installations); or,

* your site runs a number of web server front-ends behind a load balancer or
 reverse proxy (modify the file system path on each server to point to a
 shared file repository).

To modify the file system path:

* Ensure that the new location for the path exists or create it if necessary.
 To create a new directory named uploads, for example, use the following
 command from a shell or system prompt (while in the installation directory):

     mkdir uploads

* Ensure that the new location for the path is writable by the web server
 process. To grant write permissions for a directory named uploads, you may
 need to use the following command from a shell or system prompt (while in
 the installation directory):

     chmod o+w uploads

* Access the file system path settings in Drupal by selecting these menu items
 from the Navigation menu:

     Administer > Site configuration > File system

 Enter the path to the new location (e.g.: uploads) at the File System Path
 prompt.

 Changing the file system path after files have been uploaded may cause
 unexpected problems on an existing site. If you modify the file system path
 on an existing site, remember to copy all files from the original location
 to the new location.

Some administrators suggest making the documentation files non-readable so that
the exact version of **SuiteDesk** you are running is slightly more difficult to
determine. If you wish to implement this optional security measure, use the
following command from a shell or system prompt (while in the `config`
directory):

 chmod a-r CHANGELOG.md

Note that the example only affects CHANGELOG.md. To completely hide all
documentation files from public view, repeat this command for each of the Drupal
documentation files in the `config` directory, substituting the name of each
file for CHANGELOG.md in the example.

### 7. INITIAL CONFIGURATION AND FIRST ACCESS

When the install script succeeds, you will be directed to the "Welcome" page,
and you will be logged in as the administrator already. Proceed with the initial
configuration steps suggested on the "Welcome" page.

If the default **SuiteDesk** theme is not displaying properly and links on the
page result in "Page Not Found" errors, try manually setting the `$base_url`
variable in the `settings.php` file if not already set. It's currently known
that servers running FastCGI can run into problems if the `$base_url` variable
is left commented out (see http://bugs.php.net/bug.php?id=19656). Examples:

 $base_url = 'http://www.example.com';
 $base_url = 'http://www.example.com:8888';
 $base_url = 'http://www.example.com/drupal';
 $base_url = 'https://www.example.com:8888/drupal';

You might also want to force users to use a given domain. See the `.htaccess`
file for more information. Drupal automatically generates a unique session
cookie name for each site based on its full domain name. If you have multiple
domains pointing at the same site, you can either redirect them all to a single
domain (see comment in `.htaccess`), or uncomment the `$cookie_domain` and
specify their shared base domain. Doing so assures that users remain logged in
as they cross between your various domains.

Also you can see in the `settings.php` file what PHP settings are possible,
including whether they can be set at runtime (i.e., when ini_set() occurs), read
the PHP documentation at http://www.php.net/manual/en/ini.php#ini.list and take
a look at the `.htaccess` file to see which non-runtime settings are used there.
Settings defined in the configuration file should not be duplicated there so as
to avoid conflict issues.

If you encounter a situation where users post a large amount of text, and the
result is stripped out upon viewing but can still be edited, Drupal's output
filter may not have sufficient memory to process it. If you have this, you may
wish to uncomment the lines with PHP settings `pcre.*_limit` and increase their
limit values. See http://php.net/manual/en/pcre.configuration.php.

Finally, to override specific global settings for your site, set them in the
configuration file, including the reverse proxy if needed.

And that's all, you are ready to access to your site writting its URL in your
preferred and use one of the next pre-configured Drupal/**SuiteDesk** users:

* root, Drupal user to administer site (see Drupal Administration below),
* pmdemo, SuiteDesk user to use Project management features,
* clidemo, SuiteDesk user to use Customer features.

It's highly recommended to change the password of all these users before
delivery the site in production.

### 8. CRON MAINTENANCE TASKS

Many **SuiteDesk** modules have periodic tasks that must be triggered by a cron
maintenance task, including search module (to build and update the index used
for keyword searching) and system module (to perform routine maintenance and
pruning on system tables). To activate these tasks, call the cron page by
visiting http://www.example.com/cron.php, which, in turn, executes tasks on
behalf of installed modules.

Most systems support the crontab utility for scheduling tasks like this. The
following example crontab line will activate the cron tasks automatically on the
hour:

 0   *   *   *   *   wget -O - -q -t 1 http://www.example.com/cron.php


DRUPAL ADMINISTRATION
---------------------

A new installation of Drupal defaults to a very basic configuration with only a
few active modules and minimal user access rights.

Use your administration panel to enable and configure services. For example:

General Settings       Administer > Site configuration > Site information
Enable Modules         Administer > Site building > Modules
Configure Themes       Administer > Site building > Themes
Set User Permissions   Administer > User management > Permissions

For more information on configuration options, read the instructions which
accompany the different configuration settings and consult the various help
pages available in the administration panel.

Community-contributed modules and themes are available at http://drupal.org/.


CUSTOMIZING YOUR THEME(S)
-------------------------

Now that your installation is running, you will want to customize the look of
your site. Several sample themes are included and more can be downloaded from
drupal.org.

Simple customization of your theme can be done using only CSS. Further changes
require understanding the phptemplate engine that is part of Drupal. See
http://drupal.org/handbook/customization to find out more.


MULTISITE CONFIGURATION
-----------------------

A single **SuiteDesk** installation can host several Drupal-powered sites, each
with its own individual configuration.

Additional site configurations are created in subdirectories within the `config`
directory. Each subdirectory must have a `settings.php` file which specifies the
configuration settings. The easiest way to create additional sites is to copy
the `default` directory and modify the `settings.php` file as appropriate. The
configuration file to be loaded is based upon the rules below.

The configuration directory will be discovered by stripping the website's
hostname from left to right and pathname from right to left. The first
configuration file found will be used and any others will be ignored. If no
other configuration file is found then the default configuration file at
`config/default` will be used. For example, for a fictitious site installed at
http://www.example.org/mysite/test the `settings.php` is searched in the
following directories:

1. config/www.example.org.mysite.test
2. config/example.org.mysite.test
3. config/org.mysite.test

4. config/www.example.org.mysite
5. config/example.org.mysite
6. config/org.mysite

7. config/www.example.org
8. config/example.org
9. config/org

10. config/default

If you are installing on a non-standard port number, prefix the hostname with
that number. For example, http://www.example.org:8080/mysite/test could be
loaded from `config/8080.www.example.org.mysite.test` directory.

For more information on configuring the file system path in a multi-site
configuration, see step 7 above.