Upgrading

WICHTIG: Beim Update des TecArt-Systems über mehrere Versionen hinweg sind alle Zwischenversionen mit zu updaten.

Soll also z.B. ein Update von Version 3.4 auf 3.7 durchgeführt werden, ist zuerst die Version 3.5, danach 3.6 und dann erst Version 3.7 zu installieren.

Besonders wichtig ist hierbei das Ausführen des Setups für jede einzelne Version.

Das Auslassen der Zwischen-Versionen kann zu ungewünschten Problemen, bis hin zum Datenverlust führen.

Zuerst müssen Sie ein Backup Ihrer Datenbank crm_db erstellen. Login Sie sich dazu auf Ihren Server mit einer Linux-Konsole ein.

[root@crmsrv /]# mysqldump -u root -p crmdb --single-transaction --ignore-table='crmdb.dates_view' > /backup/crmdb.sql

Geben Sie das root-Passwort Ihres MySQL-Servers ein. Alternativ können Sie den Datenbank-Benutzer und das Passwort nutzen, das Sie für die TecArt-System Datenbank erstellt haben.

Wenn Sie die Datenbank komprimieren möchten, können Sie folgenden Befehl verwenden:

[root@crmsrv /]# gzip -9 /backup/crmdb.sql

Dann müssen Sie zu Ihrem TecArt-System Installationspfad navigieren:

[root@crmsrv /]# cd /var/www/crm

Hinweis: Der Installations-Pfad kann abweichen.

Der folgende Befehl wird die Installation packen und komprimieren:

[root@crmsrv /]# tar -cz * > /backup/crm_backup.tar.gz

Laden Sie die neueste stabile Version von Downloads. Rechtsklicken Sie auf den Link in Ihrem Browser und wählen Sie Link-Adresse kopieren. Gehen Sie danach in die Konsole und schreiben sie:

[root@crmsrv /]# cd /usr/src
[root@crmsrv /]# wget -O Crm_3.3.4383.tar.gz https://wiki.tecart.de/images/1/11/Crm_3.3.4383.tar.gz

Der Link kann abweichen hängt von der aktuellen stabilen Version ab.

Überprüfen Sie Ihre Download mit der MD5-Checksumme, welche Sie ebenfalls in Downloads finden.

[root@crmsrv /]# md5sum Crm_3.3.4383.tar.gz
5aacd14a0c93e57b52aa0d3060c322a6  Crm_3.3.4383.tar.gz

Entpacken sie das Archiv.

[root@crmsrv /]# tar -xvzf Crm_3.3.4383.tar.gz

Dann kopieren Sie den Inhalt in Ihr TecArt-System Installationsverzeichnis und überschreiben alle Ziele:

[root@crmsrv /]# cp -Rf crm_v33/* /srv/www/htdocs/crm

Ändern Sie die Zugriffsrechte auf Apache-Benutzer und Gruppe, in der Regel sind dies apache oder www-data.

[root@crmsrv /]# chown -R apache:apache /srv/www/htdocs/crm
[root@crmsrv /]# chmod -R 0700 /srv/www/htdocs/crm

Gehen Sie Anschließend mit Ihrem Browser zum TecArt-System Setup:

https://crmdev.tecart.de/setup

Loggen Sie sich ein und führen Sie das Setup aus.


Manchmal müssen Sie Ihr Backup wiederherstellen. Zuerst haben wir wieder die Installation. Löschen Sie die Installation.

[root@crmsrv /]# rm -rf /srv/www/htdocs/crm/*

Gehen Sie zu Ihrem Installationsverzeichnis.

[root@crmsrv /]# cd /srv/www/htdocs/crm

Entpacken Sie das Backup

[root@crmsrv /]# tar -xvzf /backup/crm_backup.tar.gz

Ändern Sie die Zugriffsrechte auf Apache-Benutzer und Gruppe, in der Regel sind dies apache oder www-data.

