General Remarks

All actions described below are executed as root.


Product Home Page:

User Manual:

Knowledge Base:


System Setup

Additional Packages

The software had been installed on a CentOS 6.4 LAMP server, so most packages and modules had been there already. The only missing package had to be added with:

yum install php-soap


By default, we include the IP addresses of virtual hosts in /etc/hosts:

# insert: web-shop-a

System-wide Installation of ionCube

Download and install ionCube

# as root
cd ~
mkdir -p installers
cd installers
tar -xzf ioncube_loaders_lin_x86-64.tar.gz
# copy all modules - at a minimum it should be
cp ~/installers/ioncube/ioncube_loader_lin_*.so /usr/lib64/php/modules/

Add ionCube to the PHP configuration

vi /etc/php.d/20ioncube.ini
### insert: ###
zend_extension = /usr/lib64/php/modules/

Apache Setup

On our web servers we keep all project related files in one directory; the configuration files are referenced in one "site-includes.conf" which is included by the Apache main configuration file. In other installation, the project configuration might be stored in /etc/httpd/conf.d.

vi /etc/httpd/conf/site-includes.conf
### insert: ###
Include /server/projects/gutzmann/

Now the project configuration file has to be created:

mkdir -p /server/projects/gutzmann/
vi /server/projects/gutzmann/
### insert: ###
<Virtualhost *:80>
        DocumentRoot /server/projects/gutzmann/
        <Directory "/server/projects/gutzmann/">
                Options FollowSymLinks
                AllowOverride All
                Order allow,deny
                Allow from all

Finally the htdocs directory references in the conf file has to be created:

mkdir -p /server/projects/gutzmann/

Install and Configure xtCommerce


Please check for more recent version of xtCommerce at

cd ~/installers
wget --no-check-certificate
mv xtCommerce_4_1_00_27_08/upload/* /server/projects/gutzmann/

Install License

vi /server/projects/gutzmann/
### insert license sent by mail mail ###

Add ionCube to xtCommerce

Though ionCube has been installed already, some files are required during the xtCommerce setup process, so we simply move everything to htdocs:

mv ~/installers/ioncube /server/projects/gutzmann/

Configure mod_rewrite

For some reason, the xtCommerce setup process complains that mod_rewrite is missing, so we reference it in a new htdocs/.htaccess:

vi /server/projects/gutzmann/
### insert: ###
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/media/
RewriteCond %{REQUEST_URI} !^/extAdmin/
RewriteCond %{REQUEST_URI} !^/skin/
RewriteCond %{REQUEST_URI} !^/js/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php

Make Apache the Owner of htdocs

xtCommerce has to be able to modify files, so Apache must be made owner of htdocs and everything below it:

chown -R apache /server/projects/gutzmann/

Apache Restart

Now everything has been set up as far as Apache is concerned, so we can check the configuration and relaunch the HTTPD process:

service httpd configtest
### only if no errors are found: ###
service httpd graceful

MySQL Setup

xtCommerce requires a dedicated mySQL database (schema). Use phpMyAdmin, the command line tool of any other means to set up a new schema; you should also add a dadabase user with full access rights to the new schema. In phpMyAdmin you can add a new user for localhost and tick the option "Create database with same name and grant all privileges".

Gutzmann internal: Record user/password details in our common password repository.

xtCommerce Setup


In a first step, make sure that ionCube is working:


Now launch the xtCommerce setup:

The first step will complain that ionCube has not been set up. Just click the "check" link at the bottom, and the process will continue.

At a later step, you may see that "PHP SOAP Library (for BillSafe Plugin)" is not working. You can safely ignore it at this stage.

Set Strong admin Password

xtCommerce creates an admin user with a rather weak password. As soon as the setup is finished, you should open the admin page and set a safe password:

-> Settings (Einstellungen) -> Admin Rights (Adminrechte) -> Admin User (Admin Benutzer) -> edit "admin"

Gutzmann internal: Record user/password details in our common password repository.

Re-check the Installation Status

The SOAP module should be shown as OK now.

Block access to xtInstaller

When you launch the shop page, you will see a warning that xtInstaller and xtUpdate should be removed. The latter doesn't exist in a fresh installation. Instead of removing it, move it to a directory Apache has no access to:

mv /server/projects/gutzmann/ /server/projects/gutzmann/
  • No labels