Multiple instances¶
Qisutu can run production, test, and development instances in parallel on the same server. Each instance requires its own top-level directory. The directory name is used unchanged as the instance identifier.
Example layout¶
/opt/qisutu Production instance
/opt/qisututest Test instance
/opt/qisutudev Development instance
For /opt/qisututest, install.sh automatically creates:
Web path
/qisututestApache file
qisututest.confService
qisututest-daemon.serviceSession cookie
QISUTUTEST_SESSIONDatabase and database user
qisututest
The directory name must begin with a lowercase letter and may contain only lowercase letters, digits, and hyphens. Use short, unambiguous names. No additional prefix is added.
Installing another instance¶
Extract the release again into a separate directory and run install.sh
there. Example:
cd /opt
tar xzf qisutu-1.0.2.tar.gz
mv qisutu-1.0.2 qisututest
chown qisutu:www-data -R /opt/qisututest
cd /opt/qisututest
chmod +x install.sh
./install.sh
Then open the web installer URL displayed by the script, for example
http://SERVER/qisututest/install.pl. Instance values are stored in
var/install/instance.conf and reused during updates.
Separating instances¶
Instances share the operating system, Apache, and the qisutu system user,
but have separate application directories, web paths, configurations,
databases, cookies, services, logs, and runtime locks. They can therefore be
started, stopped, and updated independently:
systemctl status qisutu-daemon.service
systemctl status qisututest-daemon.service
systemctl restart qisututest-daemon.service
Operational notes¶
Use separate mailboxes for test instances. A production mailbox must not be retrieved by a test instance at the same time.
Assign separate public hostnames or carefully check the web paths so that users do not accidentally work in the test system.
Back up and update each instance separately.
Before every update, check the path, instance name, service, and database name displayed by the updater.
Never copy
var/secure/security.keybetween independent instances. The key belongs exclusively to its installation.