|
||
---|---|---|
.. | ||
default | ||
CHANGELOG.md | ||
LICENSE.md | ||
README.md | ||
UPGRADE.md |
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.