[root@crmsrv /]# chown -R apache:apache /srv/www/htdocs/crm
[root@crmsrv /]# chmod -R 0700 /srv/www/htdocs/crm

Entpacken Sie die Datenbank und spielen Sie sie zurück:

[root@crmsrv /]# gzip -d /backup/crm_db.sql.gz
[root@crmsrv /]# mysql -u root -p -D crm_db < crm_db.sql

Gehen Sie Anschließend mit Ihrem Browser zum TecArt-System Setup:

https://crmdev.tecart.de/setup

Loggen Sie sich ein und führen Sie das Setup aus.

Der folgende Abschnitt ist noch nicht vollständig und befindet sich im Aufbau!

Diese Upgrade-Methode ist weit weniger komplex und zeitintensiv, als die klassische Methode, da keine Betriebssystemupdates durchgeführt werden. Auf Grund der zahlreichen Versionssprünge und zum Teil gravierenden Änderungen in der verwendeten Software und -konfiguration, ist diese Methode sogar vorzuziehen.

Der Grundablauf gliedert sich wie folgt:

  1. Installation einer Debian 9-VM und Vorbereitung für das TecArt-CRM nach Installationsanleitung bis zum Abschnitt "Lizenzschlüssel installieren"
  2. Erstellung eines Datenbank-Backups des alten CRM
  3. Erstellung eines Backups des Datenverzeichnisses des alten CRM
  4. Übertragung des erstellten Dumps und der Daten des alten CRM in die neue VM
  5. Einspielen der Daten und des Dumps in der neuen VM
  6. Erstellen eines CRM-Benutzers für den Datenbankzugriff für das neue CRM in der neuen VM
  7. Einspielen oder Anpassen der Lizenz für das neue CRM bzw. neue VM
  8. Ausführen des CRM-Setups zum Upgrade der Datenbankstrukturen und Funktionsfähigkeit des neuen CRM-Systems

Bevor Sie mit dieser Upgrade-Methode fortfahren, müssen folgende Voraussetzungen erfüllt sein:

  • Eine funktionierende und nach der Installationsanleitung eingerichtete Virtuelle Maschine (VM) ist eingerichtet
  • Ein Übertragungsweg (SSH, rsync, Netzlaufwerk, NFS-Freigabe, Dropbox, …) zum Transfer der erstellen Daten- und Datenbankbackups vom alten CRM in die neue VM ist vorhanden
  • Je nach Methode der Lizenzübernahme: Zugriff auf die Virtualisierungssoftware und die Einstellungen der neuen VM

Schritt 1: Datenexport

Während der Erstellung des Datenexport / der Datensicherung sollten keine Benutzer im TecArt-System angemeldet sein, da sonst Änderungen, die während oder nach der Sicherung entstehen, nicht in der Sicherung vorhanden sind!

Erstellen Sie nach der Backup-Anleitung eine Sicherung der Datenbank und des CRM-Verzeichnisses und sichern Sie diese Daten auf einem (externen) Sicherungsmedium oder einer Netzwerkfreigabe. Sobald die Datenbank und das CRM-Verzeichnis kopiert wurden, muss das Datenverzeichnis gesichert werden. Hierzu bieten sich zwei Möglichkeiten an, je nach dem, welche Art Sicherung Sie bevorzugen und wie groß die Datenmenge ist.

Um den Speicherbedarf des Datenordner zu ermitteln, führen Sie bitte folgenden Befehl aus:

du -sch /data/crm
Der Befehl kann, je nach Datenmenge, unter Umständen mehrere Minuten bis zum Abschluss in Anspruch nehmen. Dafür zeigt er übersichtlich an, welche Datenmenge im Datenverzeichnis vorhanden ist. Sollte diese Datenmenge sehr gering ausfallen (< 1GB) oder auf dem Sicherungsmedium kein Linux btw. UNIX-Dateisystem (Bspw. FAT32, ExFAT, NTFS, ReFS, …) vorhanden sein, ist eine Sicherung in Form eines komprimierten Archivs anzuraten.

