Zertifikat für Postfix und Dovecot unter ISPConfig erneuern

wechseln ins tmp Verzeichnis

cd /tmp

Key erstellen

openssl genrsa -des3 -out srv01.linux-welten.de.key 2048

Phrase eingeben

Generating RSA private key, 2048 bit long modulus
e is 65537 (0x10001)
Enter pass phrase for srv01.linux-welten.de.key: SICHEREphrase
Verifying - Enter pass phrase for srv01.linux-welten.de.key: SICHEREphrase

csr erstellen

openssl req -new -key srv02.linux-welten.de.key -out srv02.linux-welten.de.csr

Fragen beantworten

Enter pass phrase for srv02.linux-welten.de.key: SICHEREphrase
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:THUERINGEN
Locality Name (eg, city) []:BAD LIEBENSTEIN
Organization Name (eg, company) []:Linux Welten
Organizational Unit Name (eg, section) []:Technik
Common Name (e.g. server FQDN or YOUR name) []:srv02.linux-welten.de
Email Address []:----@linux-welten.de

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

crt erstellen

openssl x509 -req -days 365 -in srv02.linux-welten.de.csr -signkey srv02.linux-welten.de.key -out srv02.linux-welten.de.crt

Phrase eingeben

Signature ok
subject=/C=DE/ST=THUERINGEN/L=BAD LIEBENSTEIN/OU=Technik/CN=srv02.linux-welten.de/emailAddress=----@linux-welten.de
Getting Private key
Enter pass phrase for srv02.linux-welten.de.key

Key rsa

openssl rsa -in srv02.linux-welten.de.key -out srv02.linux-welten.de.key.nopass

umbenennen

mv srv02.linux-welten.de.key.nopass srv02.linux-welten.de.key

Pem erstellen

openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Fragen beantworten

Enter pass phrase for srv02.linux-welten.de.key: SICHEREphrase
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:THUERINGEN
Locality Name (eg, city) []:BAD LIEBENSTEIN
Organization Name (eg, company) []:Linux Welten
Organizational Unit Name (eg, section) []:Technik
Common Name (e.g. server FQDN or YOUR name) []:srv02.linux-welten.de
Email Address []:----@linux-welten.de

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Dateien an richtige Stelle verschieben, alte Dateien sichern, postfix neu starten

cd /etc/postfix/
mv smtpd.cert smtpd.cert.old
mv smtpd.key smtpd.key.old
cp -a /root/srv02.linux-welten.de.crt ./
cp -a /root/srv02.linux-welten.de.key ./
mv srv02.linux-welten.de.crt ./smtpd.cert
mv srv02.linux-welten.de.key ./smtpd.key
chmod 600 ./smtpd.cert
chmod 600 ./smtpd.key
/etc/init.d/postfix restart

Wenn nach dem Perfect Server HowTo installiert wurde, greift dovecot auf die gleichen Zertifikate zu. Überprüfen:

vim /etc/dovecot/dovecot.conf

Suchen nach den Pfadangaben Zertifikat

ssl_cert = </etc/postfix/smtpd.cert
ssl_key = </etc/postfix/smtpd.key

Wenn der Pfad passt, dovecot neu starten

/etc/init.d/dovecot restart

 

otrs download index.pl

Bei einem Server trat das Problem auf, dass bei manchen Links (Zufällig und sporadisch) die index.pl zum Download angeboten wird.

In den error Logs des Apachen taucht folgendes auf

# tail -f /var/log/apache2/error.log
[Mon Sep 21 14:23:52 2015] -e: print() on closed filehandle LOG at /opt/otrs//Kernel/Output/HTML/Layout.pm line 1455.

Abhilfe schafft das Auskommentieren der Fehlerseite(n):

# vim /etc/apache2/conf.d/zzz_otrs.conf

Suchen nach

[…]
# general mod_perl2
options <Location /otrs>
# ErrorDocument 403 /otrs/customer.pl
ErrorDocument 403 /otrs/index.pl
[…]

ändern in

