1 Installation
1.1 MariaDB SQL Server Installation
You can either install Oracle MySQL or MariaDB (prefered). Please refer to the compatibility list and Red Hat Enterprise Linux 6 / Oracle Linux 6 – MySQL 5.6.x package if you want to install Oracle MySQL. This guide will show how to install mariadb which is supported by RedHat.
yum install mariadb-server service mariadb start systemctl enable mariadb.service # connect to the mysql and change your rootpw mysql -u root -h localhost -P 3306 # SET PASSWORD = PASSWORD('YOUR_NEW_ROOTPW'); # DROP DATABASE test; # FLUSH PRIVILEGES; cp ${PACKAGEDIR}/dist/mysql/gentics_custom.cnf /etc/my.cnf.d/ # Restart the Mysql Server service mariadb restart
1.2 Apache Webserver Installation
You can view the available Redhat repositories with yum -v repolist
# Add optional packages subscription-manager repos --enable=rhel-6-server-optional-rpms yum update # Install various dependencies yum install httpd php php-cli php-mysql php-gd php-posix php-ldap php-imap sed curl wget ImageMagick mysql sudo php-mbstring # Enable the httpd systemctl enable httpd.service # Change configuration order to enable correct handling of php extensions mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/015-php.conf # Add vhost configuration to /etc/httpd/conf.d/020-contentnode.conf cp ${PACKAGEDIR}/dist/rhel/020-contentnode.conf /etc/httpd/conf.d/ # Set custom settings for php cp ${PACKAGEDIR}/dist/php/gtx_gcn_custom.ini /etc/php.d/ chmod +r /etc/php.d/gtx_gcn_custom.ini # Set your timezone in the gtx_gcn_custom.ini (default: Europe/Vienna)
1.3 Configure SELinux
Currently SELinux is not fully supported. Please disable SELinux on your server. The features autoupdate and import/export will not work properly when selinux is enabled.
Edit the /etc/sysconfig/selinux file and set the SELINUX flag.
# Disable SELinux SELINUX=disabled
Run:
setenforce 0
1.4 Configure Firewall
Allow external access to port 80 for http
firewall-cmd --add-service http --permanent
1.5 Package Setup
# Move package into place - This step must be omitted when doing a migration mv ${PACKAGEDIR}/Node /opt ln -s /opt/Node/ /Node
1.6 Java setup
OpenJDK 8:
subscription-manager repos --enable rhel-7-server-optional-rpms yum install java-1.8.0-openjdk-devel alternatives --config javac alternatives --config java
or alternatively, download the Oracle Java SE Development Kit 8 rpm:
rpm -i jdk-8u111-linux-x64.rpm ln -s /usr/java/default /Node/java
Please verify that “java -version” prints the right Java version and that the command “jar” (part of JDK) exists in PATH.
1.7 Set the license key
# Add your license key to /Node/etc/tomcat/gentics/license.key echo "1111-2222-3333-4444-5555-6666-7777-8888" > /Node/etc/tomcat/gentics/license.key
1.8 Filesystem permission setup
# Creation of mandatory groups and permissions groupadd node useradd -d /Node -g node node usermod -a -G node apache usermod -G apache node /Node/dist_setperm.sh # Add this sudo rule to your sudoers file. This allows the apache to execute processes with the node user. echo 'Defaults:apache !requiretty' > /etc/sudoers.d/gtx_contentnode echo "apache ALL=(node)NOPASSWD: ALL" >> /etc/sudoers.d/gtx_contentnode chmod 0440 /etc/sudoers.d/gtx_contentnode
# Restart your apache service httpd restart
1.9 Database setup and package configuration
Run the following shell commands. Remove the -p option if there is no password set for the root user.
# Setup the database echo "CREATE DATABASE node_utf8" | mysql -u root -p echo "GRANT ALL PRIVILEGES ON node_utf8.* TO 'node_cms'@'localhost' identified by 'YOUR_PASSWORD'" | mysql -u root -p mysql -u root -p node_utf8 < /Node/etc/dumps/node_utf8.sql echo "CREATE DATABASE contentrepository" | mysql -u root -p echo "GRANT ALL PRIVILEGES ON contentrepository.* TO 'node_cr'@'localhost' identified by 'YOUR_PASSWORD'" | mysql -u root -p mysql -u root -p contentrepository < /Node/etc/dumps/contentrepository.sql # Configure database settings # Edit the /Node/etc/conf.d/node.db.conf file and update the following settings. # $SETTINGS["server"] = "localhost:3306:/var/lib/mysql/mysql.sock"; # $SETTINGS["login"] = "node_cms"; # $SETTINGS["pw"] = "YOUR_PASSWORD"; # Start the Tomcat /Node/bin/nodectl start # Add cronjob task for node user crontab -e -u node # * * * * * /Node/bin/scheduler.sh >> /Node/node/log/scheduler.log 2>&1
You maybe also need to configure SSL properties in the $SETTINGS[“jdbcparameters”] setting. Read the MySQL SSL documentation for more information.
1.10 Startup script
cp ${PACKAGEDIR}/dist/rhel/genticscms.service /etc/systemd/system/genticscms.service systemctl enable genticscms
1.11 Cleanup
# Remove no longer needed files rm -rf ${PACKAGEDIR}
1.12 Login
A password for the node CMS user will be generated automatically. See: How can i set the password of the node CMS user?
1.13 Finalizing
Please also check the final recommendations and suggestions for additional information.
2 Migrating to the new package (introduced with 5.16.0)
This section will list a step by step guide to migrate your Gentics CMS installation to the new Gentics CMS package structure introduced in 5.16.0. After this migration, Gentics CMS will use the system distribution Apache and PHP.
Instead of migrating you can also do a new Gentics CMS installation and then move the database, the /Node/node/content/dbfiles and the node configuration, however this way is not documented at the moment.
The MySQL steps are only necessary if you are still using the MySQL-server from the old Gentics CMS package inside /Node, running on port 42006. The minimum MySQL server version should be 5.5.
2.1 Backup
Create a backup of your package installation and MySQL database (/Node directory)
sudo -u node php /Node/.node/setup-database.php mysqldump --max_allowed_packet=512M -u root -h localhost -P 42006 -p contentrepository > /Node/etc/dumps/pre-update-cr.sql /Node/bin/nodectl stop cp -ra /Node /Node.pre-update
2.2 Update Gentics CMS
Update your Gentics CMS installation to 5.16.0 or newer.
2.3 Distribution update
Make sure your distribution is updated at least to the earliest supported version.
2.4 Download contentnode-package
- Download the latest package .tar.gz file (see: Downloads) for the version you want to update to.
- Extract the file in a temporary location (e.g: /var/tmp/).
We’ll use some files form the archive to augment the existing installation.
cd /var/tmp tar xfvz contentnode-package-5.16.0.tar.gz export PACKAGEDIR=/var/tmp/package
2.5 Package MySQL migration
Please note that the package MySQL Server will no longer be supported. Install the MySQL database server according to the system specific installation. Dump your MySQL databases and migrate the data to the distribution MySQL Server. The Gentics CMS database user is stored in various stored procedured and triggers.
Please remove these procedures and triggers when the username and or the used connection ip / hostname changes because those elements contain a reference to the previously used login.
We highly recommend to host the MySQL Server for the Gentics CMS installation on the same system as Gentics CMS is running on.
It is advised to update the database settings (/etc/mysql) and restart the server before starting the MySQL migration.
See MariaDB SQL Server Installation for the MariaDB server installation steps
2.6 Database migration
Run the following shell commands. Remove the -p option if there is no password set for the root user.
# Create SQL Dump and delete old mysql installation mysqldump --max_allowed_packet=512M -u root -h 127.0.0.1 -P 42006 -p node_utf8 > /Node/tmp/node_utf8-postupdate.sql mysqldump --max_allowed_packet=512M -u root -h 127.0.0.1 -P 42006 -p contentrepository > /Node/tmp/cr-postupdate.sql /Node/bin/nodectl stop rm -rf /Node/mysql* # Update MySQL Server configuration cp ${PACKAGE}/dist/mysql/gentics_custom.cnf /etc/mysql/conf.d/ /etc/init.d/mysql restart # Create the desired users and insert the data mysql> create database node_utf8; mysql> create database contentrepository; mysql> grant all privileges on node_utf8.* to 'node_cms'@'%' identified by 'pass'; mysql> grant all privileges on contentrepository.* to 'node_cr'@'%' identified by 'pass'; mysql> flush privileges; mysql -u root -p node_utf8 < /Node/tmp/node_utf8-postupdate.sql mysql -u root -p contentrepository < /Node/tmp/cr-postupdate.sql # Update your mysql settings in your /Node/etc/node.conf (or /Node/etc/conf.d/node.db.conf) vi /Node/etc/node.conf
Please keep in mind that it might be needed to update the Content.Repository connection settings within the Gentics CMS administration area. Those settings must be updated otherwise the publishing process will fail.
2.7 Package directory migration
The following folders and files are no longer needed and can be removed.
rm -rf /Node/apache rm -rf /Node/httpd-2.2.22 rm -rf /Node/var/httpd/cgi-bin rm /Node/etc/my.cnf rm -rf /Node/etc/httpd rm /Node/etc/httpd.custom.conf rm -rf /Node/etc/mysql rm -rf /Node/etc/php rm -rf /Node/var/httpd/httpd* rm -rf /Node/var/httpd/mysql
Sanitize the /Node/bin directory.
cd /Node/bin rm -rf /Node/bin/* cp ${PACKAGEDIR}/Node/bin/nodectl . cp ${PACKAGEDIR}/Node/bin/env.sh . cp ${PACKAGEDIR}/Node/bin/scheduler.sh . cp ${PACKAGEDIR}/Node/bin/java.sh .
Please update your scheduler tasks if needed since some might use the /Node/bin/ tools (eg.: rsync)
Sanitize the /Node/lib directory.
rm -rf /Node/lib cp -ra ${PACKAGEDIR}/Node/lib /Node/lib
Customize the node.conf file.
mkdir -p /Node/etc/conf.d mv /Node/etc/node.conf /Node/etc/node.main.conf cp ${PACKAGEDIR}/Node/etc/node.conf /Node/etc/node.conf
From now on the node.conf should never be edited directly. Instead custom files should be added to the conf.d directory. The files should be grouped by functionality or feature. (e.g: conf.d/node.alohaeditor.conf, conf.d/features.conf, conf.d/node.db.conf)
2.8 Package Apache webserver migration
Install and configure the Apache webserver according to the installation steps.
2.9 Additional migration steps
# Add new apache vhosts inclusion files from the package cp -ra ${PACKAGEDIR}/Node/etc/apache /Node/etc
2.10 System changes
Remove the node_public group from the system. This group will no longer be used. When not removed the system will not be able to function correctly after the migration has been performed.
cp ${PACKAGEDIR}/Node/dist_setperm.sh /Node/