Zum Erstellen eines Archiv-Backups des Datenordners, wechseln Sie mit dem Befehl cd in das Datenverzeichnis und erstellen anschließend ein komprimiertes Archiv mit dem Inhalt des aktuellen Ordners:

cd /data/crm
tar -cz * > /Pfad/zum/Sicherungsmedium/oder/Backupordner/Sicherung-Datenverzeichnis.tar.gz

Alternativ sollte das Datenverzeichnis auf das Sicherungsmedium per rsync kopiert werden, um die Datenintegrität während und nach der Übertragung sicherzustellen. Per rsync können Sie das Datenverzeichnis auf ein Sicherungsmedium, aber auch direkt auf einen anderen Linuxserver kopieren. Mit diesen Befehlen erstellen Sie einen neuen Ordner auf dem Sicherungsmedium / im Backupordner und kopieren anschließend den Inhalt des Datenverzeichnisses in selbigen:

mkdir -p /Pfad/zum/Sicherungsmedium/oder/Backupordner/Sicherung-Datenverzeichnis/
rsync -av --progress /data/crm/* /Pfad/zum/Sicherungsmedium/oder/Backupordner/Sicherung-Datenverzeichnis/

Schritt 2: Datenübertragung

Sind die Sicherungen erstellt werden, müssen diese nun in die Virtuelle Maschine mit dem neuen TecArt-CRM übertragen werden. Sollten Sie die Sicherungen auf ein externes Sicherungsmedium gespeichert haben und dieses in die VM einbinden können, gestaltet sich die Datenübertragung sehr einfach und Sie können mit Schritt 3 fortfahren.

Sollten die Sicherungen noch auf dem alten Server abgelegt sein, werden diese nun in diesem Schritt aus einer Kombination der Programme SSH und rsync in die VM übertragen.

Schritt 3: Einspielen der Daten

Upgrade-Anleitungen fuer aeltere Versionen finden Sie im Archiv

Die Upgrade-Anleitung für die TecArt-Software in der Version 4.7 kann derzeit noch fehlende Passagen oder fehlende Konfigurationen enthalten, da es nicht möglich ist im Voraus alle möglichen Testszenarien abzudecken. Wir empfehlen daher, falls die TecArt-Software in einer virtuellen Umgebung betrieben wird, im Zweifelsfall eine Neuinstallation in einer neuen VM anhand der Installationsanleitung durchzuführen und anschließend die Daten von der alten in die neue VM zu importieren. Siehe hierzu den Abschnitt "Neuinstallation mit Datenübernahme"

Bitte beachten Sie, dass es sich beim Update auf die Version 4.7 um ein größeres Update handelt und insbesondere große Teile des unterliegenden Betriebssystems aktualisiert werden. Sie sollten vor dem Update auf jeden Fall ein vollständiges Backup des Servers erstellt haben. Wurden durch Sie außerdem zusätzliche Programme installiert oder Konfigurationen geändert, beachten Sie bitte, dass es vorkommen kann, dass diese Konfigurationsänderungen benötigen. Bei der untenstehenden Upgrade-Anleitung werden alle Konfigurationen auf Ihre Standardeinstellungen zurückgesetzt und anschließend an die neuen Standards angepasst, um ein reibungsloses Update zu ermöglichen.

Bei Einsatz von VMWare ESXi Version kleiner als 6.5u1 ist der Adaptertyp der Netzwerkschnittstellen zwingend auf E1000(e) zu stellen, da mit dem standardmäßigen Einsatz von vmnext3 die VM im Betrieb von Debian 9 einfriert! Siehe hierzu: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864642

Betriebssystem aktualisieren

Upgrade auf Debian 8

  • mkdir -p /data/backup/ /data/tmp/
  • mysqldump --single-transaction --ignore-table='crmdb.dates_view' -p crmdb > /data/backup/crmdb.sql
  • sed -ie 's/wheezy/jessie/ig' /etc/apt/sources.list
  • mv /etc/apt/sources.list.d/tecart.list{,.old}
  • rm /usr/sbin/policy-rc.d
  • export DEBIAN_FRONTEND=noninteractive
  • echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections
  • a2dismod php5
  • cp -r /etc/apache2{,.dpkg-deb7}
  • apt-get purge apt-listchanges tecart-essentials-server-4.6 ytnef apache2* php5*
  • apt-get autoremove
  • apt-get update && apt-get -fyu -o Dpkg::Options::="--force-confnew" upgrade
  • rm /var/lib/mysql/ib_logfile*
  • apt-get -fyu --force-yes -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confdef" dist-upgrade
  • apt-get -fyu --force-yes -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confdef" dist-upgrade
  • apt-get autoremove
  • [ -d /sys/firmware/efi ] && mount /boot/efi
  • grub-install /dev/$(lsblk | grep disk| awk '{print $1}')
  • update-grub
  • reboot

Upgrade auf Debian 9

Mit der neuen Debian Version hat sich auch die Konfiguration des DNS-Servers geändert. DNS Server wird nicht mehr direkt in die /etc/resolv.conf eingetragen, sondern mit dem Vorsatz "dns-nameservers" als Teil der Konfiguration eines Netzwerkinterfaces unter /etc/network/interfaces. Nach dem Upgrade ist die /etc/resolv.conf leer und DNS Anfragen können nicht beantwortet werden. Siehe hierzu: https://wiki.debian.org/NetworkConfiguration#The_resolvconf_program

  • sed -ie 's/jessie/stretch/ig' /etc/apt/sources.list
  • export DEBIAN_FRONTEND=noninteractive
  • echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections
  • apt-get update && apt-get -fyu -o Dpkg::Options::="--force-confnew" upgrade
  • apt-get -fyu --force-yes -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confdef" dist-upgrade
  • apt-get -fyu --force-yes -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confdef" dist-upgrade
  • apt-get autoremove
  • reboot

Upgrade TecArt Software

  • echo 'deb http://repo.tecart.de/apt/debian/ stretch main' > /etc/apt/sources.list.d/tecart.list
  • rm /etc/apt/sources.list.d/tecart.list.old
  • apt update
  • apt remove --purge ytnef apache2
  • apt autoremove
  • apt install apache2
  • apt install -fyu --force-yes -o 'DPkg::options::=--force-confmiss' -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confdef" --allow-downgrades libytnef0=1.5-6+deb8u1 tecart-essentials-server-4.7

Apache2 Konfigurieren

Timeout 60
MaxKeepAliveRequests 0
KeepAliveTimeout 60
 
StartServers             10
MinSpareServers           5
MaxSpareServers          10
MaxConnectionsPerChild    0

# Hauptspeicher in MB / 50 MB ( z.B. 16384 / 50 = 327 )
MaxRequestWorkers       327
# Hauptspeicher in MB / 50 MB ( z.B. 16384 / 50 = 327 )
ServerLimit             327

<VirtualHost *:80>
        ServerAdmin webmaster@crmsrv
 
        DocumentRoot /var/www/crm/
        <Directory /var/www/crm/>
                Options -Indexes -FollowSymLinks -MultiViews
                AllowOverride None
                Require all granted
        </Directory>
 
        <Directory /var/www/crm/data>
            Order allow,deny
            Deny from all
        </Directory>

        Alias /Microsoft-Server-ActiveSync /var/www/crm/zpush/index.php
        AliasMatch (?i)/Autodiscover/Autodiscover.xml /var/www/crm/zpush/autodiscover/autodiscover.php
 
        ErrorLog ${APACHE_LOG_DIR}/error.log
 
        LogLevel error
 
        #Enable if you wish logging, Disable if you want performance
        #CustomLog ${APACHE_LOG_DIR}/access.log combined
 
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
        ServerAdmin webmaster@crmsrv
 
        DocumentRoot /var/www/crm/
        <Directory /var/www/crm/>
                Options -Indexes -FollowSymLinks -MultiViews
                AllowOverride None
                Require all granted
        </Directory>
 
        <Directory /var/www/crm/data>
            Order allow,deny
            Deny from all
        </Directory>
 
        Alias /Microsoft-Server-ActiveSync /var/www/crm/zpush/index.php
        AliasMatch (?i)/Autodiscover/Autodiscover.xml /var/www/crm/zpush/autodiscover/autodiscover.php
         
        ErrorLog /var/log/apache2/error.log
        LogLevel error
 
        SSLEngine on
 
        SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
 
        SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
        SSLProtocol All -SSLv2 -SSLv3
        SSLHonorCipherOrder On
        Header always set Strict-Transport-Security "max-age=63072000"
        #Header always set X-Frame-Options DENY
        Header always set X-Content-Type-Options nosniff
        # Requires Apache >= 2.4
        SSLCompression off 
        # Requires Apache >= 2.4.11
        SSLSessionTickets Off
 
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
 
</VirtualHost>
</IfModule>

  • a2dismod -f auth_basic authn_file authz_groupfile authz_user autoindex cgi deflate env negotiation reqtimeout setenvif rewrite status
  • a2enmod php7.1 ldap ssl headers socache_shmcb
  • a2enconf tecart
  • a2ensite default-ssl
  • sed -i -e 's:ServerSignature On:ServerSignature Off:' -e 's:ServerTokens OS:ServerTokens Prod:' /etc/apache2/conf-enabled/security.conf
  • service apache2 restart

MySQL Konfigurieren

Bitte beachten Sie die empfohlenen Angaben in den Kommentaren und passen Sie Ihre Parameter entsprechend an:

[client]
default-character-set = utf8
 
[mysqld]
tmpdir = /data/tmp/
character-set-server  = utf8
collation-server      = utf8_general_ci
 
skip-external-locking
default_storage_engine = InnoDB

key_buffer_size        = 1M
max_allowed_packet     = 64M
table_cache            = 1024
sort_buffer_size       = 4M
net_buffer_length      = 8K
read_buffer_size       = 4M
read_rnd_buffer_size   = 4M
thread_cache_size      = 300                # etwa 1 pro aktiver, 
                                            # gleichzeitiger Nutzer
 
max_connections        = 500                # Max. Verbindungen, etwa 1 - 2 je
                                            # aktiver Nutzer; etwa 5 bei Verwendung
                                            # persistenter Verbindungen
open_files_limit       = 16384
tmp_table_size         = 64M
max_heap_table_size    = 64M
table_definition_cache = 20480
 
connect_timeout        = 30
wait_timeout           = 300
max_connect_errors     = 10000000
 
join_buffer_size       = 1M
 
# ACHTUNG: Bei grossen Lasten sollte der Query Cache mit 
# 'query_cache_size = 0' deaktiviert werden
query_cache_limit      = 4M                 # Max. Grösse eines gecacheten 
                                            # Queries
query_cache_size       = 128M               # Gesamtgrösse des Querycaches
                                            # ~5 - 10% des RAM, maximal 128M
query_cache_type       = 1
query_prealloc_size    = 16384
query_alloc_block_size = 16384

# INNODB PERFORMANCE
innodb_buffer_pool_size         = 256M      # Maximal ~40% des RAM
innodb_log_buffer_size          = 8M
innodb_log_file_size            = 256M      # Nach Änderung dieses Wertes
                                            # müssen die alten logfiles 
                                            # gelöscht werden
innodb_log_files_in_group       = 2
innodb_flush_log_at_trx_commit  = 2
innodb_flush_method             = O_DIRECT
innodb_file_per_table                       # Erstellt pro Tabelle eine Datei
                                            # anstatt alles in einer grossen 
                                            # Datei zu speichern
innodb_thread_concurrency       = 8
#innodb_adaptive_flushing_method = keep_average
#innodb_flush_neighbor_pages     = 0
 
long_query_time                = 2
#log_queries_not_using_indexes = 1
 
old_passwords = false
 
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 3
max_binlog_size         = 1024M
 
low_priority_updates    = 1
 
[mysqldump]
quick
max_allowed_packet = 64M
 
[mysql]
no-auto-rehash
 
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
 
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
 
[mysqlhotcopy]
interactive-timeout 

Den Schreibzugriff der eben erstellten Konfigurationsdatei beschränken und anschließend den MariaDB-Server neustarten:

  • mkdir -p /data/tmp/
  • chown -R mysql.mysql /data/tmp/
  • chmod 755 /etc/mysql/mariadb.conf.d/tecart.cnf
  • apt install -fyu -o 'DPkg::options::=--force-confmiss' --reinstall mariadb-server
  • service mysql restart

Memcache-Daemon konfigurieren

systemd-Einstellungen

Seit April 2018 ist die systemctl Einstellung nicht mehr notwendig und kann uebersprungen werden, wenn memcached >=1.5.6-1-tec2 und die tecart-essentials-server-4.8 >=1:6.0.0-1 installiert sind. Die Version kann mit dpkg -l | grep -E 'ii (memcached|tecart-essentials-server-4.)' abgefragt werden. Die Einstellung wird ueber das tecart-essentials-server-4.8 Paket geliefert, dieses kann ueber ein bestehendes tecart-essentials-server-4.7 Paket installiert werden.

[Service]
ExecStartPre=/bin/mkdir -p /run/memcached
ExecStartPre=/bin/chown www-data.www-data /run/memcached

Memcached konfigurieren und neu starten

  • echo -en "-d\n-m $(($(free -m | grep Mem | awk '{print $2};' )/32*4))\n-u www-data\n-s /run/memcached/memcached.sock" > /etc/memcached.conf
  • service memcached restart

Konfiguration anpassen

  • sed -i -e 's:/etc/php5/[a-z0-9]*/php.ini:/etc/php/7.1/cli/php.ini:' -e 's|/tmp/memcached|/run/memcached/memcached|' /var/www/crm/config/conf.inc.php

System installieren

Pakete aktualisieren

[root@crmsrv /]# apt-get update
[root@crmsrv /]# apt-get dist-upgrade

Apache2 Konfigurieren

<VirtualHost *:80>
        ServerAdmin webmaster@crmsrv
 
        DocumentRoot /var/www/crm/
        <Directory /var/www/crm/>
                Options -Indexes -FollowSymLinks -MultiViews
                AllowOverride None
                Require all granted
        </Directory>
 
        <Directory /var/www/crm/data>
            Order allow,deny
            Deny from all
        </Directory>
  
        <Directory /var/www/crm/upload>
            php_value upload_max_filesize 1M
            php_value post_max_size 1M
        </Directory>

        Alias /Microsoft-Server-ActiveSync /var/www/crm/zpush/index.php
        AliasMatch (?i)/Autodiscover/Autodiscover.xml /var/www/crm/zpush/autodiscover/autodiscover.php
 
        ErrorLog ${APACHE_LOG_DIR}/error.log
 
        LogLevel error
 
        #Enable if you wish logging, Disable if you want performance
        #CustomLog ${APACHE_LOG_DIR}/access.log combined
 
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
        ServerAdmin webmaster@crmsrv
 
        DocumentRoot /var/www/crm/
        <Directory /var/www/crm/>
                Options -Indexes -FollowSymLinks -MultiViews
                AllowOverride None
                Require all granted
        </Directory>
 
        <Directory /var/www/crm/data>
            Order allow,deny
            Deny from all
        </Directory>
  
        <Directory /var/www/crm/upload>
            php_value upload_max_filesize 1M
            php_value post_max_size 1M
        </Directory>

        Alias /Microsoft-Server-ActiveSync /var/www/crm/zpush/index.php
        AliasMatch (?i)/Autodiscover/Autodiscover.xml /var/www/crm/zpush/autodiscover/autodiscover.php
         
        ErrorLog /var/log/apache2/error.log
        LogLevel error
 
        SSLEngine on
 
        SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
 
        SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
        SSLProtocol All -SSLv2 -SSLv3
        SSLHonorCipherOrder On
        Header always set Strict-Transport-Security "max-age=63072000"
        #Header always set X-Frame-Options DENY
        Header always set X-Content-Type-Options nosniff
        # Requires Apache >= 2.4
        SSLCompression off 
        # Requires Apache >= 2.4.11
        SSLSessionTickets Off
 
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
 
