Docker image / push (push) Canceled after 0s
包含:登录失败锁定、90天密码有效期、30分钟会话超时、 强制改密、登录审计日志、屏幕水印、企业背景图、 备案信息固定底部、favicon、登录页JS修复等全部改动
565 lines
26 KiB
Plaintext
565 lines
26 KiB
Plaintext
MRBS Installation Instructions
|
|
|
|
|
|
|
|
REQUIREMENTS
|
|
---------------------------------------------------------------------------
|
|
MRBS works with both MySQL (Version 5.5.3 and above, though MySQL Version
|
|
5.7.5 and above or MariaDB Version 10.0.2 and above are recommended) and
|
|
PostgreSQL (Version 8.2 and above) systems. [The reason that if you are using
|
|
MySQL you are recommended to use MySQL Version 5.7.5 and above or MariaDB
|
|
Version 10.0.2 and above is that these versions support multiple locks and thus
|
|
enable MRBS to use a custom database session handler. This is more secure than
|
|
the standard file based session handler, easier to configure and enables MRBS
|
|
to be used on clustered web servers.]
|
|
|
|
You must have at least PHP 7.2.5, with support for your chosen database system
|
|
installed and working for this application. See the PHP (www.php.net), MySQL
|
|
(www.mysql.com), and PostgreSQL (www.postgresql.org) sites for more info on
|
|
setting these up. You need to know how to install, secure, run, maintain,
|
|
and back up your chosen database system.
|
|
|
|
MRBS also requires that 'iconv' PHP extension, to provide internationalisation.
|
|
The 'intl' and 'mbstring' extensions are recommended.
|
|
|
|
You can run PHP either as a CGI or with a direct module interface (also called
|
|
SAPI). These servers include Apache, Microsoft Internet Information Server,
|
|
Netscape and iPlanet servers. Many other servers have support for ISAPI, the
|
|
Microsoft module interface.
|
|
You'll get better performance with PHP setup as a module. Not only will you
|
|
not have to deal with the CGI performance hit, but you'll be able to use PHP's
|
|
database connection pooling. However, be careful that you don't exceed
|
|
the maximum number of connections allowed to your database; with connection
|
|
pooling PHP/Apache can potentially create a connection from each Apache
|
|
child server to the database.
|
|
Also many MRBS authentication schemes use basic HTTP authentication. These
|
|
don't work if you run PHP as a CGI.
|
|
|
|
If you are using PHP as an Apache module, you probably want to ensure that the
|
|
Apache MaxConnectionsPerChild (aka. MaxRequestsPerChild in Apache pre-v2.3.9)
|
|
is not set to 0, in case of undetected memory leaks in PHP or MRBS. In Ubuntu
|
|
25.10 this can be found in the mpm_prefork.conf file, located in
|
|
/etc/apache2/mods-available/.
|
|
|
|
OVERVIEW
|
|
---------------------------------------------------------------------------
|
|
The steps involved in installing MRBS are:
|
|
|
|
1. Installing the MRBS files on your web server
|
|
2. Creating the MRBS tables in your database
|
|
3. Configuring MRBS
|
|
|
|
After that you can then point your browser at MRBS and start creating areas
|
|
and rooms.
|
|
|
|
|
|
INSTALLING THE MRBS FILES
|
|
---------------------------------------------------------------------------
|
|
To install MRBS, just unpack the distribution into a temporary directory,
|
|
then copy the files in the "web" subdirectory into a new directory somewhere
|
|
your web server can find them.
|
|
|
|
If you are using a remote webserver, unpack the files into a temporary
|
|
directory on your local machine and then upload them to suitable directory
|
|
on your webserver, for example mydomain.com/mrbs
|
|
|
|
If you are using a Unix/Linux webserver to which you have access, then
|
|
an example of the installation might be:
|
|
|
|
Unpack the software into a new temporary directory, something like this:
|
|
$ tar -xvzf ~/download/mrbs-1.7.1.tgz (or whatever version)
|
|
$ cd mrbs-1.7.1 (or whatever version)
|
|
|
|
MRBS comes with a sample configuration file "web/config.inc.php-sample" -
|
|
this should be copied to "web/config.inc.php" and configured for your
|
|
site. The minimum you generally need to configure are the timezone
|
|
(unless your PHP configuration already defines the timezone) and the
|
|
database access details.
|
|
|
|
If you are upgrading from a previous version of MRBS, you should consider
|
|
copying your changes to the "config.inc.php" file into a new copy
|
|
of config.inc.php copied from the new MRBS version's config.inc.php-sample.
|
|
|
|
Now install MRBS by copying the contents of the "web" subdirectory of the
|
|
distribution somewhere your web server can find it. For example:
|
|
$ cp -r web /var/lib/apache/htdocs/mrbs
|
|
|
|
|
|
CREATING THE MRBS TABLES IN YOUR DATABASE
|
|
---------------------------------------------------------------------------
|
|
For a new install:
|
|
|
|
If you are using a remote webserver you should use your database
|
|
administration program (eg phpMyAdmin in your control panel) to create the
|
|
MRBS tables, by executing the contents of tables.my.sql. For example, if
|
|
you are using phpMyAdmin copy the contents of tables.my.sql into the SQL
|
|
tab of phpMyAdmin and execute it as an SQL query. This assumes that you
|
|
have already created a database - if not you should create a database
|
|
first.
|
|
|
|
If you are using a Unix/Linux webserver to which you have access, then the
|
|
procedure might be:
|
|
|
|
[MySQL] $ mysqladmin create mrbs
|
|
[PostgreSQL] $ createdb -E UTF8 -T template0 mrbs
|
|
|
|
(This will create a database named "mrbs", but you can use any name.)
|
|
|
|
Create the MRBS tables using the supplied tables.*.sql file:
|
|
|
|
[MySQL] $ mysql mrbs < tables.my.sql
|
|
[PostgreSQL] $ psql -a -f tables.pg.sql mrbs
|
|
|
|
where "mrbs" is the name of your database (mentioned above).
|
|
This will create all the needed tables.
|
|
You may need to set rights on the tables; for PostgreSQL see "grant.pg.sql".
|
|
If you need to delete the tables, for PostgreSQL see "destroy.pg.sql".
|
|
|
|
The tables are now empty and ready for use.
|
|
|
|
For an upgrade:
|
|
|
|
If you are upgrading from MRBS 1.2-pre3 or later, your database will be
|
|
upgraded automatically if necessary when you first run MRBS. You will
|
|
be prompted for a database (not MRBS) username and password with rights
|
|
to create and alter tables. Otherwise, please see the UPGRADE file.
|
|
|
|
For a second installation or to use different table names:
|
|
|
|
If you have table name conflicts or want to do a second installation
|
|
and only have access to one database, then you can modify the 'mrbs_'
|
|
prefix for the table names.
|
|
|
|
In tables.*.sql you will need to change the table names and then follow
|
|
the instructions above for creating the tables in your database.
|
|
|
|
When editing config.inc.php, you need to change the table name prefix
|
|
from "mrbs_" to the value you chose using the variable $db_tbl_prefix.
|
|
|
|
WARNING: All of the .sql files are set up to use the 'mrbs_' prefix
|
|
therefore you will have to edit them before you use them if you
|
|
change the prefix for your tables.
|
|
|
|
|
|
Maintenance:
|
|
|
|
Be sure to back up your database regularly.
|
|
For PostgreSQL, be sure to run the "vacuum" command regularly.
|
|
You can clean out old entries from your database using the supplied SQL
|
|
scripts purge.my.sql (for MySQL) and purge.pg.sql (for PostgreSQL). Read
|
|
the comments at the top of the scripts before using them.
|
|
|
|
|
|
ADDING EXTRA COLUMNS TO THE DATABASE TABLES
|
|
---------------------------------------------------------------------------
|
|
It is possible to add extra columns to the entry, repeat, room and users
|
|
tables, if you need to hold extra information about bookings, rooms and users.
|
|
For example you might want to add a column in the room table to record whether
|
|
or not a room has a coffee machine and you might want to record the phone
|
|
numbers of users. (Note that the users table is only used if you are using
|
|
the 'db' authentication scheme). Similarly you might want to add a field
|
|
to the entry and repeat tables to record the number of participants for
|
|
a meeting.
|
|
|
|
To add extra columns, just go into your database administration tool, eg
|
|
phpMyAdmin, and add the extra columns manually. MRBS will then recognise them
|
|
and handle them automatically, displaying the information in the lists of rooms
|
|
and users and allowing you to edit the data in the appropriate forms.
|
|
|
|
NOTES:
|
|
(1) if you are adding a field to the entry table you must add an
|
|
identical field to the repeat table. If you do not MRBS will fail with
|
|
a fatal error when you try and run it.
|
|
(2) names must consist of letters, numbers or underscores. If you are
|
|
using PostgreSQL then the name must begin with a letter or an underscore.
|
|
If you are using MySQL then there is no restriction on the first character
|
|
as long as it is in the permitted set, ie a letter, number or underscore.
|
|
(Although MySQL will allow other characters in column names, MRBS imposes
|
|
restrictions on the characters allowed in order to simplify the code. For
|
|
a technical explanation see below).
|
|
|
|
At the moment only text, varchar, date, decimal/numeric, int, smallint and
|
|
tinyint columns are supported, displayed as textarea, text, date, number
|
|
or checkbox fields as appropriate. Whether a varchar is displayed as a text
|
|
or textarea input depends on its maximum length, with the breakpoint
|
|
determined by a configuration variable. Ints are treated as integer types, as
|
|
you would expect. However smallints and tinyints are assumed to be booleans
|
|
and are displayed as checkboxes.
|
|
|
|
[Note: smallints are assumed to be booleans because the boolean type in
|
|
PostgreSQL presents some problems in PHP when trying to process the results
|
|
of a query in a database independent way, so it is more convenient to use a
|
|
smallint instead of a boolean in PostgreSQL.]
|
|
|
|
Text descriptions are set in the config file using the $vocab_override variable
|
|
using the appropriate language(s) and with the tag room.column_name,
|
|
eg room.coffee_machine, or users.phone enabling translations to be provided.
|
|
If not present, the column name will be used for labels etc. If you are adding
|
|
columns to the entry and repeat tables then you only need to add the
|
|
entry.column_name tags: you don't need to add a repeat.column_name tag.
|
|
|
|
As an example, to add a field to the room table recording whether or not
|
|
there is a coffee machine you would, in MySQL, add the column
|
|
|
|
coffee_machine tinyint
|
|
|
|
to the room table and add the line
|
|
|
|
$vocab_override['en']['room.coffee_machine'] = "Coffee machine";
|
|
|
|
to the config file and similarly for other languages as required. MRBS
|
|
should then do the rest and display your coffee machine field on the room
|
|
pages.
|
|
|
|
Extra options for custom fields:
|
|
|
|
1)
|
|
|
|
You can create dropdown boxes for a custom field by defining an
|
|
entry in the configuration array $select_options. For example:
|
|
|
|
$select_options['entry.conference_facilities'] = array('Video',
|
|
'Telephone',
|
|
'None');
|
|
|
|
would define the 'conference_facilities' custom field to have three
|
|
possible values.
|
|
|
|
For custom fields only (will be extended later) it is also possible to use
|
|
an associative array for $select_options, for example
|
|
|
|
$select_options['entry.catering'] = array('c' => 'Coffee',
|
|
's' => 'Sandwiches',
|
|
'h' => 'Hot Lunch');
|
|
|
|
In this case the key (eg 'c') is stored in the database, but the value
|
|
(eg 'Coffee') is displayed and can be searched for using Search and Report.
|
|
This allows you to alter the displayed values, for example changing 'Coffee'
|
|
to 'Coffee, Tea and Biscuits', without having to alter the database. It can also
|
|
be useful if the database table is being shared with another application.
|
|
MRBS will auto-detect whether the array is associative.
|
|
|
|
2)
|
|
|
|
You can specify that a field is mandatory. This will ensure that the
|
|
user specifies a value for a field that may be empty, like a text box
|
|
or a selection, as in 1) above. For example:
|
|
|
|
$is_mandatory_field['entry.conference_facilities'] = true;
|
|
|
|
would define the 'conference_facilities' custom field to be mandatory.
|
|
In the case of a select field, this adds an empty value to the dropdown
|
|
list.
|
|
|
|
For the entry table only, you can also specify that the field should be mandatory
|
|
only for specific areas, by setting the value to an array of area IDs. For example:
|
|
|
|
$is_mandatory_field['entry.conference_facilities'] = [1, 3];
|
|
|
|
would define the 'conference_facilities' custom field to be mandatory only
|
|
for the areas with ID 1 and 3. For other areas the field will exist but not
|
|
be mandatory.
|
|
|
|
Making a checkbox field mandatory is possible and requires the
|
|
checkbox to be ticked before the form can be submitted. This can be
|
|
useful for example for requiring users to accept terms of service or
|
|
terms and conditions.
|
|
|
|
3)
|
|
|
|
You can also specify that a field is private, ensuring that the contents
|
|
are only visible to yourself and the administrators. For example:
|
|
|
|
$is_private_field['entry.refreshments'] = true;
|
|
$is_private_field['users.tel'] = true;
|
|
|
|
would prevent the details of your refreshments being visible to other
|
|
users - provided that private bookings are enabled. See the section
|
|
on private bookings in systemdefaults.inc.php for more information.
|
|
Note that private fields are only supported in the entry and users tables.
|
|
|
|
4)
|
|
|
|
You can also enter regular expressions for validating text field input using
|
|
the pattern attribute. At the moment this is limited to custom fields in the
|
|
users table. For example the following could be used to ensure a valid US ZIP
|
|
code (you might want to have a better regex - this is just for illustration):
|
|
|
|
$pattern['users.zip_code'] = "^[0-9]{5}(?:-[0-9]{4})?$";
|
|
|
|
You would probably also want to enter a custom error message by using
|
|
$vocab_override, with the tag consisting of "table.field.oninvalid" eg
|
|
|
|
$vocab_override['users.zip_code.oninvalid']['en'] = "Please enter a valid " .
|
|
"ZIP code, eg '12345' or '12345-6789'";
|
|
|
|
|
|
Technical explanation of the restriction on column names for custom fields
|
|
--------------------------------------------------------------------------
|
|
// Column names for custom fields are used by MRBS in a number of ways:
|
|
// - as the column name in the database
|
|
// - as part of an HTML name attribute for a form input
|
|
// - as part of a PHP variable name
|
|
// - as part of a property name in an iCalendar file
|
|
//
|
|
// MySQL, PostgreSQL, HTML and PHP all have different rules for these tokens:
|
|
// - MySQL: almost anything is allowed except that:
|
|
// - "No identifier can contain ASCII NUL (0x00) or a byte with a value
|
|
// of 255."
|
|
// - "Database, table, and column names should not end with space
|
|
// characters."
|
|
// (http://dev.mysql.com/doc/refman/5.0/en/identifiers.html)
|
|
//
|
|
// - PostgreSQL: "SQL identifiers and key words must begin with a letter (a-z,
|
|
// but also letters with diacritical marks and non-Latin letters) or an
|
|
// underscore (_). Subsequent characters in an identifier or key word can
|
|
// be letters, underscores, digits (0-9), or dollar signs ($). Note that
|
|
// dollar signs are not allowed in identifiers according to the letter of the
|
|
// SQL standard, so their use may render applications less portable. The SQL
|
|
// standard will not define a key word that contains digits or starts or ends
|
|
// with an underscore, so identifiers of this form are safe against possible
|
|
// conflict with future extensions of the standard."
|
|
// (http://www.postgresql.org/docs/8.1/interactive/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS)
|
|
//
|
|
// - PHP: "Variable names follow the same rules as other labels in PHP. A
|
|
// valid variable name starts with a letter or underscore, followed by any
|
|
// number of letters, numbers, or underscores. As a regular expression, it
|
|
// would be expressed thus: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*' "
|
|
// (http://php.net/manual/en/language.variables.basics.php)
|
|
//
|
|
// - HTML: "ID and NAME tokens must begin with a letter ([A-Za-z]) and may be
|
|
// followed by any number of letters, digits ([0-9]), hyphens ("-"),
|
|
// underscores ("_"), colons (":"), and periods (".")."
|
|
// (http://www.w3.org/TR/html401/types.html#type-cdata)
|
|
//
|
|
// - iCalendar: A name consists of ALPHA / DIGIT / "-" characters.
|
|
//
|
|
// In order to avoid complications with using names in each of these contexts,
|
|
// we restrict custom field names to the set of names which conforms to all
|
|
// five rules, taking into account the fact that when MRBS uses column names
|
|
// in PHP and HTML it always prefixes them with a string beginning with a letter.
|
|
// This gives us the rule that custom field names must consist of letters,
|
|
// numbers or underscores (which are converted to hyphens when exported to an
|
|
// iCalendar file).
|
|
|
|
|
|
CONFIGURING MRBS
|
|
---------------------------------------------------------------------------
|
|
Next, you will need to create and customize the file "config.inc.php"...
|
|
|
|
First of all copy the file config.inc.php-sample to config.inc.php. Then you
|
|
need to edit the settings in that file and add other settings as required.
|
|
|
|
As a minimum you will need to set the timezone and the database variables.
|
|
Other settings can be changed by copying lines from systemdefaults.inc.php and
|
|
areadefaults.inc.php and pasting them into config.inc.php. Do not edit
|
|
systemdefaults.inc.php or areadefaults.inc.php as it will make it harder for
|
|
you to upgrade when new versions are released.
|
|
|
|
Note that there are two different defaults files (systemdefaults.inc.php and
|
|
areadefaults.inc.php) to draw attention to the fact that the settings in
|
|
areadefaults just determine the settings for NEW areas. Settings for existing
|
|
areas are set using a web browser by following the "Rooms" link in MRBS. (It
|
|
can be a little frustrating editing the area settings to find that they have no
|
|
effect on existing areas!)
|
|
|
|
1. Timezone
|
|
|
|
You must set the timezone to a valid value, a list of which can be found at
|
|
http://php.net/manual/timezones.php. Don't forget to uncomment the line
|
|
by removing the '//' at the beginning. Note that the timezone to use is the
|
|
timezone in which your meeting rooms are located, not the timezone of your
|
|
server in case they are different.
|
|
|
|
However, if you already have bookings in your system which were made under
|
|
a different timezone (perhaps if you are upgrading from a previous version
|
|
of MRBS where the timezone wasn't set explicitly and the timezone defaulted to
|
|
that of the server) then you have two choices:
|
|
|
|
(a) to set the timezone to be the same as the previous timezone. This will
|
|
ensure that all your existing bookings still appear correctly, but you will
|
|
have to continue to put up with some minor inconveniences. For example
|
|
"Go to Today" will not always go to the today for your rooms, if you happen
|
|
to be using MRBS at a time of day when the rooms are on one day but the
|
|
timezone you have selected is on the day before or after. Also if you are
|
|
using the min and max book ahead facility then you will find that this is out
|
|
by the difference between the timezone of your rooms and the timezone you have
|
|
chosen.
|
|
|
|
(b) to set the timezone to the timezone of your rooms, having first corrected
|
|
the start and end times of all your existing bookings, in both the entry and
|
|
repeat tables. This is not a trivial exercise and you should back up your
|
|
database before starting. Note also that it is not necessarily as simple as
|
|
adding or subtracting a fixed number of hours to existing bookings since the
|
|
dates at which your rooms change between summer and winter time may be different
|
|
to the dates at which your previous timezone made the DST change. This can
|
|
happen for example if your rooms are in Europe and your server is in the USA,
|
|
as there is usually a week when Europe has changed but the USA has not.
|
|
|
|
|
|
2. Database Settings:
|
|
|
|
First, select your database system. Define one of the following:
|
|
|
|
$dbsys = "mysql";
|
|
$dbsys = "pgsql";
|
|
|
|
Then define your database connection parameters. Set the values for:
|
|
|
|
$db_host = The hostname that the database server is running on.
|
|
$db_database = The name of the database containing the MRBS tables.
|
|
$db_login = The database login username
|
|
$db_password = The database login password for the above login username
|
|
|
|
If you are using cPanel on your web server, make sure you include the prefix,
|
|
typically 8 characters followed by an underscore, in your database name and
|
|
database username. For example $db_database = "abcdefgh_mrbs". (Note: this
|
|
prefix is not the same as the table prefix below.)
|
|
|
|
If the database server and web server are the same machine, use
|
|
$db_host="localhost". Or, with PostgreSQL only, you can use $db_host="" to
|
|
use Unix Domain Sockets to connect to the database server on the same machine.
|
|
|
|
By default, MRBS will not use PHP persistent (pooled) database connections.
|
|
Persistent connections can sometimes give better performance, but they can
|
|
also cause problems with transactions and locks. For more details see
|
|
http://php.net/manual/en/features.persistent-connections.php Although
|
|
MRBS is designed to work with persistent connections we recommend that you
|
|
don't use them unless they give a significant performance boost. To use
|
|
persistent connections set
|
|
|
|
$db_persist = TRUE;
|
|
|
|
If you want to install multiple sets of mrbs tables when only one
|
|
SQL database is available, or resolve table name conflicts, you have
|
|
to change the prefix of "mrbs_" for the tables in your database,
|
|
then you will need to set the value of:
|
|
|
|
$db_tbl_prefix = The table name prefix
|
|
|
|
|
|
3. Other Settings
|
|
|
|
Now go through systemdefaults.inc.php and areadefaults.inc.php and see which other
|
|
configuration settings you would like to change. Do this by copying them to
|
|
config.inc.php and changing them there. This should make the task of upgrading to
|
|
new releases easier as all your site-specific configuration changes will be confined
|
|
to config.inc.php.
|
|
|
|
There is a wide variety of settings that can be changed, including
|
|
|
|
- site identification information
|
|
- themes
|
|
- calendar settings
|
|
- booking policies
|
|
- display and time format settings
|
|
- private bookings settings
|
|
- provisional bookings settings
|
|
- authentication settings
|
|
- email settings
|
|
- language settings
|
|
- report settings
|
|
- entry types
|
|
|
|
The comments in the systemdefaults.inc.php and areadefaults.inc.php files should
|
|
explain the purpose of the various configuration variables and how to change them.
|
|
(Note that some of the settings can be set on a per-area basis through the area
|
|
administration page in MRBS. In this case the setting in the areadefaults.inc.php
|
|
and config.inc.php files defines the default settings for new areas.)
|
|
|
|
The Help information is held in the site_faq files, one per language. You may well
|
|
want to customise it by editing the files.
|
|
|
|
|
|
CHANGING TEXT STRINGS
|
|
---------------------------------------------------------------------------
|
|
|
|
All the text strings used by MRBS, except those used on the Help page, are held in a
|
|
series of lang.* files, for example lang.en for English, or lang.fr for French. They
|
|
are overridden by the $vocab_override array in the config file. If you want to change
|
|
some of the text strings used by MRBS, for example change "Room" to "Computer", then
|
|
look for the appropriate string in the lang files, remember its tag and set the
|
|
$vocab_override variable in the config file. For example
|
|
|
|
$vocab_override['en']['ctrl_click'] = "Use Control-Click to select more than one computer";
|
|
|
|
Doing it this way, rather than editing the lang files, will mean that when you upgrade to
|
|
the next version of MRBS you will not have to re-edit the lang files.
|
|
|
|
|
|
INTERNATIONALISATION
|
|
---------------------------------------------------------------------------
|
|
|
|
From MRBS 1.4.6, MRBS is internationalised and uses UTF-8 throughout.
|
|
MRBS will serve all of its pages in UTF-8 and stores everything in the
|
|
database in UTF-8. This means that all languages work together.
|
|
|
|
For MRBS to use Unicode, PHP must be built with 'iconv' support
|
|
('--with-iconv' directive), or have the iconv extension installed
|
|
and enabled. On Windows, if you are using PHP 5, iconv support is built-in.
|
|
|
|
|
|
PERIODS
|
|
---------------------------------------------------------------------------
|
|
When using periods, MRBS stores bookings internally as one minute slots
|
|
starting at 1200. If once you have had your system up and running for
|
|
a while find that you need to add a new period then you will need to
|
|
adjust the times of your existing bookings unless your new period is at
|
|
the end of the day.
|
|
|
|
The simplest example is when you want to add a new period at the start of
|
|
the day. In this case you will need to run some SQL using phpMyAdmin or
|
|
a similar program to move all bookings one minute later. In this example
|
|
the SQL required would be
|
|
|
|
UPDATE mrbs_entry SET start_time=start_time+60, end_time=end_time+60;
|
|
UPDATE mrbs_repeat SET start_time=start_time+60, end_time=end_time+60,
|
|
end_date=end_date+60;
|
|
|
|
having changed "mrbs_" to your table prefix if necessary.
|
|
|
|
Before running this SQL you should of course backup your database.
|
|
|
|
|
|
MULTISITE
|
|
---------------------------------------------------------------------------
|
|
MRBS can be run in multisite mode by setting in the config file
|
|
|
|
$multisite = true;
|
|
|
|
In multisite mode a single instance of the MRBS code can serve a number of
|
|
sites. Each site has its own config file in the sites/<sitename> directory
|
|
which will override any settings in the global config file. At a minimum
|
|
the local config file will contain a table prefix for the site, but can also
|
|
contain any other config settings including a theme and custom CSS. The sites
|
|
are reached by specifying the sitename in the query string, eg
|
|
|
|
index.php?site=sitename
|
|
|
|
Individual sites can even have their own authentication methods, but note that
|
|
authentication against WordPress multisite is not supported.
|
|
|
|
|
|
SECURITY NOTES!
|
|
---------------------------------------------------------------------------
|
|
You can configure your web server so that users can not obtain the ".inc"
|
|
files but this is not essential, since critical files containing your
|
|
database login and password use a ".php" extension like config.inc.php.
|
|
See your web server documentation on how to do this.
|
|
|
|
There are example Apache .htaccess files included, for different versions of
|
|
Apache, but Apache might ignore a .htaccess file in your MRBS directory
|
|
due to the setting of the "AllowOverride" directive in your web server
|
|
configuration. Either change "AllowOverride None" to "AllowOverride Limit",
|
|
or create a new <Directory> entry with the contents of the .htaccess example
|
|
file in it for your MRBS installation. Then read the Apache docs five or six
|
|
times, until you know what you just did.
|
|
|
|
You may protect "config.inc.php" to only allow the web server to read it.
|
|
For example: # chown httpd config.inc.php; chmod 400 config.inc.php
|
|
|
|
The script "testdata.php" is for testing only. Do not leave it in a
|
|
directory accessible to your web server. Anyone running this will add a
|
|
large number of test entries to your database, regardless of
|
|
authentication, and book all your rooms to people you've never heard of.
|