Optimierung

1. Cache Funktion für Images

Zeitaufwand: 1-5 Minuten

Die Nutzung der Cache Funktion spart zum einen viel Traffic und zum anderen sind auch größere Spiele in wenigen Sekunden installiert. Selbstverständlich können Sie einen Imageserver mit Symlinks aufbauen, welches noch weitere Vorteile bietet, jedoch beschränken wir uns hier auf die normale Cache Funktion und Installation von vollwertigen Images.

Damit das ganze problemlos läuft benötigen Sie auf dem Imageserver von jedem Image eine .md5 Datei. Bei Counter-Strike heißt das Spieleimage zum Beispiel cs.tar demnach müsste die md5 Datei cs.tar.md5 genannt werden und wird wiefolgt erstellt:

md5sum cs.tar > cs.tar.md5

Das war es auch schon. Wenn die Spiele Images geupdatet werden, müssten auch die md5 Dateien neu erstellt werden. Damit Sie sich die Arbeit einwenig erleichtern, haben wir ein kleines Skript erstellt, welches für alle Images eine md5 Datei erstellt. Legen Sie eine md5create.sh Dateien mit folgendem Inhalt auf Ihrem Imageserver an und setzen Sie den chmod danach auf 755.

#! /bin/bash
for LINE in *.tar
do
  rm $LINE.md5
  md5sum $LINE | awk '{print $1}' > $LINE.md5
done
exit 0

2. CMS Optimierung

Zeitaufwand: 30 Minuten

2.1 Doctype

Für einige Skripte ist es notwendig einen bestimmten Doctyp zu verwenden. Erstellen Sie dazu in themes/ihr_theme eine doctype.php und fügen Sie zum Beispiel folgenden Code hinzu:

<?php echo '<!DOCTYPE html>'; ?>

Auch können Sie hier weiteren Code vor dem head Bereich Ihrer Webseite einfügen.

2.2 Meta-Tags und Javascripte

Auch wenn google bereits vor einiger Zeit verkündet hat, dass zur Bewertung einer Seite keine Meta-Tags mehr berücksichtigt werden, so gibt es noch genug andere Suchmaschinen, welche mit Meta-Tags arbeiten. Zusätzlich können Sie hier auch Javascripte einfügen, welche unbedingt im Head Bereich der Seite geladen werden müssen. Ansonsten ist es ratsam, diese Skripte am Ende der Seite in der footer.tpl Ihres Designs zu laden. Erstellen Sie in themes/ihr_theme eine meta.php und fügen Sie zum Beispiel folgenden Code hinzu:

<?php
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="expires" content="0">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="audience" content="all">
<meta name="author" content="">
<meta name="copyright" content="Copyright (c) ">
<meta name="robots" content="index, follow">
<meta name="revisit" content="30">
<meta name="rating" content="general">
<meta name="language" content="german">
<meta name="publisher" content="">
<meta name="page-topic" content="">
<meta name="page-type" content="">
?>

Auch können Sie hier weiteren Code in den head Bereich Ihrer Webseite einfügen.

2.3 Ressourcen cachen

Damit das Laden Ihrer Seiten beschleunigt wird, sollten Sie zum einen die Komprimierung aktivieren und zum anderen die Cache Funktion des Browsers nutzen. In dem nachfolgenden Beispiel aktivieren Sie die Cache Funktion für Bilder, CSS und Javascript Dateien. Dazu erstellen Sie im Hauptverzeichnis eine .htaccess Datei und fügen den Inhalt hinzu:

Options +FollowSymLinks
<ifmodule mod_expires.c>
  ExpiresActive On 
  ExpiresByType image/x-icon "access plus 7 days"
  ExpiresByType image/gif "access plus 7 days"
  ExpiresByType image/jpg "access plus 7 days" 
  ExpiresByType image/png "access plus 7 days"
  ExpiresByType text/css "access plus 7 days"
  ExpiresByType text/javascript "access plus 7 days"
  ExpiresByType application/javascript "access plus 7 days"
  ExpiresByType application/x-javascript "access plus 7 days"
</ifmodule>
<ifmodule mod_headers.c>
  <filesmatch ".(ico|jpe?g|png|gif|swf)$">
    Header set Cache-Control "max-age=604800, public"
  </filesmatch>
  <filesmatch ".(css)$">
    Header set Cache-Control "max-age=604800, private"
  </filesmatch>
  <filesmatch ".(js)$">
    Header set Cache-Control "max-age=604800, private"
  </filesmatch>
  Header unset ETag 