</VirtualHost>
</IfModule>

memcached Konfigurieren

Seit April 2018 ist diese Einstellung nicht mehr notwendig und kann uebersprungen werden, wenn memcached >=1.5.6-1-tec2 und die tecart-essentials-server-4.8 >=1:6.0.0-1 installiert sind. Die Version kann mit

dpkg -l | grep -E 'ii  (memcached|tecart-essentials-server-4.)'

abgefragt werden

[Service]
ExecStartPre=/usr/bin/install -d -g www-data -o www-data -m 1755 -v /run/memcached
ExecStopPost=/bin/rm -rf /run/memcached

System installieren

  • cd /usr/src
  • tar -C /var/www/crm/ --strip-components 1 -pxf crm_v48_71.tar.gz
  • chown www-data.www-data -R /var/www/crm
  • chmod +x /var/www/crm/setup/setup
  • cd /var/www/crm/setup
  • sudo -u www-data ./setup

Pakete aktualisieren

[root@crmsrv /]# apt update
[root@crmsrv /]# apt dist-upgrade
[root@crmsrv /]# apt install -y --allow-downgrades libytnef0=1.5-6+deb8u1 tecart-essentials-server-4.9

System installieren

  • cd /usr/src
  • tar -C /var/www/crm/ --strip-components 1 -pxf crm_v49_71.tar.gz
  • chown www-data.www-data -R /var/www/crm
  • chmod +x /var/www/crm/setup/setup
  • cd /var/www/crm/setup
  • sudo -u www-data ./setup

