Magento Testserver installieren und einrichten

Beitrag von Werner Ziegelwanger, Head of Development bei mStage

In diesem Artikel beschreibe ich wie man mit der Software Virtualbox unter Verwendung eines freien Debian Linux Servers einen Magento Testserver installieren und einrichten kann. Für Entwicklungszwecke benötigt man hin und wieder ein Testsystem, auf dem man mehrere Magento Versionen installiert hat und man weiterführende Software verwenden kann, wie der Xdebug Profiler. Meistens liegen Entwicklungsserver auf Managed Server, auf denen man nicht beliebig Software ausführen kann.

 

Der Vorteil eines virtuellen Testservers sind:

  • ein virtuelles System kann man auf jedem beliebigen Host Betriebssystem ausführen
  • ein virtuelles System kann man recht einfach Klonen – damit hat man für die Entwicklung eines neuen Moduls immer ein frisches System
  • Admin – man hat root Rechte und kann im eigenen System beliebige Software installieren.

Für den virtuellen Magento Testserver benötigt man folgendes:

  • ein Debian Installations Image (diese Anleitung verwendet Debian 7)
  • installiertes VirtualBox

Folgende Schritte sind notwendig:

1) Aktuelle Debian Linux CD herunterladen (aktuell Debian 8)

2) Virtualbox starten und neue Maschine erzeugen

Virtuelle Maschine erzeugen
Für die virtuelle Maschine sind folgende Einstellungen sinnvoll:

Speichergröße: zB 512 MB oder 1024 MB
Festplatte: Festplatte erzeugen
VDI lassen
feste Größe
8 GB

Sollte man einen umfangreichen Shop mit zahlreichen hochauflösenden Bildern aufsetzen wollen sind 8 GB zu wenig. Die 8 GB sind jedoch ausreichend für mehrere Magento Versionen und die Entwicklung eigener Module.

3) Einstellungen der vituellen Maschine anpassen

02
→ System: Diskette entfernen und Zeigergerät auf PS/2 Maus
→ Speicher: beim leeren CD Laufwerk das CD Image auswählen
→ Netzwerk

  • Adapter 1 auf Host-only (für den SSH Zugriff auf den virtuellen Server) ändern, sollte unter Name nichts auszuwählen sein unter Datei->Globale Einstellungen bei Netzwerk unter Host-only Netzwerke ein neues Netzwerk einrichten.
  • Adapter 2 sollte man auf NAT stellen. Das ist nötig, damit der Server auf das Internet des Host Systems zugreifen kann.
  • Maschine starten!

4) Installation

03

Wenn das Debian Image korrekt eingestellt wurde, dann bootet die virtuelle Maschine direkt von diesem. Die einfache Installation ohne grafischen Stil wählen (reicht für die schnelle Installation aus).
Bei der Installation:
→ Sprache wählen: idealerweise German
→ Land wählen: zB Österreich
→ Tastaturlayout: Deutsch

Bei der Auswahl der Netzwerk-Schnittstelle muss man unbedingt jene auswählen, bei der man das NAT konfiguriert hat. D.h. in unseren Fall für Adapter 2 die 2. Schnittstelle wie im Bild zu sehen:

04

Nach der Netzwerkkonfiguration wird man um einige Eingaben gebeten:
→ Rechnername: zB magento-debian
→ Domain-Name: habe ich frei gelassen
→ Root-Passwort: nach belieben, aber unbedingt merken!
→ Benutzer: zB Magento Administrator
→ Benutzername: wird mit magento vorgeschlagen
→ Passwort: der Benutzer benötigt auch ein Passwort

Festplatte partitionieren:

  • Hier kann man den Vorschlag mit „Geführt – vollständige Festplatte verwenden“ gerne nehmen. Da wir mit der Maschine nichts weiteres vor haben ist diese Einstellung am einfachsten.
  • Alle weiteren Einstellungen default lassen, bei der Abfrage ob die Änderungen auf die Festplatte geschrieben werden sollen mit Ja bestätigen.
  • Nach erfolgreicher Formatierung beginnt nun die Installation des Grundsystems, welches einige Zeit dauern kann – es wird Zeit für eine Kaffeepause!
  • Auf die Frage ob weitere CDs eingelesen werden sollen mit Nein antworten. Wir verwenden die NAT Netzwerkschnittstelle und können so bei Internetverbindung vom Host System weitere Pakete direkt vom Online-Repository herunterladen.
  • Im nächsten Schritt wählen wir deshalb Ja, wir wollen einen Netzwerkspiegel einrichten. Österreich mit zB ftp.at.debian.org reicht hier. Proxy haben wir keinen, wir geben also auch hier nichts ein.
  • Bei der Softwareauswahl sollten wir nur das installieren was wir auch benötigen und zudem möglichst wenig, damit das System schlank und performant bleibt. Ich habe folgendes ausgewählt: Web Server, SQL database, File Server, SSH Server und die Standard-Systemwerkzeuge