[…]
# general mod_perl2
options <Location /otrs>
# ErrorDocument 403 /otrs/customer.pl
# ErrorDocument 403 /otrs/index.pl
[…]

Der Fehler ist eine Kombination aus der Installation von OTRS mit OCSinventory auf dem gleichen Server. Danke an Víctor Ramírez.

Pfade und vorgehen auf einem Debian System

# vim usr/local/share/perl/5.14.2/Apache/Ocsinventory/Server/System.pm

suchen nach

  if(!$LOG){
    open LOG, '>>'.$ENV{'OCS_OPT_LOGPATH'}.'/activity.log' or die "Failed to open log file : $! ($ENV{'OCS_OPT_LOGPATH'})\n";
    # We don't want buffer, so we allways flush the handles
    select(LOG);
    $|=1;
    $LOG = \*LOG;
  }

ca. Zeile 245, ändern in

  if(!$LOG){
    open LOG, '>>'.$ENV{'OCS_OPT_LOGPATH'}.'/activity.log' or die "Failed to open log file : $! ($ENV{'OCS_OPT_LOGPATH'})\n";
    # We don't want buffer, so we allways flush the handles
#    select(LOG);
#    $|=1;
    $LOG = \*LOG;
  }

Apachen neu starten

/opt/otrs# /etc/init.d/apache2 restart

OCS arbeitet nach dieser Änderung weiter.

System Info:

# uname -a
Linux support1 3.2.0-4-686-pae #1 SMP Debian 3.2.68-1+deb7u3 i686 GNU/Linux

# cat /etc/issue
Debian GNU/Linux 7 \n \l

# cat RELEASE 
PRODUCT = OTRS
VERSION = 4.0.11
BUILDDATE = Wed Jul 29 21:53:17 CEST 2015
BUILDHOST = otrsbuild.otrs.com

 

Linux Befehlssammlung gegen das vergessen #1

Speicherbelegung aktuell

free -m

Leistung HDD testen

sudo hdparm -tT --direct /dev/sdX

32 oder 64 bit?

getconf LONG_BIT

Version (Bei Ablegern nach Update manchmal überschrieben. zB Mint -> Ubuntu)

cat /etc/issue

Mailman Admin Passwort reset

/usr/lib/mailman/bin/change_pw -l Listenname -p NeuesPasswort

Mailman Liste Rückstandslos löschen

/usr/lib/mailman/bin/rmlist -a meineliste

Mailman Liste OHNE Archiv löschen

/usr/lib/mailman/bin/rmlist meineliste

 

JTLwawi bricht Webshopabgleich ab

JTLwawi hat den Webshop Abgleich mit folgendem Fehler abgebrochen:

Fehler: Falscher Parameter!

URL: http://shop.xxxxxxxx.de/xxxx/dbeS/Artikel.php

Der Fehler wurde durch Artikel in der Tabelle dbo.tQueue erzeugt. Ein herauslöschen der falschen Einträge kann mittels dem SQL Server Managementstudio erledigt werden. Dazu

  • Management Studio starten
  • mit der Datenbank verbinden
  • zur Tabelle dbo.tQueue wechseln

und folgende Abfrage ausführen

SELECT * FROM dbo.tQueue WHERE cName='tArtikel' AND nAction=2

tauchen dort Einträge mit dem kWert 0 auf, diese entfernen. Dies geschieht mit der Abfrage

DELETE FROM dbo.tQueue WHERE cName='tArtikel' AND kWert=0

Jetzt den Webshopabgleich neu starten und prüfen ob dieser fehlerfrei durchläuft.

Bildschirmfoto-JTLwawi-Fehler-falscher-Parameter-300x134
Bildschirmfoto-JTLwawi-Fehler-falscher-Parameter-sql-selectBildschirmfoto-JTLwawi-Fehler-falscher-Parameter-sql-delete

Nokia E7 Symbian Delight 1.0 MMS Service

Kurze Notiz weil es vor ein paar Stunden benötigt wurde. Es ging um ein Nokia E7 welches keine MMS senden und empfangen konnte. Ein Netzzugang war nicht definiert.

