Debian 6.0

Als erstes müssen Sie die Ihrem System entsprechende Distribution herunterladen unter Debian.org.

Anschließend brennen Sie das Image auf CD und booten damit Ihren Server.

Booten Sie die eben erstellte CD in Ihrem Server.

Installer Boot Menu

Sprache wählen

Land wählen

Tastaturbelegung wählen

Servernamen festlegen

Domainnamen festlegen

Benutzer und Passwörter einrichten

Root-Passwort festlegen

Root-Passwort wiederholen

Vollen Namen eingeben

Benutzername eingeben

Passwort eingeben

Festplatten partitionieren

Partitionen manuell erstellen

Festplatte wählen

Leere Partitionstabelle erstellen

Freien Speicher für SWAP Partition wählen

Neue Partition erstellen (SWAP)

Größe der SWAP-Partition festlegen

Hinweis: Als Faustregel für die Größe des Swap-Speichers können Sie, je nach System, etwa das doppelte bis dreifache des Arbeitspeichers annehmen.

Partitionstyp der SWAP Partition festlegen (Primär)

Position der SWAP Partition festlegen (Anfang)

Benutzen als SWAP

Freien Speicher für Root-Partition wählen

Neue Partition erstellen (Root)

Größe der Root-Partition festlegen

Partitionstyp der Root-Partition festlegen

Position der Root-Partition festlegen (Anfang)

Einhängepunkt (mount point) /

Freien Speicher für /usr-Partition wählen

Neue Partition erstellen (/usr)

Größe der /usr-Partition festlegen

Partitionstyp der /usr-Partition festlegen (Logisch)

Position der /usr-Partition festlegen (Anfang)

Einhängepunkt (mount point) /usr

Freien Speicher für /var-Partition wählen

Neue Partition erstellen (/var)

Größe der /var-Partition festlegen

Partitionstyp der /var-Partition festlegen (Logisch)

Position der /var-Partition festlegen (Anfang)

Einhängepunkt (mount point) /var

Freien Speicher für /data-Partition wählen

Neue Partition erstellen (/data)

Größe der /data-Partition festlegen

Partitionstyp der /data-Partition

Einhängepunkt (mount point) /data

Partitionierung beenden

Änderungen speichern

Paketmanager konfigurieren

Land des Spiegelservers wählen

Paketmanager konfigurieren

Spiegelservers wählen

Proxyserver wählen

Anonyme Statistiken erstellen

Softwareauswahl

GRUB-Bootloader auf einer Festplatte installieren

Installation beenden

Boot Menu

Login Prompt

Als root einloggen

[root@crmsrv /]# apt-get install openssh-server lvm2 mc ntpdate spamprobe libytnef0 imageMagick catdoc xpdf clamav clamav-daemon 
[root@crmsrv /]# apt-get install diff zip openssl elinks gocr aspell aspell-de aspell-en mysql-server memcached

Ytnef

Wichtig: Je nach Architektur Ihres Systems müssen Sie das folgende Paket wählen und in den wget- und dpkg-Befehl einsetzen:

[root@crmsrv /]# wget http://wiki.tecart.de/images/0/07/Ytnef_2.6-1_amd64.deb
[root@crmsrv /]# dpkg --install Ytnef_2.6-1_amd64.deb
[root@crmsrv /]# rm Ytnef_2.6-1_amd64.deb
[root@crmsrv /]# /etc/init.d/exim4 stop
[root@crmsrv /]# /etc/init.d/portmap stop
[root@crmsrv /]# /etc/init.d/nfs-common stop
[root@crmsrv /]# apt-get remove exim4 portmap

Device herausfinden und in Variable schreiben:

[root@crmsrv /]# export DEV=$(df | grep /data | awk '{print $1}')

Aktuelle Partition umounten:

[root@crmsrv /]# umount $DEV

LVM einrichten mit der volle Größe (im diesem Beispiel 170GB):

[root@crmsrv /]# pvcreate $DEV
[root@crmsrv /]# vgcreate crm_vol $DEV
[root@crmsrv /]# lvcreate -n crm_log -l 100%FREE crm_vol
[root@crmsrv /]# mkfs.ext4 /dev/crm_vol/crm_log

Datei /etc/fstab bearbeiten:

Folgende Zeile enternen: Hinweis: Die Partition /dev/sda6 in diesem Beispiel kann unter Umständen auch über die UUID angesprochen werden. Suchen Sie in jedem Fall nach dem /data-Bezeichner.

/dev/sda6                  /data            ext4    defaults        0       2

Folgende Zeile hinzufügen:

/dev/crm_vol/crm_log       /data            ext4    defaults        0       2

Partition mounten:

[root@crmsrv /]# mount /data

Bitte laden Sie den Zend-Server für Linux (Zend Server DEB/RPM Installer Script) unter Zend Server herunter. Alternativ können Sie Ihn hier herunterladen: zendserver-5_6_0-repositoryinstaller-linux_tar.gz.

[root@crmsrv /]# cd /usr/src
[root@crmsrv /]# wget http://wiki.clever-crm.de/images/8/8e/ZendServer-5.6.0-RepositoryInstaller-linux.tar.gz
[root@crmsrv /]# tar -xvzf ZendServer-5.6.0-RepositoryInstaller-linux.tar.gz
[root@crmsrv /]# ZendServer-RepositoryInstaller-linux/install_zs.sh 5.3 ce

Anschliessend mit Y bestätigen.

[root@crmsrv /]# apt-get install php-5.3-loader-zend-server php-5.3-memcache-zend-server php-5.3-xmlrpc-zend-server
[root@crmsrv /]# /etc/init.d/apache2 restart

Motd entfernen

[root@crmsrv /]# touch ~/.hushlogin

Locale korrekt einstellen

de_DE.UTF-8 auswählen:

[root@nfs-server /]# dpkg-reconfigure locales

Zeitzone korrekt einstellen

Europe/Berlin auswählen:

[root@nfs-server /]# dpkg-reconfigure tzdata

Uhrzeit mit Zeitserver synchronisieren

[root@crmsrv /]# echo -e '#!/bin/sh\n/usr/sbin/ntpdate ntps1-0.cs.tu-berlin.de ptbtime1.ptb.de de.pool.ntp.org > /dev/null 2>&1' > /etc/cron.daily/netdate
[root@crmsrv /]# chmod +x /etc/cron.daily/netdate

Umask setzen

[root@crmsrv /]# echo 'umask 0' >> /etc/profile

Swapverhalten optimieren

[root@crmsrv /]# echo 'vm.swappiness=0' >> /etc/sysctl.conf

ClamAV Daemon konfigurieren

Bearbeiten Sie die Datei /etc/clamav/clamd.conf und passen Sie folgende Einträge an:

LocalSocketGroup www-data
User www-data

Bearbeiten Sie die Datei /etc/logrotate.d/clamav-daemon und passen Sie folgende Einträge an:

create 640  www-data adm
[root@crmsrv /]# chown www-data.clamav /var/log/clamav/clamav.log
[root@crmsrv /]# /etc/init.d/clamav-daemon restart

MySQL-Server konfigurieren

Bearbeiten Sie die Datei /etc/mysql/my.cnf:

Konfiguration für MyISAM

[client]
port                    = 3306
socket                  = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket                  = /var/run/mysqld/mysqld.sock
nice                    = 0

[mysqld]
user                    = mysql
port                    = 3306
bind-address            = 127.0.0.1
socket                  = /var/run/mysqld/mysqld.sock
pid-file                = /var/run/mysqld/mysqld.pid
basedir                 = /usr
datadir                 = /var/lib/mysql
tmpdir                  = /tmp
language                = /usr/share/mysql/english

skip-external-locking
skip-locking

key_buffer              = 1024M
max_allowed_packet      = 64M
table_cache             = 500
sort_buffer_size        = 8M
net_buffer_length       = 8K
read_buffer_size        = 4M
read_rnd_buffer_size    = 8M
myisam_sort_buffer_size = 64M
thread_cache_size       = 10
thread_concurrency      = 8
max_connections         = 300
open_files_limit        = 16384
tmp_table_size          = 64M
max_heap_table_size     = 32M

connect_timeout         = 30
wait_timeout            = 300

join_buffer_size        = 1M

query_cache_limit       = 128M
query_cache_size        = 128M
query_cache_type        = 1
query_prealloc_size     = 16384
query_alloc_block_size  = 16384

log_error               = /var/log/mysql/mysql.err

skip-innodb

old_passwords           = false

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