Softwareauswahl

Mit der Installation vom Bootloader ist die Installation abgeschlossen. Gratulation zum eigenen Debian Server!

5) Konfiguration

Nach einem Neustart können wir uns am System anmelden!

Installation von weiteren Paketen:

Zuerst aktualisieren wir unsere Paketliste mit folgenden Befehlen:
su
(nun ist das root Passwort einzugeben)
apt-get update
apt-get upgrade

Erste Netzwerkschnittstelle einschalten:
Es kann sein, dass aufgrund der Installation die Schnittstelle für den Host-only-Adapter deaktiviert ist. Das erkennt man über das Kommando: ifconfig

Es sollte hier eth0 dabei sein. Sollte das Kommando nicht gehen, dann zuerst zum root User switchen mit: su

Ist als eth0 noch nicht aktiviert, so kann man das mit dem Befehl: ip link set dev eth0 up

Ab diesem Zeitpunkt sollte die VM vom Host pingbar sein. D.h. die IP Adresse 192.168.56.101 (das ist in den DHCP Einstellungen des Host-only-Adapters hinterlegt. Eventuell hat deine Maschine eine andere IP Adresse).

Falls die eth0 Schnittstelle nach dem Booten immer deaktiviert ist, dann unter
nano /etc/network/interfaces
folgende Zeilen einfügen:
auto eth0
iface eth0 inet dhcp

Falls bei der Installation eines Pakets die CD gebraucht werden sollte, dann kann man diese wieder einlegen (CD Knopf unten rechts im VirtualBox VM Fenster).

6) Installation von Software die man für Magento benötigt

MySQL Server:
Magento verwendet standardmäßig die bekannte MySQL Datenbank. Den MySQL Server kann man unter Linux sehr einfach installieren.
apt-get install mysql-server

Bei der Installation wird nach einem root Passwort gefragt. Hier unbedingt wieder das Passwort merken!

PHP und PhpMyAdmin:
Magento basiert auf der Programmiersprache PHP. Deshalb müssen wir für den Webserver die PHP Erweiterung installieren. Zusätzlich installieren wir auch phpmyadmin, ein Browser basierter MySQL Client:
apt-get install php5 phpmyadmin

Bei der Konfiguration muss hier Apache ausgewählt werden, der ist bereits installiert.

lighttpd wäre eine gute Alternative, jedoch bleiben wir beim alt bewährten Apache.

06

Für phpmyadmin wird gefragt, ob eine neue Datenbank angelegt werden daft. Dies mit Ja bestätigen. Es wird nun das root Passwort abgefragt, welches wir bei der MySQL Server Installation eingegeben hatten. Weiters wird ein phpmyadmin Admin Passwort benötigt.

CURL:
apt-get install php5-curl

Curl installieren wir, da dieses für die Magento Installation benötigt wird!

FTP:

FTP benötigen wir um auch mit Programmen wie Filezilla vom Hostsystem auf das Dateisystem des Debian Servers zuzugreifen. Das ist nicht unbedingt erforderlich, manche Programmierer benötigen das aber, vor allem dann, wenn es um Schnittstellen geht, die über FTP Dateien abfragen oder ablegen.
apt-get install proftpd

Bei der Auswahl des Modus können wir Inetd nehmen, da nicht mit starkem FTP Trafik zu rechnen ist. Mehr muss gar nicht konfiguriert werden, man sollte sich vom Host System beispielsweise mit FileZilla unter angabe der IP Adresse und des erstellen User mit Passwort bereits einloggen können.

7) Apache Konfiguration

Apache ist der Webserver. Dieser liefert die angefragten Seiten zum Browser des Benutzers. Es sind gegenüber der Standardkonfiguration 2 Änderungen für das Rewrite Modul zu machen.

Zuerst gehört das Modul aktiviert: a2enmod rewrite

Danach muss man Apache noch erlauben die .htaccess Dateien mit den Rewrite Einstellungen von Magento zu lesen und zu verarbeiten. Dazu muss die Apache Konfigurationsdatei geöffnet werden:
nano /etc/apache2/sites-enabled/000-default

Unter dem Tag <Directory /var/www> findet man die Zeile AllowOverride None. Diese wie folgt geändert: AllowOverride All

Achtung: Dies ist nicht mit der Einstellung bei dem Tag <Directory /> zu verwechseln!

Nach den Änderungen muss Apache noch neu gestartet werden: service apache2 restart

8) Magento Installation

Magento Installation

