Wordpress auf Amazon EC2 Server installieren – in 5 Minuten

In dieser Anleitung erkläre ich Schritt für Schritt die automatisierte Installation von Wordpress auf einem Amazon EC2 Server (EC2 = Elastic Compute Cloud = virtueller Server) mithilfe eines von mir geschriebenen Scripts. Damit lässt sich Wordpress schnell, einfach und gehärtet installieren.

Dieser Artikel ergänzt die Beispielinstallation im Video.

Installiert wird ein LAMP Server (Linux – Apache - MySQL – PHP) mit aktuellem Wordpress. Die Installation erfolgt auf einem Amazon EC2 Server mit Amazon Linux AMI.

Das Installationsskript automatisiert die Schritte folgender Quellen

Voraussetzungen für die Installation

Ein Konto bei Amazon Web Services anlegen

Wer einen EC2 Server für Wordpress verwenden will, benötigt ein Konto bei AWS. Für den Start bietet Amazon 1 Jahr lang kostenlose Nutzung für einige Services. Die genauen Konditionen stehen hier: http://aws.amazon.com/

EC2 Server starten

In der AWS Management Console in den Bereich „EC2 – virtual Servers in the Cloud“ wechseln.
Über den Button „Launch Instance“ wird ein neuer virtueller Server angelegt, konfiguriert und gestartet.
Für die hier beschriebene automatisierte Wordpress Installation wird als AMI (Amazon Machine Image) der erste Auswahlpunkt vorausgesetzt: das „Amazon Linux AMI 2015.03 (HVM), SSD Volume Type“.
 

EC2 Amazon Machine Image für Wordpress auswählen


In den weiteren Schritten des Launch-Dialogs können die Standard Werte einfach übernommen werden.

Ausnahme: In Schritt 3 „Configure Instance Details“ den Punkt „Auto-assign Public IP“ auf „Enable“ setzen. Damit bekommt der Server eine öffentliche IP Adresse und kann als Webserver dienen. Wer die Instanz dauerhaft nutzen möchte, dem empfehle ich nach dem Serverstart die Zuweisung einer Elastic IP-Adresse. Details zu Elastic IP sind hier nachzulesen: http://docs.aws.amazon.com/de_de/AmazonVPC/latest/GettingStartedGuide/EIP.html

Direkt bevor der Server startet, nach Schritt 7, wird ein Key Pair ausgewählt oder erzeugt. Diese Schlüsseldatei muß sofort heruntergeladen und sehr gut aufgehoben werden. Der Pfad zu dieser Datei wird später für das Installationsskript benötigt. 

 

EC2 Key Pair erzeugen

Python und Fabric vorbereiten

Ist Python auf dem Rechner installiert? Linux und Mac User haben es leicht. Normalerweise ist Python vorinstalliert. Das lässt sich in einer Shell prüfen: einfach mal „python“ eingeben. Damit startet der Interpreter und zeigt die Versionsnummer gleich mit an. Benötigt wird Python in Version 2.7. 

Mit einem Windows System habe ich das Skript nicht getestet. Prinzipiell sollte es auch unter Windows laufen. Einfach unter www.python.org Python runterladen und installieren.

Fabric setze ich für die Fernwartung des Servers ein. Damit lassen sich die benötigten Befehle ganz einfach automatisiert auf dem entfernten Rechner ausführen. Fabric ist normalerweise nicht vorinstalliert. Eine detaillierte Anleitung gibts unter http://www.fabfile.org/installing.html


Schnelle Fabric Installation: einfach in der Kommandozeile folgendes eingeben:

$ pip install fabric

Skript install-wordpress-on-amazon-ec2 runterladen und konfigurieren

Die aktuelle Version meines Skripts steht hier zum Download bereit: https://bitbucket.org/hoffmannchris/install-wordpress-on-amazon-ec2

Individuelle Einstellungen in der Datei settings.py 
Diese wird mit einem Texteditor deiner Wahl bearbeitet. Hier werden alle Daten eingegeben, die das Script für die automatische Installation braucht. Änderungen an anderen Dateien sind nicht notwendig.


Im Video ist zu sehen wie ich meine settings.py Datei für einen Demo Wordpress Server bearbeite. Du musst natürlich deine eigenen Werte für

  • SSH_KEY_PATH 
  • HOSTS
  • LIVE_HOSTNAME
  • DB_USER 
  • und DB_PASS 

einsetzen.

Mit „BASE_PLUGINS“ kannst Du beliebige URLs von ZIP Dateien deiner häufig verwendeten Wordpress Plugins einsetzen. Diese lädt das Script auf den Server, und entpackt sie ins Plugin-Verzeichnis. Damit sind sie nach der Installation gleich im Wordpress vorhanden und du kannst sie mit wenig Aufwand aktivieren.

EC2 Server mit LAMP Stack und Wordpress installieren

Alle Vorbereitungen gemeistert? Dann geht die Installation los. Auf der Kommandozeile deiner Shell wechselst du ins Verzeichnis des install-wordpress-on-amazon-ec2 Scripts.
Mit folgendem Kommando startet die automatisierte Installation per Script:

$ fab install