Wird der Server fuer mehr als 50 User konfiguriert, muss in der /etc/memcached.conf noch ein -c [INT] angegeben werden, wobei [INT] ein Integer Wert ist, der ca. das 15fache der maximalen gleichzeitigen Apache2-Verbindungen darstellt.

Pakete aktualisieren

[root@crmsrv /]# apt update
[root@crmsrv /]# apt dist-upgrade
[root@crmsrv /]# apt install -y tecart-essentials-server-4.10

System installieren

  • cd /usr/src
  • tar -C /var/www/crm/ --strip-components 1 -pxf crm_v410_71.tar.gz
  • chown www-data.www-data -R /var/www/crm
  • chmod +x /var/www/crm/setup/setup
  • cd /var/www/crm/setup
  • sudo -u www-data ./setup

Konflikte beim Debian-Upgrade

Verhalten: Ein apt update zeigt aktualisierbare Pakete an, ein apt dist-upgrade aber aktualisiert keine Pakete und welche in apt list --upgradeable angezeigt werden. Mit einem apt install [Paketname](wobei Paketname der Name des Pakets aus der Ausgabe von apt list --upgradeable ist) kann dabei der Konflikt angezeigt werden.

root@crmsrv:~# apt update
Holen:1 http://security.debian.org/debian-security stretch/updates InRelease [94,3 kB]
OK:2 https://repo.tecart.de/apt/debian stretch InRelease               
Ign:3 http://ftp.de.debian.org/debian stretch InRelease
Holen:4 http://ftp.de.debian.org/debian stretch-updates InRelease [91,0 kB]
OK:5 http://ftp.de.debian.org/debian stretch Release
Es wurden 185 kB in 0 s geholt (208 kB/s).
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Aktualisierung für 1 Paket verfügbar. Führen Sie »apt list --upgradable« aus, um es anzuzeigen.