Nun ist es endlich soweit. Die Infrastruktur vom Server ist bereit und wir können Magento als Websoftware installieren. Für den Testserver installieren wir am besten gleich alle üblichen Magento Versionen.

Ich habe mir die wichtigen Magento Versionen
1.6.2.0
1.7.0.2
1.8.1.0
1.9.0.1
heruntergeladen und per SCP auf die VM kopiert. zB scp magento-1.6.2.0.tar.gz magento@192.168.56.101:magento-1.6.2.0.tar.gz

Folgendermaßen geht man bei der Installation einer Magento Version vor:

Magento Archiv vom home oder Download Verzeichnis nach /var/www kopieren und dort folgendermaßen entpacken: tar -xvfz magento-1.6.2.0.tar.gz

Danach findet man einen neuen Ordner magento. Da wir mehrere Versionen installieren benennen wir die Ordner jeweils um, zB so: mv magento magento-1.6.2.0

Nun kann man über einen Browser im Host System über die IP Adresse auf die Magento Installation zugreifen, zB so: 192.168.56.101/magento-1.6.2.0

Nun kann man Magento installieren. Während der Installation muss man eventuelle falsche Konfiguration ausbessern (zB falsche Dateirechte).

Falsche Dateirechte

Folgende Pfade müssen beschreibbar sein:
app/etc
var
media

Man kann diese Ordner folgendermaßen schreibbar machen:
cd /var/www/magento-1.6.2.0
chmod 777 app/etc
chmod -R 777 var
chmod -R 777 media

Datenbanken anlegen:

Nun ist es Zeit Datenbanken für die Magento Installationen anzulegen. Phpmyadmin ist bereits installiert und kann über den Browser am Host System erreicht werden. zB über: 192.168.56.101/phpmyadmin. Einloggen kann man sich mit root und dem während der Installation angegebenen Passworts. Ich habe für die 4 zu installierenden Magento Versionen jeweils eine Datenbank angelegt:

Neue Magento Datenbank anlegen

Nachdem wir also auch eine Datenbank haben, können wir mit der Installation fortfahren. Ich habe im Schritt Configuration folgendes eingegeben:

Magento Konfiguration
Database Name: den Namen der Datenbank (magento-1.6.2.0) und unter User Name und User Passwort root mit dem Passwort. Der root User sollte in einem Live System nicht angegeben werden, da erstellt man besser pro Datenbank einen eigenen Benutzer, für unser Testsystem spielt das aber keine Rolle.

Zusätzlich zu den Standard Einstellungen habe ich noch die Apache Rewrites aktiviert!

Sollte nun ein Fehler erscheinen, wie zB folgender:

PHP Extension 0 must be loaded
Dann müssen wir folgende Änderung am Magento Source Code im Magento Hauptverzeichnis durchführen:
nano app/code/core/Mage/Install/etc/config.xml
dort in Zeile 71 folgenden Inhalt:
<pdo_mysql/>
auf diese Zeile ändern:
<pdo_mysql>1</pdo_mysql>
gespeichert wird mit STRG+x und j

Nun wird Magento problemlos installiert!

Im letzten Installationsschritt gibt man noch Benutzerdaten und Logindaten ein. Danach geht’s schon zum Frontend oder Backend. Herzlichen Glückwunsch, du hast eine funktionierende Magento Installation!

Im nächsten Schritt wiederholen wir die Installation auch für die anderen Versionen.

Sobald alle Magento Versionen installiert sind, sollte man noch die Zugriffsrechte anpassen, damit man die Dateien auch als FTP Benutzer ändern kann. Das geht mit: chown -R magento:magento magento-1.6.2.0

Gratulation, der Testserver ist nun fertig und kann bereits zur Entwicklung verwendet werden. Es empfiehlt sich an diesem Punkt einen Sicherungspunkt zu erstellen oder gleich einen Klon des Servers abzulegen.

9) e-Mails versenden

12

Manchmal ist es wichtig, dass man auch die über Magento versendeten Mails bekommt. Das funktioniert aktuell noch nicht, wir benötigen einen Mailserver. Diesen installieren wir folgender maßen: apt-get install postfix

Bei der e-Mail wurde der Standardwert magento-debian um ein @firmenname.com geändert.

Falls postfix nicht funktioniert, dann kann man alternativ auch sendmail verwenden: apt-get install sendmail sendmail-bin

Sendmail kann standardmäßig keine Mails aus einer VM heraus senden, daher muss /etc/mail/sendmail.cf editiert werden:

Die Zeile mit DeamonPortOptions suchen und jeweils Addr=127.0.0.1 nach Addr=0.0.0.0 ändern.
Danach muss sendmail mit service sendmail restart neu gestartet werden.

Danach ist Euer Magento Testsystem fertig und ihr könnt loslegen!