GCN Package – Debian 7 Wheezy Linux

1 Installation

Run the installer. This installer has been written for Debian Wheezy.


  cd package
  ./install.debian.sh

The package installer script will automatically perform the following actions:

  • Installing thirdparty dependencies like MySQL, Apache webserver and php.
  • Creation of the node_utf8 cms database
  • Creation of the additional contentrepository database
  • Setup of a dummy site configuration in your apache webserver
  • Moving /Node into place

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 127.0.0.1 -P 42006 -p node_utf8 > /Node/tmp/pre-update-node_utf8.sql
  mysqldump -u root -h 127.0.0.1 -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 Distribution preparations

Install various tools and services that are needed for the migration.


  apt-get install less vim curl tar sed psmisc file pwgen cron php5 php5-mysql apache2 mysql-client-5.5 php5-curl php5-gd php5-imagick php-apc php5-imap php5-ldap locales libapache2-mod-php5 imagemagick

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


  apt-get install mysql-server-5.5

2.7 Database migration


  # Create SQL Dump and delete old mysql installation
  mysqldump -u root -h localhost -P 42006 -p node_utf8 > /Node/tmp/node_utf8-postupdate.sql
  mysqldump -u root -h localhost -P 42006 -p contentrepository > /Node/tmp/cr-postupdate.sql
  /Node/bin/nodectl stop
  rm -rf /Node/mysql*

  # Update MySQL Server configuration
  cp ${PACKAGEDIR}/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.8 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.9 Package Apache webserver migration

Install and configure the Apache webserver.


  # Copy contentnode site to apache sites directory
  cp -a ${PACKAGEDIR}/dist/debian/contentnode /etc/apache2/sites-available

  # Edit the site configuration and update the cms hostname
  vi /etc/apache2/sites-available/contentnode

  # Disable the default site and enable contentnode site
  a2dissite default
  a2ensite contentnode

  # Add new apache vhosts inclusion files from the package. 
  # These files are being included by the apache2 contentnode site configuration.
  cp -ra ${PACKAGEDIR}/Node/etc/apache /Node/etc

  # Install the custom php configuration
  cp ${PACKAGEDIR}/dist/php/gtx_gcn_custom.ini /etc/php5/conf.d

  # Enable various needed php modules
  a2enmod dav dav_fs dav_lock rewrite proxy_ajp
  
  # Reload the apache configuration after the additional steps have been completed
  service apache2 restart

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.


  # Add sudo settings
  echo "www-data  ALL=(node)NOPASSWD: ALL" > /etc/sudoers.d/gtx_contentnode
  chmod 440 /etc/sudoers.d/gtx_contentnode

  # Set permissions
  usermod -a -G node www-data
  usermod -G www-data node
  cp ${PACKAGEDIR}/Node/dist_setperm.sh /Node/
  /Node/dist_setperm.sh
  service apache2 restart