Kategorien
Server Administration Webdeveloper Tools

Xampp Mails verschicken von localhost mit sendmail

Bei der lokalen Entwicklung unter Windows mit Xampp muss man natürlich auch Mails verschicken können und Tests durchführen.

Ohne eine Konfiguration von sendmail bekommt man unter Windows folgende Fehlermeldung:

mail() [<a href='http://www.php.net/function.mail'>function.mail</a>]: "sendmail_from" not set in php.ini or custom "From:"

Mit den folgeden Einstellungen ist es möglich SMTP Mails lokal zu versenden z.B. mit PHPMailer oder mit WordPress wp_mail().

Folgende Schritte sind nötig dafür um über Sendmail Mails zu verschicken, welches in Xampp mitgeliefert wird:

1. In der xampp/sendmail/sendmail.ini muss ein gültiges E-Mail Konto angegeben werden, über welches E-Mails versendet werden sollen:

[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password

2. xampp/php/php.ini Einstellungen (entkommentieren):

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 587

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = postmaster@localhost

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "\"\xampp\sendmail\sendmail.exe\" -t"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; Log all mail() calls including the full path of the script, line #, to address and headers
mail.log = "\xampp\apache\logs\php_mail.log"

Damit wird aktiviert, dass ein Fehler Log geschrieben wird.

Danach muss der Apache neu gestartet werden und nun können mit dem PHP mail()-Befehl E-Mails verschickt werden von Xampp unter Windows..

Mögliche Fehler aus dem Sendmail Error Log: sendmail.log

errormsg='cannot connect to localhost, port foo: Permission denied'

Kann über den Port keine  Mail versendet werden, es kann durch einen Alternativen Port gesendet werden, wie z.B. bei einem Hotmail Account

[sendmail]
smtp_server=smtp.live.com
smtp_port=25
smtp_ssl=tls
tls_certcheck off
error_logfile=error.log 
debug_logfile=debug.log 
auth_username=foo@hotmail.com 
auth_password=my-hotmail-password
Kategorien
Server Administration

SVN Server unter Ubuntu Konsole installieren und einrichten

Wer ein schickes SVN benötigt, kann dies auf der Konsole über SSH ganz einfach installieren:

apt-get install subversion

Dann kann ein neues Verzeichnis namens svn angelegt werden vorzugsweise im Ordner /srv/ (=Services).

mkdir /srv/svn

und ein Repository erzeugt werden darin

Kategorien
Server Administration

Host Europe Domain Packet umziehen DNS Server ändern

Folgende Schritte sind nötig um seine Domain von einem Webpack auf einen Server von Host Europe um zuziehen:

Im Plesk Server-Adminstration:

  • Website und Domains auswählen
  • Button Add new Domain
  • Domain Name ausfüllen: xxx.de und Document root: httpdocs/myDomain
  • Anlegen
  • angelegte Domain in Liste unten finden und auf das Icon mit den beiden Fähnchen klicken (Change DNS Zone Settings)
  • 2 Nameserver Einträge hinzufügen: Add Record Button betätigen
    1. Record Type NS, Name server: IP des Servers (lvpsxx-xxx-xx-xxx.dedicated.hosteurope.de)
    2. Record Type NS, Name server: IP des Host Europe DNS Servers  (ns2.hans.hosteurope.de)
  • löschen des Eintrags:
    domain.com NS ns.domain.com.

Alle Änderungen bestätigen 2 mal bestätigen.

Em Ende Apply DNS Template Changes.

Neu: Zonentransfer/AXFR freigeben in Plesk: In den allgemeinen DNS-Einstellungen finden Sie unter „Settings/Einstellungen > DNS-Template-Settings/DNS-Template-Einstellungen“ den Punkt „Transfer Restrictions Template/Transferbeschränkungen-Template“ (Plesk 9: „Start > DNS-Einstellungen > Transferbeschränkungen-Template“). Damit unsere Nameserver die DNS-Einstellungen von Ihrem Server übertragen dürfen geben Sie dort bitte das Netz 80.237.128.0/24 frei.

Im kis.hosteurope.de

  • vor der Domain ein Häckchen setzen und die Domain auf „als Reseller verwalten“ setzen: Link
  • vor der Domain ein Häckchen setzen und updaten auswählen
  • Nameserver anklicken und weiter
  • Primary Server: lvpsxx.xx.xx.xxx.dedicated.hosteurope.de
  • Secondary Nameserver: AUTO
  • bestätigen und nochmal“Updates ausführen“ bestätigen

Zur Kontrolle kann der DNS Health Online Dienst genutzt werden.

Es ist wichtig zu wissen, dass

Bitte beachten Sie, dass es 24 – 48 Stunden dauern kann, bis die neuen Einträge in der jeweiligen Whois ersichtlich sind und die Domain erreichbar ist.

Der offizielle Guide von Host Europe zu dem Thema ist hier.

Kategorien
Server Administration

PHP und MySQL auf Root Server updaten SSH unter Ubuntu

Für einen frisch aufgesetzten Server lohnt es sich die aktuellste Version von MySQL und PHP zu installieren, falls diese noch nicht vorinstalliert sind.

PHP und MySQL updaten

Bestehende PHP Installation kann man mit dem folgenden Befehl finden:

php -v

Bei meinem Server war u.a. zu lesen:

PHP 5.3.2-1ubuntu4.18 with Suhosin-Patch (cli) (built: Sep 12 2012 19:12:47)

Also ist ein Update sinnvoll auf die neuste PHP Version 5.4.12. Dafür gibt es ein praktisches Tutorial, was bei mir ohne Probleme funktioniert hat. Damit wird sowohl MySQL, PHP und Apache auf die neuste Version geupdatet mit ein paar einfach Befehlen.
Dies kann kontrolliert werden durch erneutes php -v

PHP 5.4.12-1~lucid+1 (cli) (built: Feb 25 2013 18:20:00)

Sicherheits Konfiguration

Kategorien
Server Administration

DNS – Bind9 Nameserver Konfiguration – Teil3

Um seinen eigenen DNS Server unter Ubuntu zu konfigurieren, muss man nur BIND installieren:

sudo apt-get install bind9

und einfach selber konfigurieren, wie im Folgenden gezeigt wird.

Die Funktionsweise von BIND

Die zentrale Datei   /etc/bind/named.conf:

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

In dieser Datei werden nur 3 andere Datein inkludiert, die die Funktionalität beinhalten:

Die etc/bind/named.conf.options beinhaltet allgemeine Konfigurationsparameter für den Nameserver, z.B. ob rekursive Anfragen zulässig sind oder ob die Daten an andere Nameserver weitergegeben werden sollen.

Kategorien
Server Administration

DNS – Namensauflösung mit Nameservern – Teil2

Wenn man eine Domäne im Internet abfragt, wird die IP auf folgende Arten bestimmt:

Rekursive Namensauflösung

Der angefragte konfigurierte Nameserver kümmert sich komplett um das Auflösen und Cachen der DNS-Anfragen. Der Nameserver fragt selber iterativ andere Nameserver nach der Adresse, bis er die Antwort oder das Scheitern an den Client zurück sendet. Der Resolver ist der Teil des Clients, die die Kommunikation mit dem Nameserver übernimmt.

Dns-abfrage
Rekursive Namensauflösung

Kategorien
Server Administration

DNS – Grundlagen mit dig – Teil1

Was ist das Domain Name System (DNS)?

Die eindeutige Adresse im Internet, über die Server und Rechner gefunden werden können, ist allein die IP-Adresse: Bsp. IPv4-Adresse: 13.1.5.128.

Diese Adresse haben den Nachteil, dass sie schwer merkbar und nur flach hierarchisch strukturiert.

Zur Lösung des Problems wurden die DNS-Adressen eingeführt (Domänen), Beispiel: www.google.de.

Diese Adressen werden auf die IP-Adressen der Server gemappt durch Domain Name Server. Das bedeutet, wenn man die Adresse www.google.de eintippt in den Browser wird zuerst ein DNS-Lookup Request ausgeführt, der die IP Adresse bestimmt. Dies kann mit dem dig-Befehl unter Ubuntu nachvollzogen werden.

Kategorien
Amazon AWS Server Administration

Analyse: Amazon EC2 als günstige Root Server Alternative zur Entwicklung

Auf der Suche nach einem günstigem Root-Server zum Entwickeln und betreiben von meinen Webseiten bin ich über Amazon EC2 gestolpert und will im folgenden berechnen, ob sich der Betrieb finanziell lohnt im Vergleich zu einem normalen Root Server.

Die Amazon EC2 Preistabelle findet man hier.

Update:

Noch billiger sind die Reserved Instances, bei denen man für einen bestimmten Zeitraum (1 oder 3 Jahre) eine Instanz zu einem festen Preis mietet.

So bezhalt man z.B. für eine Linux Nano Instanz mit Sitz in Frankfurt jährlich nur 40$ oder für 3 Jahr 79$. Unschlagbar billig.

Das klingt erstmal günstig, aber richtig teuer wird Amazon, wenn es um große Systeme mit viel Traffic geht, da ist es günstiger selber ein Datacenter zu betreiben.

Achtung: EC2 Micro Instance ist ein Jahr kostenlos für Neukunden.

Amazon rechnet im Gegensatz zum normalen Root Server Anbietern in Stunden ab, da es sich um einen elastischen Cloud Service handelt. Es sollte bei der Rechnung immer im Hinterkopf gehalten werden, dass EC2 den Riesenvorteil einfach zu skalieren, indem man neue Instanzen dazuschaltet bei Bedarf.

Ein Rechenbeispiel für einen EC2 Entwicklungserver mit Standort Europa (Irland):

Preisvarianten für eine Micro Instance, die besonders günstig, aber nicht besonders leistungsfähig sind mit 613 MB RAM, aber vollkommen ausreichend für den Betrieb kleinerer Webseiten und als Entwicklungserver:

1. On-Demand Instances: 0,020$ pro Stunde

2. Reserved Instances mit geringer Auslastung: 0,015$ pro Stunde + $23*

3. Reserved Instances mit mittlerer Auslastung: 0,01$ pro Stunde + $54*

4. Reserved Instances mit hoher Auslastung: 0,008$ pro Stunde + $62*

Kategorien
Apache Webserver WordPress

WordPress Sicherheit: sicheres Login

Die sicherste Methode seinen Block zu schützen vor unerlaubten Login ist die Verwendung einer .htpasswd Authentifizierung.

Die Standard Login Seite von WordPress ist nicht sicher, weil Hacker Programme besitzen, die wahrlos Passwörter ausprobieren. Wenn dann noch der Login Namen bekannt ist, weil bei WordPress der Namen des Authors unter den meisten Blog Posts steht, sollte man Wert auf Sicherheit legen.

Auf jeden Fall sollten die automatischen Fehlermeldungen abgeschaltet werden bei falschen Passwort oder falschem Login, welche gefährliche Hinweise geben. Dafür muss nur in die functions.php folgender Code eingegeben werden:

add_filter( 'login_errors', create_function('$a', "return null;"));

Ich empfehle einen .htpasswd Schutz für das /wp-admin/ – Verzeichnis anzulegen.

Die .htaccess Datei gehört auch in das Root – Verzeichnis, bspw:

<Files "wp-login.php">
AuthName "backend"
AuthType Basic
AuthUserFile Root-Pfadwordpress/.htpasswd
require valid-user
</Files>

Der notwendige Root-Pfad kann folgender Maßen bestimmt werden:

echo getcwd(); 

In die .passwd kommen Login und passwort in gehachter Form. Am besten den htpasswd Generator dafür benutzen und die Daten vorher notieren.

Die Leserechte sollten auf 0444 gesetzt werden für diese beiden Dateien, damit Sie nicht überschrieben oder gelöscht werden können.

Sinnvoll ist auch die Leserechte für kritische Dateien und alle php-Dateien einzuschränken in der „Haupt“ .htaccess:

<FilesMatch "(\.htaccess|\.htpasswd|wp-config\.php|liesmich\.html|readme\.html)">
  order deny,allow
  deny from all
</FilesMatch>

Dies ist besonders wichtig, um Hacker-Bots abzuwähren, die folgender Maßen vorgehen:

Sie suchen im Netz auf Seiten nach bestimmten WordPress-Seiten und verwendeten unsicheren Plugins, z.B. habe ich solche Anfragen protokoliert, was auf Sicherheitslücken der Plugins hindeutet:

"wp-content/themes/clockstone/readme.txt" 
"wp-content/plugins/complete-gallery-manager/readme.txt"

(Diese Themes bzw. Plugins werden bei nicht benutzt)

Kategorien
Apache Webserver PHP SEO Webdeveloper Tools

Profiling mit XDebug und Webgrind

Wenn die Performance einer Webseite nachgibt, stellt man sich oft die Frage, an welche Funktion/Modul liegt der Performanceverlust? Die Lösung ist das Profiling einer Webseite.

Profiling beschäftigt sich der Analyse der Funktionsaufrufe eine Webseite. Es kann dadurch analysiert werden, welche Teile sehr lange brauchen oder welche Funtionen doppelt aufgerufen werden.

Profiling sollte nicht auf einem Produktivsystem ausgeführt werden, weil die Performance einbricht und Ausgaben sichtbar sind. Übrigends: Wer seine Webseite schneller macht, SEO optimiert gleichzeitig.