Telefon Nokia E7

  • Typ: RM-626
  • Delight E7 V 1.0
  • Softwareversion: 111.040.1511

Einstellung Zugang Anbieter Congstar

  • Einstellung öffnen: Menü → System → Einstellungen → Verbindungen → Einstellungen → Netzziele → Internet
  • Optionen → Neuer Zugangspunkt → Automatisch ja → Mobile Datenverbindung → ZP: congstar MMS
  • congstar MMS auswählen → Einstellungen wie folgt
    • Verbindungsname: congstar MMS
    • Übertragungskanal: mobile Daten
    • Zugangspunktname: internet.t-mobile
    • Benutzername: congstar
    • Passwort Abfrage: ja
    • Passwort: congstar
    • Authentifizierung: Normal
    • Startseite: mms.t-mobile/servlets/mms
  • optionen → Erweiterte Einstellungen
    • Netztyp: IPv4
    • Telefon IP Adresse: Automatisch
    • DNS Adresse: 193.254.160.1
    • Proxy-Server Adresse: 172.28.23.131
    • Proxy-Portnummer: 8008
  • Startseite → Menü → Mitteilungen → Optionen → Einstellungen → Multimedia Mitteilungen → Verwendeter Zugangspunkt → congstar MMS auswählen

Fertig :)

Zuletzt geänderte Dateien finden

Wir werden in Zukunft auch Kurzanfragen zu Server „Problemen“ hier veröffentlichen. Vielleicht helfen diese kurzen Tipps dem ein oder anderen weiter. Diese Tipps werden unter der Kategorie knowledge base (KB) veröffentlicht.

Frage:

Wie finde ich auf meinem dedizierten Server die zuletzt geänderten php Dateien? Am besten mit einer Option wo ich die Tage vorgeben kann?

Für diese Aufgabe kann man das kleine Tool find benutzen. In obiger Anfrage handelte es sich um Dateien mit der Endung .php im Verzeichnis /var/www/ inklusive der Unterverzeichnisse. Für eine schönere Ausgabe in das Verzeichnis wechseln

cd /var/www

und dort die suche mittels find starten

find . -name '*.php' -type f -mtime -1

Was bedeutet das alles

  • find ⇒ Das Programm an sich
  • . ⇒ Verzeichnis Angabe. Der Punkt bedeutet ab hier/aktuelles Verzeichnis
  • -name ‚*.php‘ ⇒ Der Dateiname ist *.php (* ist Platzhalter für alle Zeichenfolgen)
  • -type f ⇒ es handelt sich um eine Datei
  • -mtime -1 ⇒ innerhalb des letzten Tages (24 Stunden)

Noch eine kurze Erklärung zu mtime.

  • -1 ⇒ innerhalb des letzten Tages
  • +1 ⇒ älter als 1 Tag
  • -8 ⇒ innerhalb der letzten 8 Tage
  • 5 ⇒ 5 + 1 Tag

Für alles weitere, man find :)

modified ecommerce breadcrumb nur auf bestimmten Seiten

Möchte man die breadcrumb (Brotkrümel Navi) nur auf bestimmten Seiten anzeigen, reicht eine kurze if Abfrage. In unserem Beispiel möchten wir die breadcrumb überall außer auf der Startseite und im Checkout (Bestellprozess) anzeigen. Der Standard Eintrag in der index.html ist folgender

<ol class="breadcrumb well">{$navtrail}</ol>

Diese mit folgenden if Abfragen umschließen

      {if $smarty.get.cPath!=null}
				{if !strstr($smarty.server.PHP_SELF, 'checkout')}
					<ol class="breadcrumb well">{$navtrail}</ol>
				{/if}
      {/if}

Diese Abfrage macht nichts anderes als

Bin ich nicht auf der Startseite?
  Und bin ich nicht im Checkout?
    Dann zeige die Navigation (breadcrumb)
  ende checkout Frage
ende Startseite Frage