Für die Verwendung der InnoDB Engine verwenden Sie bitte Konfiguration für Innodb.

[root@crmsrv /]# /etc/init.d/mysql restart

TecArt-System Datenbank anlegen

[root@crmsrv /]# mysql -u root -p
mysql> CREATE USER 'crmuser'@'%' IDENTIFIED BY 'crmpass';
mysql> GRANT USAGE ON *.* TO 'crmuser'@'%' IDENTIFIED BY 'crmpass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
mysql> CREATE DATABASE `crmdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
mysql> GRANT ALL PRIVILEGES ON `crmdb`.* TO 'crmuser'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit

Memcache-Daemon konfigurieren

Bearbeiten Sie die Datei /etc/memcached.conf:

-d                      # Start as Daemon

-m 512                  # Wieviel Megabyte darf Memcached verwenden? Max. RAM/8

-u www-data             # Apache User

-s /tmp/memcached.sock  # Socket
[root@crmsrv /]# /etc/init.d/memcached restart

Zend-Server konfigurieren

[root@crmsrv /]# ln -s /usr/local/zend/bin/php /usr/bin/php

IP-Adresse herausfinden: ( z.B. 192.168.150.182 )

[root@crmsrv /]# ifconfig eth0 | grep 'inet ' | awk '{print $2}'

URL: http://192.168.150.182:10081/ im Browser aufrufen.

Administration → License and Password → Zend Server Feature Content → No

Zend Data Cache und Zend Debugger deaktivieren:

Zu "Server Setup → Directives" navigieren:

TecArt-System herunterladen

Aktuelle TecArt-System Version für PHP 5.3 hier herunterladen: Downloads.

[root@crmsrv /]# cd /usr/src
[root@crmsrv /]# wget http://wiki.clever-crm.de/images/6/6a/Crm_3.4.5508_53.tar.gz

TecArt-System Archiv entpacken

[root@crmsrv /]# tar -xvzf Crm_3.4.5508_53.tar.gz
[root@crmsrv /]# mkdir /var/www/crm
[root@crmsrv /]# cp -Rv crm_v34/* /var/www/crm/

Benötigte Verzeichnisse anlegen und Rechte setzen

[root@crmsrv /]# mkdir /var/www/crm/mailtmp
[root@crmsrv /]# mkdir /var/www/crm/config
[root@crmsrv /]# mkdir /data/crm
[root@crmsrv /]# chown -R www-data.www-data /var/www/crm
[root@crmsrv /]# chmod -R 0700 /var/www/crm
[root@crmsrv /]# chown -R www-data.www-data /data/crm
[root@crmsrv /]# chmod -R 0700 /data/crm

Lizenzschlüssel installieren

Host-ID herausfinden

[root@crmsrv /]# ifconfig eth0 | grep 'Hardware Adresse' | awk '{print $6}' | replace ':' ''

Lizenzschlüssel bestellen

Lizenzschlüssel einspielen

[user@workstation:~$] scp Downloads/licence.key root@192.168.150.182:/var/www/crm/config/licence.key

TecArt-System Setup ausführen

URL: http://192.168.150.182/crm/setup/ im Browser aufrufen.

Datei /etc/apache2/apache2.conf bearbeiten und folgende Änderungen vornehmen:

Timeout 60                    # Wichtig für TecArt Push, auf keinen Fall kleiner
KeepAlive On                  # Wichtig für TecArt Push
MaxKeepAliveRequests 0        # Wichtig für TecArt Push
KeepAliveTimeout 60           # Wichtig für TecArt Push, auf keinen Fall kleiner
ServerLimit 327               # Hauptspeicher in MB / 50 MB ( z.B. 16384 / 50 = 327 )

<IfModule mpm_prefork_module>
    StartServers         10
    MinSpareServers      5
    MaxSpareServers      10
    MaxClients           327  # Hauptspeicher in MB / 50 MB ( z.B. 16384 / 50 = 327 ) 
    MaxRequestsPerChild  0
</IfModule>

HostnameLookups Off

Datei /etc/apache2/sites-enabled/000-default bearbeiten:

<VirtualHost *:80>
        ServerAdmin webmaster@crmsrv

        DocumentRoot /var/www/crm/
        <Directory /var/www/crm/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        Alias /Microsoft-Server-ActiveSync /var/www/crm/zpush/index.php

        ErrorLog /var/log/apache2/error.log

        LogLevel error

        #Enable if you wish logging, Disable if you want performance
        #CustomLog /var/log/apache2/access.log combined

</VirtualHost>
[root@crmsrv /]# a2dismod auth_basic authn_file authz_default authz_groupfile authz_user autoindex cgi deflate
[root@crmsrv /]# a2dismod env negotiation reqtimeout setenvif rewrite status
[root@crmsrv /]# /etc/init.d/apache2 restart

Um Browsern mit Hilfe von JavaScript anderer Webseiten den Zugriff auf die REST- und SOAP-Webservices zu gestatten, muss in der Apache-Konfiguration ein Response-Header für Access-Control-Allow-Origin gesetzt werden.

<VirtualHost *:80>
[...]
        <Directory /var/www/crm/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                Header set Access-Control-Allow-Origin *
        </Directory>
[...]
</VirtualHost>

Ausserdem muss das Apache-Module mod_headers geladen und anschließend der Apache neugestartet werden:

[root@crmsrv /]# a2enmod headers
[root@crmsrv /]# /etc/init.d/apache2 restart
[root@crmsrv /]# a2enmod ssl
[root@crmsrv /]# a2ensite default-ssl

Datei /etc/apache2/sites-enabled/default-ssl bearbeiten:

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
        ServerAdmin webmaster@crmsrv

        DocumentRoot /var/www/crm/
        <Directory /var/www/crm/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        Alias /Microsoft-Server-ActiveSync /var/www/crm/zpush/index.php

        ErrorLog /var/log/apache2/error.log

        LogLevel error

        #CustomLog /var/log/apache2/ssl_access.log combined

        SSLEngine on

        SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

        #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt

        #SSLCACertificatePath /etc/ssl/certs/
        #SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>

</VirtualHost>
</IfModule>
[root@crmsrv /]# /etc/init.d/apache2 restart

Das vorinstallierte Zertifikat verschlüsselt zwar die Verbindung. Diese wird durch den Browser aber als "nicht vertrauenswürdig" eingestuft. Sie benötigen hierzu ein Zertifikat von einer Zertifizierungsstelle. Das SSL-Zertifikat für Ihre Domain können Sie unter http://www.tecart.de/anfrageformular bestellen.

Hat der Server keinen direkten Kontakt zum Internet, ist es notwendig, Proxy-Einstellungen vorzunehmen.

Im folgenden wird angenommen, dass auf der IP 1.2.3.4 zwei Proxy-Server laufen: Ein HTTP-Proxy auf Port 3128(z.B. Squid 3) und ein SOCKS5-Proxy auf Port 1080(z.B. dante). Beide Proxy-Server koennen mit dem Benutzer proxyuser und dem Passwort proxypass genutzt werden.

clamav-daemon

In der Datei /etc/clamav/freshclam.conf muessen folgende Zeilen eingefuegt werden:

HTTPProxyServer 1.2.3.4
HTTPProxyPort 3128
HTTPProxyUsername proxyuser
HTTPProxyPassword proxypass

TecArt-System

Im Webroot des TecArt-Systems wird im config-Ordner eine Datei proxy.inc.php angelegt mit folgendem Inhalt:

Ist kein Benutzer oder Passwort fuer einen der beiden Proxy-Server erforderlich, wird der entsprechende Wert auf false gesetzt.


<?php 

$squid = array( 
			'TYPE'      => 'squid',
			'HOST'      => '1.2.3.4',
			'PORT'      => 3128,
			'USERNAME'  => proxyuser,
			'PASSWORD'  => proxypass,
			'TIMEOUT'   => 10);

$socks5 = array(
			'TYPE'      => 'socks5_stream',
			'HOST'      => '1.2.3.4',
			'PORT'      => 1080,
			'TIMEOUT'   => 10,
			'USERNAME'  => proxyuser,
			'PASSWORD'  => proxypass);

$config['proxies'] = array('HTTP'  => $squid, 'HTTPS' => $squid, 'IMAP'   => $socks5, 'IMAPS' => $socks5, 'POP3' => $socks5,
  'POP3S' => $socks5, 'SMTP' => $socks5, 'SMTPS' => $socks5, 'EMPTY' => $socks5);

?>

Rufen Sie die URL http://192.168.150.182 (IP Ihres Servers) in Ihrem Browser auf: