1 Installation
1.1 Download GCN
Download and extract the GCN .tar.gz archive. Set the environment variable PACKAGEDIR to use the commands in this guide:
cd /var/tmp tar xfvz contentnode-package-5.20.0.tar.gz export PACKAGEDIR=/var/tmp/package
1.2 MySQL Server Installation
Download and install the latest compatible SuSE Linux Enterprise Server – MySQL 5.6.x package or use zypper to install MySQL Server 5.5. We suggest the installation or MySQL Server 5.6+.
zypper install mysql cp ${PACKAGEDIR}/dist/mysql/gentics_custom.cnf /etc/mysql /etc/init.d/mysql restart
1.3 Install additional binary dependencies
Install ImageMagick by fetching the opensuse package. You may also download the sources and compile the package yourself.
wget {http://download.opensuse.org/repositories/home://mayflower/SLE_11_SP3/x86_64/ImageMagick-6.8.7.6-1.1.x86_64.rpm,http://download.opensuse.org/repositories/home://mayflower/SLE_11_SP3/x86_64/libMagickCore-6_Q16-1-6.8.7.6-1.1.x86_64.rpm,http://download.opensuse.org/repositories/home://mayflower/SLE_11_SP3/x86_64/libMagickWand-6_Q16-1-6.8.7.6-1.1.x86_64.rpm} rpm -i ImageMagick-6.8.7.6-1.1.x86_64.rpm libMagickCore-6_Q16-1-6.8.7.6-1.1.x86_64.rpm libMagickWand-6_Q16-1-6.8.7.6-1.1.x86_64.rpm
zypper install wget curl sed psmisc
1.4 Apache webserver installation and configuration
# Apache & needed modules zypper install apache2 apache2-mod_php53 # PHP 5.3 zypper install php53 php53-curl php53-devel php53-pear php53-mysql php53-zlib php53-zip php53-mbstring php53-gd php53-openssl php53-APC php53-ldap php53-imap # MySQL Client zypper install mysql-client cp ${PACKAGEDIR}/dist/sles/contentnode.conf /etc/apache2/vhosts.d/ a2enmod proxy a2enmod proxy_ajp a2enmod dav a2enmod dav_fs a2enmod dav_lock a2enmod rewrite # Overwrite default server configuration echo "Include /etc/apache2/conf.d/*.conf" > /etc/apache2/default-server.conf cp ${PACKAGEDIR}/dist/php/gtx_gcn_custom.ini /etc/php5/conf.d # Set your timezone in the gtx_gcn_custom.ini (default: Europe/Vienna)
1.5 Configure Firewall
sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2 sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2-ssl rcSuSEfirewall2 restart
1.6 Package setup
# Move package files into place - This step must be omitted when doing a migration mv ${PACKAGEDIR}/Node /opt ln -s /opt/Node/ /Node
1.7 Java setup
Download the official Java SE Development Kit 8 rpm.
rpm -i jdk-8u25-linux-x64.rpm ln -s /usr/java/default /Node/java
Instead of creating the symlink in the above step, you can also correctly configure the variable JAVA_HOME to point to a system-wide installation of Java.
1.8 Filesystem permission setup
# Creation of mandatory groups and permissions groupadd node useradd -d /Node -g node node usermod -G node wwwrun usermod -G www node /Node/dist_setperm.sh # Add this sudo rule to your sudoers file. This allows the apache to execute processes with the node user. visudo # wwwrun ALL=(node)NOPASSWD: ALL
# Restart your apache /etc/init.d/apache2 restart
1.9 Database setup and package configuration
# 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 < ${PACKAGEDIR}/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 < ${PACKAGEDIR}/dumps/contentrepository.sql # 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 # Configure database settings vi /Node/etc/conf.d/node.db.conf # Example # $SETTINGS["server"] = "localhost:3306:/var/lib/mysql/mysql.sock"; # $SETTINGS["login"] = "node_cms"; # $SETTINGS["pw"] = "YOUR_PASSWORD"; # Start tomcat & apache /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
2 Migrating to the new package (introduced with 5.16.0)
This section will list a step by step guide to migrate your Gentics Content.Node installation to the new GCN package structure introduced in 5.16.0. After this migration, GCN will use the system distribution Apache and PHP.
Instead of migrating you can also do a new GCN 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 GCN 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)
mysqldump -u root -h localhost -P 42006 -p node_utf8 > /Node/tmp/pre-update-node_utf8.sql mysqldump -u root -h localhost -P 42006 -p contentrepository > /Node/tmp/pre-update-cr.sql /Node/bin/nodectl stop cp -ra /Node /Node.pre-update
2.2 Update Gentics Content.Node
Update your Gentics Content.Node 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 GCN database user is stored in various stored procedured and triggers.
Please remove these procedures and triggers when you decide to change the used GCN database username.
We highly recommend to host the MySQL Server for the Gentics Content.Node installation on the same system as GCN is running on.
It is advised to update the database settings (/etc/mysql) and restart the server before starting the MySQL migration.
2.6 Database migration
# Create SQL Dump and delete old mysql installation mysqldump -u root -h 127.0.0.1 -P 42006 -p node_utf8 > /Node/tmp/node_utf8-postupdate.sql mysqldump -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/http/httpd* rm -rf /Node/var/http/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 Apache webserver installation and configuration 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/