GCN Package – SuSE Linux Enterprise Server (>= 11 SP3)

1 Installation

1.1 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.2 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.3 Apache webserver installation and configuration


  # Apache & needed modules
  zypper install apache2 apache2-mod_jk 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

  # MySQL Client
  zypper install mysql-client

  cp ${PACKAGEDIR}/dist/sles/contentnode.conf /etc/apache2/vhosts.d/
  a2enmod mod_jk
  a2enmod dav
  a2enmod dav_fs
  a2enmod dav_lock
  a2enmod rewrite

  # Add mod_jk configuration
  cp ${PACKAGEDIR}/dist/sles/mod_jk.conf /etc/apache2/conf.d/

  # 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.4 Configure Firewall


  sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2
  sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2-ssl

  rcSuSEfirewall2 restart

1.5 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.6 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.7 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 5.16.0

This section will list a step by step guide to migrate your Gentics Content.Node installation to 5.16.0.

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

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

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


  # Update the jk configuration
  cp ${PACKAGEDIR}/Node/etc/tomcat/workers.properties /Node/etc/tomcat/

  # 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.

  cp ${PACKAGEDIR}/Node/dist_setperm.sh /Node/