</ifmodule>
FileETag None
Wir empfehlen die Verwendung eines Content Delivery Networks kurz CDN. Mit einem CDN wie Cloudflare von Amazon reduzieren Sie auch gleich die Anfragen auf Ihren Server und entlasten diesen.

2.4 SEO Links

Das CMS bietet Ihnen im Adminbereich die Möglichkeit, für die "eigene Seite" individuelle Beschreibungen, Suchwörter und Suchmaschinenfreundliche Links via .htacces zu verwenden. Öffnen Sie dazu die .htaccess Datei oder falls nicht vorhanden, erstellen Sie eine .htaccess Datei mit folgendem Inhalt:

Options +FollowSymLinks
RewriteEngine On

#RewriteCond %{HTTP_Host} ^www.ihre_domain.de$ [NC]
#RewriteRule ^(.*)$ http://ihre_domain.de/$1 [R=301,L]

# Blog Modul
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^./]+)/([^/.]+)/([^/.]+)/([^/.]+)/$ modules.php?name=blog&vara=$1&varb=$2&varc=$3&vard=$4 [L]
RewriteRule ^([^./]+)/([^/.]+)/([^/.]+)/$ modules.php?name=blog&vara=$1&varb=$2&varc=$3 [L]
RewriteRule ^([^./]+)/([^/.]+)/$ modules.php?name=blog&vara=$1&varb=$2 [L]
RewriteRule ^([^./]+)/([^/.]+)/([^/.]+)/([^/.]+)$ modules.php?name=blog&vara=$1&varb=$2&varc=$3&vard=$4 [L]
RewriteRule ^([^./]+)/([^/.]+)/([^/.]+)$ modules.php?name=blog&vara=$1&varb=$2&varc=$3 [L]
RewriteRule ^([^./]+)/([^/.]+)$ modules.php?name=blog&vara=$1&varb=$2 [L]

# Module allgemein
RewriteRule ^startseite$ index.php
RewriteRule ^impressum$ modules.php?name=impressum
RewriteRule ^kontakt$ modules.php?name=feedback
RewriteRule ^news$ modules.php?name=news

# Artikel allgemein
RewriteRule ^artikel_([0-9]+)$ modules.php?name=shop&op=details&ids=$1
RewriteRule ^artikel-([0-9]+)$ modules.php?name=store&op=details&ids=$1

# Oder Artikel speziell verlinkt. Bitte Autoreifen durch den gewünschten Namen
# und IDS durch die richtige IDS ersetzen, siehe Adminbereich -> CMS Module -> Artikel Übersicht
RewriteRule ^autoreifen$ modules.php?name=shop&op=details&ids=IDS
RewriteRule ^autoreifen$ modules.php?name=store&op=details&ids=IDS

# Kategorien allgemein
RewriteRule ^kategorie_([0-9]+)$ modules.php?name=shop&op=category&id=$1
RewriteRule ^kategorie-([0-9]+)$ modules.php?name=store&op=category&ids=$1

# Oder Kategorien speziell verlinkt. Bitte Autoersatzteile durch den gewünschten Namen
# und IDS durch die richtige IDS ersetzen, siehe Adminbereich -> CMS Module -> Kategorien Übersicht
# Für die Warenkorb Version bitte shop durch store im Link ersetzen.
RewriteRule ^autoersatzteile$ modules.php?name=shop&op=category&ids=IDS
RewriteRule ^autoersatzteile$ modules.php?name=store&op=category&ids=IDS

# Modul Shop Artikel berechnen
RewriteRule ^berechnen$ modules.php?name=shop

# Modul Shop Bestellvorgang
RewriteRule ^bestellen$ modules.php?name=shop

# Modul Store Artikel hinzufuegen
RewriteRule ^einpacken$ modules.php?name=store

# Modul Store Warenkorb
RewriteRule ^warenkorb$ modules.php?name=store&op=basket

# Modul Store Bestellvorgang
RewriteRule ^bestellvorgang$ modules.php?name=store

# FAQ Modul 
# config.php hinzufügen: $seo_faq = 1;
RewriteRule ^faq/([^./]+)/([0-9]+)$ modules.php?name=faq&op=view&ids=$2
RewriteRule ^faq/([^./]+)/([0-9]+)/([^./]+)/([0-9]+)$ modules.php?name=faq&op=view&fids=$2&ids=$4

# Eigene Seiten allgemein
RewriteRule ^seite_([0-9]+)$ modules.php?name=sections&ids=$1

