434 lines
17 KiB
Markdown
434 lines
17 KiB
Markdown
INSTALLATION GUIDE
|
|
==================
|
|
|
|
Contents of this file:
|
|
|
|
* Requirements
|
|
* Installation
|
|
* Drupal administration
|
|
* Customizing your theme(s)
|
|
* Multisite Configuration
|
|
* More Information
|
|
* Copyright notices
|
|
|
|
|
|
REQUIREMENTS
|
|
------------
|
|
|
|
**SuiteDesk** began long time ago as a Drupal 6 project, and now continues as a
|
|
standalone open software 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 PDF TOOL
|
|
|
|
The print PDF module requires the use of an external PDF generation tool. The
|
|
currently supported is *wkhtmltopdf*. To install follow the next steps:
|
|
|
|
1. Download *wkhtmltopdf* from https://wkhtmltopdf.org/downloads.html. You can
|
|
choose to download the source and compile it or simply download the static
|
|
binary, which doesn't require you to compile anything. Note that the compiled
|
|
version may require a running X server (static uses patched libs that can
|
|
work without one).
|
|
2. Place the `wkhtmltopdf` executable into the `libraries` directory. You can
|
|
also place a symbolic link to the executable.
|
|
3. Check https://wkhtmltopdf.org/usage/wkhtmltopdf.txt for further information.
|
|
|
|
### 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
|
|
|
|
You can create more than one configuration file, and 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.drupal.org.mysite.test` directory.
|
|
|
|
### 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 set-up (e.g. by
|
|
your host). In the following examples, *username* 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 username -p create databasename
|
|
|
|
MySQL will prompt for the *username* database password and then create the
|
|
initial database files. Next you must login and set the access database rights:
|
|
|
|
mysql -u username -p
|
|
|
|
Again, you will be asked for the *username* 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
|
|
*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` variable 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_',
|
|
);
|
|
|
|
### 5. RUN THE INSTALL SCRIPT
|
|
|
|
To run the install script point your browser to the base URL of your website
|
|
(e.g., http://www.example.com).
|
|
|
|
You will be guided through several screens to set up the database,
|
|
create tables, add the first user account and provide basic web
|
|
site settings.
|
|
|
|
The install script will attempt 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. CONFIGURE SUITEDESK
|
|
|
|
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 Drupal 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).
|
|
|
|
### 7. REVIEW FILE SYSTEM STORAGE SETTINGS AND FILE PERMISSIONS
|
|
|
|
The files directory created in step 4 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, especially
|
|
CHANGELOG.txt, non-readable so that the exact version of Drupal 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 installation directory):
|
|
|
|
chmod a-r CHANGELOG.txt
|
|
|
|
Note that the example only affects CHANGELOG.txt. To completely hide
|
|
all documentation files from public view, repeat this command for each of
|
|
the Drupal documentation files in the installation directory, substituting the
|
|
name of each file for CHANGELOG.txt in the example.
|
|
|
|
For more information on setting file permissions, see "Modifying Linux, Unix,
|
|
and Mac file permissions" (http://drupal.org/node/202483) or "Modifying
|
|
Windows file permissions" (http://drupal.org/node/202491) in the online
|
|
handbook.
|
|
|
|
### 8. CRON MAINTENANCE TASKS
|
|
|
|
Many Drupal 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), aggregator module (to retrieve feeds from other
|
|
sites), ping module (to notify other sites about new or updated content), 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
|
|
|
|
More information about cron maintenance tasks are available in the help pages
|
|
and in Drupal's online handbook at http://drupal.org/cron. Example scripts can
|
|
be found in the scripts/ directory.
|
|
|
|
|
|
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 Drupal 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
|
|
new directory name is constructed from the site's URL. The configuration for
|
|
www.example.com could be in 'config/example.com/settings.php' (note that 'www.'
|
|
should be omitted if users can access your site at http://example.com/).
|
|
|
|
Sites do not have to have a different domain. You can also use subdomains and
|
|
subdirectories for Drupal sites. For example, example.com, sub.example.com,
|
|
and sub.example.com/site3 can all be defined as independent Drupal sites. The
|
|
setup for a configuration such as this would look like the following:
|
|
|
|
config/default/settings.php
|
|
config/example.com/settings.php
|
|
config/sub.example.com/settings.php
|
|
config/sub.example.com.site3/settings.php
|
|
|
|
When searching for a site configuration (for example www.sub.example.com/site3),
|
|
Drupal will search for configuration files in the following order, using the
|
|
first configuration it finds:
|
|
|
|
config/www.sub.example.com.site3/settings.php
|
|
config/sub.example.com.site3/settings.php
|
|
config/example.com.site3/settings.php
|
|
config/www.sub.example.com/settings.php
|
|
config/sub.example.com/settings.php
|
|
config/example.com/settings.php
|
|
config/default/settings.php
|
|
|
|
If you are installing on a non-standard port, the port number is treated as the
|
|
deepest subdomain. For example: http://www.example.com:8080/ could be loaded
|
|
from config/8080.www.example.com/. The port number will be removed according to
|
|
the pattern above if no port-specific configuration is found, just like a real
|
|
subdomain.
|
|
|
|
Each site configuration can have its own site-specific modules and themes in
|
|
addition to those installed in the standard 'modules' and 'themes' directories.
|
|
To use site-specific modules or themes, simply create a 'modules' or 'themes'
|
|
directory within the site configuration directory. For example, if
|
|
sub.example.com has a custom theme and a custom module that should not be
|
|
accessible to other sites, the setup would look like this:
|
|
|
|
config/sub.example.com/:
|
|
settings.php
|
|
themes/custom_theme
|
|
modules/custom_module
|
|
|
|
NOTE: for more information about multiple virtual hosts or the configuration
|
|
settings, consult the Drupal handbook at drupal.org.
|
|
|
|
For more information on configuring Drupal's file system path in a multi-site
|
|
configuration, see step 6 above.
|
|
|
|
|
|
MORE INFORMATION
|
|
----------------
|
|
|
|
- For additional documentation, see the online Drupal handbook at
|
|
http://drupal.org/handbook.
|
|
|
|
- For a list of security announcements, see the "Security announcements" page
|
|
at http://drupal.org/security (available as an RSS feed). This page also
|
|
describes how to subscribe to these announcements via e-mail.
|
|
|
|
- For information about the Drupal security process, or to find out how to report
|
|
a potential security issue to the Drupal security team, see the "Security team"
|
|
page at http://drupal.org/security-team.
|
|
|
|
- For information about the wide range of available support options, see the
|
|
"Support" page at http://drupal.org/support.
|