root@crmsrv:~# apt list --upgradable
Auflistung... Fertig
tecart-essentials-server-4.10/unbekannt 1:8.1.1-1 amd64 [aktualisierbar von: 1:8.0.0-1]
N: Es gibt 1 zusätzliche Version. Bitte verwenden Sie die Option »-a«, um sie anzuzeigen.

root@crmsrv:~# apt dist-upgrade
[...]
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.

root@crmsrv:~# apt install tecart-essentials-server-4.10
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 tecart-essentials-server-4.10 : Hängt ab von (vorher): libytnef0 (>= 1.9.3) aber 1.5-6+deb8u1 soll installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

In diesem Fall sorgt ein Apt-Preference Pin dafuer, dass libytnef0 auf einer aelteren Version gehalten wird. Die verantwortliche Datei laesst sich wie folgt herausfinden:

root@crmsrv:~# grep -H libytnef /etc/apt/preferences.d/*
/etc/apt/preferences.d/50-tecart.pref:Package: libytnef*

root@crmsrv:~# cat /etc/apt/preferences.d/50-tecart.pref
Package: libytnef*
Pin: version 1.5-6*
Pin-Priority: 1001

Hier wird gezeigt, dass der Preference-Pin in /etc/apt/preferences.d/50-tecart.pref eingestellt wurde. Es muessen also die drei Zeilen beginnende mit Package, Pin und Pin-Priority entfernt werden. Da in diesem Fall keine weiteren Preferences in der Datei vorhanden sind, kann diese einfach entfernt werden:

root@crmsrv:~# rm /etc/apt/preferences.d/50-tecart.pref

root@crmsrv:~# apt update
OK:1 http://security.debian.org/debian-security stretch/updates InRelease
[..]
Statusinformationen werden eingelesen.... Fertig
Aktualisierung für 2 Pakete verfügbar. Führen Sie »apt list --upgradable« aus, um sie anzuzeigen.

root@crmsrv:~# apt dist-upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Paketaktualisierung (Upgrade) wird berechnet... Fertig
Die folgenden Pakete werden aktualisiert (Upgrade):
  libytnef0 tecart-essentials-server-4.10
2 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 31,5 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 12,3 kB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n] 
Holen:1 https://repo.tecart.de/apt/debian stretch/testing amd64 libytnef0 amd64 1.9.3-1 [26,0 kB]
Holen:2 https://repo.tecart.de/apt/debian stretch/testing amd64 tecart-essentials-server-4.10 amd64 1:8.1.1-1 [5.586 B]
Es wurden 31,5 kB in 0 s geholt (94,5 kB/s).        
Lese Changelogs... Fertig
(Lese Datenbank ... 53376 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libytnef0_1.9.3-1_amd64.deb ...
Entpacken von libytnef0:amd64 (1.9.3-1) über (1.5-6+deb8u1) ...
libytnef0:amd64 (1.9.3-1) wird eingerichtet ...
(Lese Datenbank ... 53376 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../tecart-essentials-server-4.10_1%3a8.1.1-1_amd64.deb ...
ARGS: upgrade 1:8.1.1-1
Entpacken von tecart-essentials-server-4.10 (1:8.1.1-1) über (1:8.0.0-1) ...
Trigger für php7.1-cli (7.1.26-1+0~20190113101810.12+stretch~1.gbp7077bb) werden verarbeitet ...
tecart-essentials-server-4.10 (1:8.1.1-1) wird eingerichtet ...
Trigger für libc-bin (2.24-11+deb9u3) werden verarbeitet ...
Trigger für libapache2-mod-php7.1 (7.1.26-1+0~20190113101810.12+stretch~1.gbp7077bb) werden verarbeitet ...