# Oder Eigene Seiten speziell verlinkt. Bitte technik durch den gewünschten Namen
# und IDS durch die richtige IDS ersetzen, siehe Adminbereich -> CMS Module -> Eigene Seiten Übersicht
RewriteRule ^technik$ modules.php?name=sections&ids=IDS

Als nächstes müssen Sie noch die config.php bearbeiten, damit die Verlinkung im Shop Modul richtig übernommen wird. Dazu tragen Sie folgendes in die config.php ein:

$startsitepath = "startseite";
$feedbackpath = "kontakt";
$shopdetails = "artikel_";
$shopaddpath = "berechnen";
$shopcheckoutpath = "bestellen";
$storedetails = "artikel-";
$storeaddpath = "einpacken";
$storebasketpath = "warenkorb";
$storecheckoutpath = "bestellvorgang";

2.5 Shop Erweiterung

Wenn Sie beim Bestellvorgang einige Felder unf Funktionen nicht benötigen, können Sie diese mit wenigen Handgriffen in der config.php ausblenden. Dazu gehört das Telefonfeld, der Kunden Login, die Lieferanschrift, die Erstellung des Kundenaccounts und die Versandart.

Telefon
  • 0 Pflichtfeld
  • 1 kein Pflichtfeld
  • 2 Telefonfeld ausgeblendet
Kunden Login
  • 0 Kunden Login eingeblendet
  • 1 Kunden Login ausgeblendet
Lieferanschrift
  • 0 Lieferanschrift eingeblendet
  • 1 Lieferanschrift ausgeblendet
Kundenaccounts
  • 0 Kundenaccounts erstellen
  • 1 Kundenaccounts nicht erstellen
Versandart
  • 0 Versandart eingeblendet
  • 1 Versandart ausgeblendet
Wiederrufsrecht
  • 0 Wiederrufsrecht eingeblendet
  • 1 Wiederrufsrecht ausgeblendet
Rechnungsversand
  • 0 Rechnungsversand eingeblendet
  • 1 Rechnungsversand ausgeblendet

Würde also in der config.php der Eintrag $shopcodes = "2010000"; stehen, so wäre das Telefonfeld ausgeblendet, der Kunden Login aktiv, die Lieferanschrift ausgeblendet und die Erstellung eines Kundenaccounts wäre auch aktiviert.

Telefon

Nicht immer muss das Telefonfeld ein Pflichtfeld sein oder es möchte der ein oder andere Anbieter nicht. Daher kann man das Telefonfeld auch als freiwillige Angabe festlegen oder ganz ausblenden. Dazu öffnen Sie die config.php und fügen folgenden Eintrag hinzu bzw. ändern ihn ab:

$shopcodes="X000000";
Kunden Login

Anbieter die keine Kundenaccounts mit dem TekBASE verwalten möchten können die Einblendung des Kunden Logins beim Bestellvorgang ausblenden, da dieser dann unnötig wäre. Dazu öffnen Sie die config.php und fügen folgenden Eintrag hinzu bzw. ändern ihn ab:

$shopcodes="0X00000";
Lieferanschrift

Wenn ein Anbieter nur Gameserver, Streamserver oder sonstiges vermietet, so benötigt er die Felder für die Lieferanschrift nicht unbedingt. Daher können diese ausgeblendet werden. Dazu öffnen Sie die config.php und fügen folgenden Eintrag hinzu bzw. ändern ihn ab:

$shopcodes="00X0000";
Kundenaccounts

Bei einigen Shops wird nicht zwingend ein Kundenaccount benötigt, mit dem sich der Kunde dann im Kundenbereich einloggen kann. Daher kann man die Funktion zum automatischen erstellen eines Kundenaccounts deaktivieren. Dazu öffnen Sie die config.php und fügen folgenden Eintrag hinzu bzw. ändern ihn ab:

$shopcodes="000X000";
Versandarten

Wenn ein Anbieter nur Gameserver, Streamserver oder sonstiges vermietet, so benötigt er die Auswahl für die Versandarten nicht unbedingt, da der Versand der Logindaten in der Regel per Email erfolgt. Daher können diese ausgeblendet werden. Dazu öffnen Sie die config.php und fügen folgenden Eintrag hinzu bzw. ändern ihn ab:

$shopcodes="0000X00";
Wiederrufsrecht