Skriptablauf:

  1. Update des Linux - alle vorhandenen Linux Software Pakete werden aktualisiert
  2. LAMP Server Installation - Linux, Apache, MySQL und PHP installieren und Zugriffsrechte anpassen
  3. MySQL Datenbank absichern - für MySQL werden alle Schritte der mysql_secure_installation ausgeführt. Damit wird die Datenbank abgesichert. Details findest du unter https://dev.mysql.com/doc/refman/5.0/en/mysql-secure-installation.html
  4. Imagemagick installieren. Wordpress braucht eine Software wie imagemagick um Bilder bearbeiten zu können. Quelle: http://www.imagemagick.org
  5. Memcached installieren. Ich empfehle sehr, ein Caching-Plugin wie wp-super-cache einzusetzen. Memcached wird von solchen Cache-Plugins benötigt, um die Ergebnisse von Datenbankabfragen und vorgenerierten HTML-Seiten zwischen zu speichern. Der Server wird entlastet und Webseiten werden schneller ausgeliefert. Dadurch verbessert sich die Ladezeit meistens deutlich. Quelle: http://memcached.org
  6. Wordpress installieren
    Für die Wordpress Installation wird der Ablauf aus dem Amazon Tutorial verwendet: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hosting-wordpress.html

Die wichtigsten Schritte der Wordpress Installation:

  1. Aktuelles Wordpress Paket auf den Server laden
  2. und ins Verzeichnis des Apache Webservers kopieren
  3. Datenbank für Wordpress anlegen, mit dem Datenbank Benutzer und Passwort aus settings.py
  4. SALT Werte für die Wordpress Konfigurationsdatei erzeugen
  5. wp-config.php – die Konfigurationsdatei für Wordpress mit allen Voreinstellungen hochladen
  6. Berechtigungen für Dateien anpassen
  7. Plugins aus der settings.py Variable BASE_PLUGINS runterladen, entpacken und ins Worpress Plugin Verzeichnis kopieren

✔  Jetzt läuft Wordpress auf dem EC2 Server.


Du kannst dein Wordpress jetzt in einem Webbrowser aufrufen, einen Admin Nutzer anlegen und starten.

Optional: Wordpress Hardening – Härtung zur Absicherung gegen Hacker

Wenn Wordpress fertig konfiguriert ist, besteht mit meinem Script eine einfache Möglichkeit es gegen potentielle Angreifer abzusichern.

Damit wird es "ungemütlicher" Wordpress zu erweitern, da einige teils restriktive Dateiberechtigungen gesetzt werden. Der Webserver darf dann nicht mehr alle Dateien verändern.

Dadurch steigt die Sicherheit der Webseite gegen externe Angriffe erheblich, was in der heutigen Zeit ein wichtiger Faktor für jede Homepage ist.

Befehl auf der Kommandozeile (der die Absicherung durchführt):

$ fab hardening_wordpress

Mehr zur Absicherung von Wordpress gegen Hacker ist hier beschrieben: http://codex.wordpress.org/Hardening_WordPress

Das Script führt bereits folgendes aus:
Datei Berechtigungen anpassen für

  • .htaccess
  • /wp-admin/
  • /wp-includes/
  • /wp-content/

Zugriffsregeln in der Datei .htaccess setzen

  • Zugriff auf wp-includes verbieten
  • Zugriff auf wp-config.php verbieten

Fazit

So schnell lässt sich ein abgesichertes Wordpress auf einem Amazon EC2 Server installieren. 

Der laufende Betrieb eines solchen Servers erfordert administrative Linux Kenntnisse!

Selbstverständlich lässt sich auf diese Art auch ein EC2 Server mit Apache und virtuellen Hosts installieren - oder alternativ zum Apache mit nginx. Fabric wird ja nur als Werkzeug zur Automatisierung von wiederholbaren Abläufen benutzt. 


Ich wünsche euch viel Erfolg bei der Installation und mit euren Projekten. Über Feedback freue ich mich ;-)

Hier geht's zum Skript  

Beitrag teilen:
Auf facebook teilenAuf google+ teilenAuf twitter teilen

Kommentare

Flo 2 Jahre, 1 Monat her

Hi,

vielen Dank für das super Tutorial!! Ich bin neu bei EC2 und mir hat es sehr geholfen :-)

Ich hab allerdings das Hardening Script zu früh gemacht. Es erschwert die Bearbeitung der Seite sehr. Gibt es einen (einfachen) Weg, die dort gemachten Einstellungen wieder rückgängig zu machen (und am Ende, wenn die Seite fertig ist nachzuholen)?
Gruß Flo

Link | Antwort

Christian Hoffmann 2 Jahre, 1 Monat her

Hallo Flo,
danke für dein Feedback. Ich war in Urlaub, deswegen hat die Antwort etwas gedauert...
Aktuell gibt es noch keine einfache Lösung das Wordpress Hardening rückgängig zu machen. Hierfür müssen diverse Datei- und Verzeichnisberechtigungen manuell angepasst werden. Für die nächste Version ist eine entsprechende Funktion vorgesehen.

Viele Grüße
Christian

Link | Antwort

Neuer Kommentar

benötigt

benötigt (nicht veröffentlicht)

optional