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 libapache2-mod-jk 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 ${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.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 # Update the jk configuration cp ${PACKAGEDIR}/Node/etc/tomcat/workers.properties /Node/etc/tomcat/ # 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 # Change the used workers file in the mod_jk configuration to use /Node/etc/tomcat/workers.properties vi /etc/apache2/mods-enabled/jk.conf # Install the custom php configuration cp ${PACKAGEDIR}/dist/php/gtx_gcn_custom.ini /etc/php5/conf.d # Enable various needed apache modules a2enmod dav dav_fs dav_lock rewrite # 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.
# 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