Sie wollen den Kunden darauf hinweisen, dass mit Bestellung das Widerrufsrecht erlischt und der Kunde dies per Checkbox bestätigen muss. Dazu öffnen Sie die config.php und fügen folgenden Eintrag hinzu bzw. ändern ihn ab:

$shopcodes="00000X0";
Rechnungsversand

Hier haben Sie die Möglichkeit, den automatischen Rechnungsversand zu deaktivieren, wenn Sie diese im Adminbereich vorher noch prüfen wollen. Dazu öffnen Sie die config.php und fügen folgenden Eintrag hinzu bzw. ändern ihn ab:

$shopcodes="000000X";
Anstelle des X bitte Ihre Auswahl eintragen.

3. CMS Bewertungssystem

Zeitaufwand: 1-5 Minuten

Um das bereits im TekBASE integrierte Bewertungssystem zu nutzen, aktivieren Sie die Bewertungsfunktion im Adminbereich unter Setting Module -> Einstellungen. Danach integrieren Sie das Bewertungs Widget in Ihr Design. Dazu öffnen Sie die betreffende *.tpl Datei in unserem /themes/THEMENAME/templates Verzeichnis oder im Adminbereich bei CMS Module -> Seiten und fügen an der gewünschten Position folgendes ein:

<script src="ratings.php?op=widget" type="text/javascript"></script>

Wenn neue Bestellungen eingehen, legen Sie dem Kunden einen Artikel im Kundenpaket unter Adminbereich -> Rechnungs Module -> Kundenpaket an. Nun dürfen Sie sich fortan über Bewertungen erfreuen und sparen gegenüber externen Lösungen viel Geld und Arbeitsaufwand.

4. Cronjobs

Zeitaufwand: 15-30 Minuten

Daemon prüfen

Dieser Abschnitt ist für Sie nur von Bedeutung, wenn Sie den Lizenzschlüssel für das Gameserver, Streamserver, Voiceserver oder Rootserver Webinterface besitzen.

Richten Sie einen Cronjob ein, der jede Minute überprüft, ob der Daemon noch läuft und wenn nicht, dass dieser neugestartet wird. Dazu erstellen Sie in /etc/cron.d eine Datei mit dem Namen tekbase_daemon und folgendem Inhalt.

*/1 * * * * user-webi cd /home/skripte;./tekbase 18 daemon

Jetzt müssen Sie cron neustarten. Das geschieht indem Sie folgenden Befehl ausführen:

/etc/init.d/cron restart

Datenbank Backup

Diesen Abschnitt sollten Sie auf jedenfall befolgen, da Sie so immer ein Backup der Datenbank haben, falls diese mal defekt sind. Admin und Kunden Logs werden jedoch vorher geleert.

Richten Sie einen Cronjob ein, der für Sie wöchtenlich ein Backup der Datenbank anlegt. Dazu erstellen Sie in /etc/cron.d eine Datei mit dem Namen tekbase_dbbackup und folgendem Inhalt um die Datenbank jeden Montag um 1 Uhr morgens nach /cache zu speichern. Bitte verwenden Sie eine .htacces um /cache vor Zugriffen zu schützen, siehe Sicherheit. Das Passwort finden Sie im Adminbereich unter Setting Module -> Einstellungen -> Autoscripte.

0 1 * * 1 root wget -q --post-data 'op=dbbackup&key=PASSWORT' -O - http://ihre_domain.de/pfad/automated.php

Jetzt müssen Sie cron neustarten. Das geschieht indem Sie folgenden Befehl ausführen:

/etc/init.d/cron restart
Das Backup der Datenbank sollte vor dem erstellen der Rechnungen geschehen. Wie in dem Beispiel um 1 Uhr, einmal die Woche. Sie können jedoch auch genau wie bei den Rechnungen, täglich oder zu bestimmten Tagen die Datenbank sichern lassen.

HlStatsX CE Awards

Dieser Abschnitt funktioniert nur, wenn Sie den Lizenzschlüssel für das Gameserver Webinterface besitzen.

Richten Sie einen Cronjob auf jedem Rootserver ein, der dann täglich die HlStatsX CE Awards generiert. Dazu erstellen Sie in /etc/cron.d eine Datei mit dem Namen tekbase_hlstats und folgendem Inhalt um Awards täglich um 4 Uhr morgens zu generieren.

0 4 * * * root /home/skripte/hlstats.sh 7

Jetzt müssen Sie cron neustarten. Das geschieht indem Sie folgenden Befehl ausführen:

/etc/init.d/cron restart

Prepaid Server berechnen