Dieses Beispiel lässt sich ebenso auf Boxen, Spalten und andere Template Elemente anwenden. Getestet mit modified eCommerce ab 1.06.

modified ecommerce Versand Zone Weltweit

Eine ganz prekäre Angelegenheit ist in meinen Augen der Pauschalversand Weltweit. Aber wenn es gewünscht ist, dann soll es so sein. Es sollte sich dennoch jeder Betreiber eines Online Shops über Inselzuschläge, Zoll usw. im klaren sein.

Ausgangslage war der Versand in zwei Zonen. Zum einen Deutschland und zum anderen Weltweit. modified ecommerce bietet dafür das Modul Versand nach Zonen welches Standard inbegriffen ist. Das Problem, in das Feld der Zonenangabe passen maximal 255 Zeichen. Zählt man alle Länder nach ISO-3166-1 auf, reichen diese 255 Zeichen bei weitem nicht aus. Das einfachste ist an dieser Stelle, die zones.php um den Eintrag Weltweit zu erweitern.

Öffnen der Datei includes/modules/shipping/zones.php und nach folgendem Eintrag suchen (ca. Zeile 143)

for ($i=1; $i<=$this->num_zones; $i++) {
        $countries_table = constant('MODULE_SHIPPING_ZONES_COUNTRIES_' . $i);
        $country_zones = explode(",", $countries_table); // Hetfield - 2009-08-18 - replaced deprecated function split with explode to be ready for PHP >= 5.3
        if (in_array($dest_country, $country_zones)) {
          $dest_zone = $i;
          break;
        }
      }

Diesen Eintrag um den Wert aller ISO Codes erweitern

      for ($i=1; $i<=$this->num_zones; $i++) {
        $countries_table = constant('MODULE_SHIPPING_ZONES_COUNTRIES_' . $i);
        $country_zones = explode(",", $countries_table); // Hetfield - 2009-08-18 - replaced deprecated function split with explode to be ready for PHP >= 5.3
        if (in_array($dest_country, $country_zones)) {
          $dest_zone = $i;
          break;
        }
        // BOF-20141008-CSNAO-WORLD
         if ($countries_table == 'WORLD') {
         $dest_zone = $i;
         break;
         }
        // EOF-20141008-CSNAO-WORLD
      }

Im Backend kann man dann als ISO Code unter Zone 2 WORLD eintragen. Und schon hat man seine Aufteilung in die zwei Zonen Deutschland (DE) und Weltweit (WORLD). Anbei noch ein Snapshop vom Backend mit dem WORLD Eintrag. Die Gewicht/Preis Angaben dienen nur dem Beispiel.

Shop modified eCommerce Versand nach Zonen Weltweit

Shop modified eCommerce Versand nach Zonen Weltweit

D und V Server PHP Deprecated Status E-Mail

Wenn man eine Statusmail von Cron seines Dedizierten oder V-Servers bekommt mit dem Inhalt:

PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0

dann einfach in der Datei /etc/php5/cli/conf.d/ming.ini den Kommentar in der ersten Zeile löschen.
Betrifft derzeit nur Server mit Debian 7 die vor dem 21.09.14 geordert wurden. Für die Managed Server und Buchungen nach dem 21. wurde dies schon umgesetzt.

WordPress Wartungsmodus beenden

Manchmal geht WordPress bei Updates (meist wenn man mehrere Updates auf einmal macht) in den Wartungsmodus und man kommt weder auf das Front- noch Backend. Sollte dies passieren, kann man den Wartungsmodus durch löschen der Datei .maintenance beenden.

Dazu in den Hauptordner der WordPress Installation wechseln, .maintenance suchen und löschen.

Nach dem löschen der Datei ist WordPress wieder erreichbar. Sollte man die Datei nicht sehen, werden versteckte Dateien ausgeblendet. Diese einfach anzeigen und die Datei wird sichtbar.

Am besten die Updates immer nacheinander ausführen. Kostet zwar im ersten Moment Zeit, spart einem aber ggf. das suchen.