Dieser Abschnitt funktioniert nur, wenn Sie den Lizenzschlüssel für das Gameserver, Streamserver, Voiceserver oder Rootserver Webinterface besitzen.

Richten Sie einen Cronjob ein, der täglich die Prepaid Server abrechnet. Dazu erstellen Sie in /etc/cron.d eine Datei mit dem Namen tekbase_prepaid und folgendem Inhalt, um die Berechnung täglich um 5 Uhr morgens durchzuführen. Soll die Abrechnung 14 tägig erfolgen, müssten Sie anstelle von 1 einfach eine 14 bei days angeben. Das Passwort finden Sie im Adminbereich unter Setting Module -> Einstellungen -> Autoscripte.

0 5 * * * root wget -q --post-data 'op=prepaid&key=PASSWORT&days=1' -O - http://ihre_domain.de/pfad/automated.php

Jetzt müssen Sie cron neustarten. Das geschieht indem Sie folgenden Befehl ausführen:

/etc/init.d/cron restart

Rechnungen erstellen

Diesen Abschnitt funktioniert nur, wenn Sie den Lizenzschlüssel für das Rechnungs- und Mahnsystem besitzen.

Richten Sie einige Cronjobs ein, die dann für uns täglich, wöchentlich oder monatlich die neuen Rechnungen generieren. Dazu erstellen Sie in /etc/cron.d eine Datei mit dem Namen tekbase_createbill und wählen eines oder mehrere der angezeigten Beispiele. Das Passwort finden Sie im Adminbereich unter Setting Module -> Einstellungen -> Autoscripte.

Um 3 Uhr morgens werden die für diesen Tag gültigen Rechnungen erstellt.

0 3 * * * root wget -q --post-data 'op=createbill&key=PASSWORT&daily=yes' -O - http://ihre_domain.de/pfad/automated.php

Für alle Kunden Produkte die zwischen dem 01. bis 9. eines Monats bestellt wurden. (wird am 01. des Monats erstellt)

0 3 1 * * root wget -q --post-data 'op=createbill&key=PASSWORT&all=1' -O - http://ihre_domain.de/pfad/automated.php

Für alle Kunden Produkte die zwischen dem 10. bis 19. eines Monats bestellt wurden. (wird am 10. des Monats erstellt)

0 3 10 * * root wget -q --post-data 'op=createbill&key=PASSWORT&all=10' -O - http://ihre_domain.de/pfad/automated.php

Für alle Kunden Produkte die zwischen dem 20. bis 31. eines Monats bestellt wurden. (wird am 20. des Monats erstellt)

0 3 20 * * root wget -q --post-data 'op=createbill&key=PASSWORT&all=20' -O - http://ihre_domain.de/pfad/automated.php

Für alle Kunden die eine Rechnung bekommen. (wird am 1. des Monats erstellt)

0 3 1 * * root wget -q --post-data 'op=createbill&key=PASSWORT&all=99' -O - http://ihre_domain.de/pfad/automated.php

Jetzt müssen Sie cron neustarten. Das geschieht indem Sie folgenden Befehl ausführen:

/etc/init.d/cron restart
Das System erkennt automatisch, ob ein Kunde diesen Monat keinen Rechnung bekommt, wenn er als Vorauszahlung zum Beispiel 3 Monate gewählt hat und gerade erst letzten Monat eine Rechnung bekommen hat, erhält er erst wieder in zwei Monaten eine neue Rechnung.

Rechnungen verschicken

Diesen Abschnitt funktioniert nur, wenn Sie den Lizenzschlüssel für das Rechnungs- und Mahnsystem besitzen.

Richten Sie einen Cronjob ein, der täglich die neuen Rechnungen verschickt, egal ob per Email oder per realem Postbrief. Dazu erstellen Sie in /etc/cron.d eine Datei mit dem Namen tekbase_sendbill und folgendem Inhalt um die Rechnungen täglich um 9 Uhr morgens zu verschicken. Das Passwort finden Sie im Adminbereich unter Setting Module -> Einstellungen -> Autoscripte.

0 10 * * * root wget -q --post-data 'op=sendbill&key=PASSWORT' -O - http://ihre_domain.de/pfad/automated.php

Jetzt müssen Sie cron neustarten. Das geschieht indem Sie folgenden Befehl ausführen:

/etc/init.d/cron restart
Es wurde 10 Uhr gewählt, damit dem Admin morgens noch Zeit bleibt die automatisch erstellten Rechnungen zu kontrollieren.