Installation
02.05 Lokale Serverumgebung einrichten - Teil 1
Submitted by Hagen Graf on 7. May 2008 - 18:57xampp, mamp, Apache, PHP, MySQL. Wie installiert man das (xampplite) und wie sind die Zusammenhänge.
Buchkapitel zu diesem Video:
- 44991 Aufrufe
16.4 Installation auf dem Webserver
Submitted by Hagen Graf on 1. January 2008 - 17:03Herr Bertrand hat die Website nun lokal etwa so, wie er sich das vorstellt. Er hat in den vergangenen Wochen nach einem Provider für seine Website Ausschau gehalten und ist nach langer Suche bei einer kleinen Firma in der Nähe Kunde geworden. Die Firma bietet Herrn Bertrand eine SSL-geschützte Administrationsoberfläche mit dem Namen Plesk für die Einstellungen an seinem Webserver, den Datenbanken, der E Mail-Konfigurationen etc. an (Abbildung 16.53).

Abbildung 16.53: Admin-Oberfläche Plesk
PHP läuft im Safe Mode9. Die Datenbank kann mit einem installierten phpMyAdmin bearbeitet werden. Herr Bertrand wollte gern eine webbasierte Verwaltung für seinen Server, weil er sich nicht mühselig in Konfigurationsdateien einarbeiten wollte.
Exkurs
Außer Plesk gibt es noch zahlreiche andere Oberflächen wie beispielsweise Confixx, Visas und Webmin. Viele Provider wie 1und1, Strato, Hetzner und andere benutzen Eigenentwicklungen. Plesk wird hier exemplarisch kurz angerissen, die Zusammenhänge in anderen Oberflächen sind ähnlich.
16.4.1 Wie installieren?
In der lokalen Umgebung hat Herr Bertrand den Joomla!-Webinstaller genutzt, um das Programm zu installieren. Dann hat er einen Vormittag lang Daten eingegeben und möchte jetzt bei der Installation seine Daten nicht verlieren. Es gibt mindestens zwei Möglichkeiten:
- Er lädt alle Joomla!-Dateien per FTP auf den Server seines Providers, ändert per Hand die Konfigurationsdatei und importiert die Datenbank über phpMyAdmin.
- Er lädt eine Joomla!-Datei per FTP auf den Server des Providers, installiert sie mit dem Joomla!-Installer und importiert dann die Daten der Datenbank über phpMyAdmin.
Herr Bertrand entscheidet sich für die erste Variante. Um mit der Installation starten zu können, benötigt er Zugangsdaten für FTP, MySQL und natürlich den Domainnamen.
In seiner Verwaltungsoberfläche findet er die folgenden Zugangsdaten:
FTP
- Host: bertrand.cocoate.com
- User: fusfusfus
- Passwort: pwpwpw
MySQL
- Host: localhost
- User: dbusdbus
- Passwort: pwpwpwp
- Datenbank: dbdbdb
16.4.2 Installation von Joomla! beim Provider
Herr Bertrand startet sein FTP-Programm und gibt die notwendigen Daten ein. Das FTP-Programm hat er von seinem Provider kostenlos erhalten10.

Abbildung 16.54: FTP-Übertragung
Er überträgt seine bestehende Installation aus dem Unterverzeichnis c:\xampplite\ htdocs\bertrand per FTP in das Verzeichnis httpdocs auf dem Server seines Providers.
Die Datei configuration.php sichert er sich auf seinem PC und öffnet sie in einem Editor oder dem Programm WordPad.
Hier muss er ein paar Werte ändern, damit seine lokale Version auch auf dem Server läuft.
/* Database Settings */
...
var $host = 'localhost'; // normally set to localhost
var $user = ''; // MySQL username
var $password = ''; // MySQL password
var $db = ''; // MySQL database name
Nach der Änderung lädt er die Datei ebenfalls per FTP in das Verzeichnis httpdocs auf den Server und gibt ihr die Rechte chmod 0777. FTP-Programme können diesen Befehl ausführen und damit einem Verzeichnis und Dateien Zugriffsrechte zuweisen. Für die Verzeichnisse benötigt Joomla! mindestens chmod 755, für die Dateien reicht chmod 644 aus.
Siehe auch den Lesertipp bzgl. der Datei configuration.php von Oliver Gregortschek
16.4.3 Importieren der Daten
Um die Daten in die MySQL-Datenbank des Providers importieren zu können, müssen sie zunächst aus der lokalen XAMPP lite-Version exportiert werden. Herr Bertrand ruft im Browser http://localhost/phpmyadmin auf, wählt die bertrand-Datenbank aus und klickt auf den Reiter Exportieren.
Er klickt auf Alle auswählen, um alle Tabellen für den Export auszuwählen.
- Im Bereich Struktur wählt er Struktur und Drop Table aus. Drop Table fügt einen zusätzlichen SQL-Befehl in die Export-Datei ein, der dafür sorgt, dass beim späteren Import der Daten eventuell vorhandene Tabellen mit gleichem Namen gelöscht werden. In seinem Fall ist das wichtig, da alle Tabellen durch die Web Installer-Installation vorhanden sind.
- Im Bereich Daten wählt er Daten und Erweiterte Inserts aus.
- Bei Kompression wählt Herr Bertrand den Radio-Button Zip-komprimiert, was die Übertragung etwas beschleunigen wird.
- Er wählt Senden aus, um die Daten als Datei via Download zu erhalten.
Anschließend klickt er auf den Button OK (Abbildung 16.54), und eine Datei bertrand.sql.zip wird ihm zum Download angeboten (Abbildung 16.56).

Abbildung 16.55: Exportieren der Daten

Abbildung 16.56: Herunterladen der Datei bertrand.sql.zip
In dieser Datei befinden sich alle Datenbankinhalte. Er speichert die Datei an einem Platz außerhalb des Joomla!-Verzeichnisses und entpackt sie, so dass er die Datei bertrand.sql erhält. In der Datei sind SQL-Befehle enthalten, die genau den Stand der Dinge in der lokalen Installation repräsentieren und die in einem anderem MySQL-System, der Reihe nach abgearbeitet, genau diesen Stand wiederherstellen.
Genau das will Herr Bertrand haben und ruft das phpMyAdmin auf dem Server seines Providers auf. Dort klickt er in seiner Datenbank (die coco_bertrand heißt) auf den Reiter Importieren. In der Maske klickt er auf den Button Durchsuchen und wählt die lokale bertrand.sql-Datei aus. Durch einen Klick auf den Button OK wird die Datei hochgeladen, die SQL-Befehle werden der Reihe nach ausgeführt, und seine Website auf dem Server des Providers ist jetzt eine Kopie seiner lokalen Version (Abbildung 16.57).

Abbildung 16.57: Importieren der SQL-Datei
Die Website sollte jetzt auf dem Server zur Verfügung stehen. In diesem Fall unter http://bertrand.cocoate.com (Abbildung 16.57).

Abbildung 16.58: Website auf http://bertrand.cocoate.com
16.4.4 Datei- und Verzeichnisrechte
Um einen normalen Betrieb von Joomla! zu ermöglichen, müssen die Rechte der Verzeichnisse angepasst werden. Im Menü Hilfe - Systeminfo kontrolliert Herr Bertrand die Einstellungen (Abbildung 16.59).

Abbildung 16.59: Verzeichnisrechte
Auf dem Server von Herrn Bertrands Provider läuft Linux. Unter Linux gibt es Benutzer und Benutzergruppen. Herr Bertrand hat einen Benutzer, und der Apache Webserver hat auch einen Benutzer. Je nach Konfiguration sind beide in einer Benutzergruppe oder in verschiedenen Benutzergruppen. Wenn sie in verschiedenen Benutzergruppen sind, müssen die Verzeichnisrechte auf chmod 0777 gesetzt werden.
In der Administration ändert Herr Bertrand noch das Passwort für die Exposé-Galerie. Es stand immer noch auf manager :-).
16.5 Suchmaschinen
10 Ein kostenloses FTP-Programm finden Sie unter http://www.filezilla.de/ und auf der beiliegenden CD.
- 19503 Aufrufe
French
15.1 Beispiel-Komponente hallowelt
Submitted by Hagen Graf on 1. January 2008 - 16:52Bevor wir richtig loslegen, aber erst mal ein einfacher »Hallo Welt«-Start. Komponenten teilen sich in Frontend- und Backend-Komponenten. Frontend-Komponenten werden auf Ihrer Website angezeigt, Backend-Komponenten werden für den Administrationsbereich entwickelt, meist um die Frontend-Komponenten zu verwalten. Aus der Sicht eines Besuchers Ihrer Website erkennen Sie eine Komponente an der Art des Aufrufs einer Joomla!-Seite:
Die URL
http://localhost/joomla150/index.php?option=com_contact
ruft beispielsweise die Frontend-Komponente com_contact auf.
Wenn Sie jetzt in Ihr Dateisystem schauen, finden Sie im Unterverzeichnis [PfadzuJoomla]/components eine ganze Menge Komponenten, unter anderem auch die com_contact-Komponente (Abbildung 15.1).

Abbildung 15.1: Joomla!-Komponenten
Innerhalb dieser Verzeichnisse sind je nach Komplexität der Komponenten weitere Verzeichnisse mit Dateien für Model, View und Controller enthalten.
15.1.1 Ein Haus für hallowelt
Jede Komponente »wohnt« in ihrem Verzeichnis. Der Weg, den Joomla! einschlägt, ist folgender:
- Joomla! wertet die übergebenen Werte in der URL aus: /index.php?option=com_hallo.
- Es sucht in der Komponenten-Tabelle nach der Komponente com_hallo.
- Es sucht nach einem Verzeichnis com_hallo.
- Es sucht in diesem Verzeichnis eine Datei hallo.php.
- Es interpretiert diese Datei.
Damit richtig interpretiert wird, benötigen Sie mehrere Dateien.
- hallo.php – der Einstiegspunkt in Ihre Komponenten
- controller.php – die Steuerung
- views/hallo/view.html.php – die Präsentation, die die Daten an das Template weitergibt
- views/hallo/tmpl/default.php – ein Standard-Template, das von »richtigen« Templates überschrieben oder so, wie es ist, genutzt werden kann.
- hallo.xml – die bekannte XML-Datei, die dem Installer erklärt, was im Paket ist, wo es installiert wird und wer dafür zuständig ist.
- Auch wenn Sie jetzt innerlich zerbrechen und sich nach Joomla! 1.0 zurücksehnen (da ging das mit einer Datei :-)) – geben Sie der Idee eine Chance!
Installieren Sie sich am besten das Komponentenpaket com_hallo.zip über den Joomla!-Installer und legen Sie sich einen Menüpunkt an. Dann haben Sie gleich alle Dateien im richtigen Ordner und können den Quelltext leicht nachvollziehen.
15.1.2 Der Einstieg (/component/com_hallo/hallo.php)
Diese Datei wird als Erstes aufgerufen, wenn Sie die URL
http://localhost/joomla150/index.php?option=com_hallo&view=hallo
oder den entsprechenden Menüpunkt anklicken. Das Ergebnis ist recht unspektakulär. Sie sehen den Text »Hallo Welt« im Inhaltsfenster.
Der Quellcode der Datei sieht folgendermaßen aus (siehe Listing 15.1):
<?php
// kein direkter Zugriff
defined('_JEXEC') or die('Restricted access');
// Einlesen des basis Controllers
require_once (JPATH_COMPONENT.DS.'controller.php');
// Einen eigenen Controller erzeugen
$classname = 'HalloController'
$controller = new $classname( );
// Nachsehen, ob Parameter angekommen sind (Requests)
$controller->execute( JRequest::getVar('task'));
// Umleitung innerhalb des Controllers
$controller->redirect();
?>
Listing 15.1: /component/com_hallo/hallo.php
defined('_JEXEC') or die('Restricted access');
Die erste Zeile ist ein Sicherheitscheck, ob die Datei von Joomla! aus aufgerufen wird oder direkt. Direkt aufgerufene Skripte werden sofort durch die Funktion die() beendet.
require_once (JPATH_COMPONENT.DS.'controller.php');
Danach wird der erste Controller eingelesen. JPATH_COMPONENT ist der absolute Pfad zur aktuellen Komponente (components/com_hallo). DS ist der directory separator des Betriebssystems. Windows hätte es gern andersherum als Unix-artige Systeme, also entweder / oder \. Dieser Wert wird von Joomla! automatisch gesetzt.
$classname = 'HalloController';
$controller = new $classname( );
Jetzt können wir den eingelesenen Controller instanzieren und damit einen für uns »brauchbaren« Controller erzeugen. Wenn Sie »nur« einen Controller benötigen, wie es im Frontend oft der Fall ist, können Sie auch folgende Anweisung benutzen:
$controller = new HalloController();
$controller->execute( JRequest::getVar('task'));
Anweisungen an die Komponente werden in der Form index.php?option=com_ hallo&task=Aufgabe (save, edit, new, ...) über die URL angegeben. Mit dieser Zeile wird nachgeschaut, ob es da etwas zu lesen gibt.
$controller->redirect();
Unter Umständen leitet der Controller die Anfrage an eine andere Seite weiter, beispielsweise wenn etwas gespeichert wird, daher diese Zeile.
15.1.3 Der Controller (/component/com_hallo/controller.php)
Da die Komponente nun wirklich einfach ist, hat der Controller nur die Aufgabe, etwas anzuzeigen. Wir benötigen kein Datenmodell und nur eine display-Methode (Listing 15.2).
<?php
jimport('joomla.application.component.controller');
class HalloController extends JController{
function display(){
parent::display();
}
}
?>
Listing 15.2: /component/com_hallo/controller.php
Der Aufruf der display-Methode bestimmt den Namen und das Layout des Views. Wenn Sie beispielsweise einen neuen Menülink anlegen, sehen Sie das Ergebnis dieser Display-Variante. Unsere Komponente kennt nur das Standardlayout.

Abbildung 15.2: Menülink für die »Hallo Welt«-Komponente
15.1.4 Der View (/component/com_hallo/views/hallo/
views.html.php)
Und hier ist er schon, der Standard-View (Listing 15.3).
<?php
jimport( 'joomla.application.component.view');
class HalloViewHallo extends JView{
function display($tpl = null){
$greeting = "Hallo Welt!";
$this->assignRef( 'greeting', $greeting );
parent::display($tpl);
}
}
?>
Listing 15.3: /component/com_hallo/views/hallo/views.html.php
Der View, die Präsentation, erhält normalerweise Daten (aus dem Modell), bereitet sie auf und schickt sie an das Template.
$greeting = "Hallo Welt!";
$this->assignRef( 'greeting', $greeting );
parent::display($tpl);
Das Modell ist hier durch die Variablenzuweisung überflüssig. In der Variable $greeting könnte aber auch das Ergebnis einer Datenbankabfrage stehen. Mit der assignRef-Methode wird die Variable an das Template weitergeben.
parent::display($tpl);
ruft das Template auf.
15.1.5 Das Template (/component/com_hallo/views/hallo/tmpl/
default.php)
Und hier ist nun das Standard-Template. Es heißt immer default.php und sieht in seiner einfachsten Form aus wie in Listing 15.4.
defined('_JEXEC')or die('Restricted access'); ?>
<h1>
<?php echo $this->greeting; ?>
</h1>Listing 15.4: /component/com_hallo/views/hallo/tmpl/default.php
15.1.6 Das Ergebnis
Auf der Website sieht alles zusammen sehr unspektakulär aus (Abbildung 15.3):
15.1.7 Die Installation
Alle Dateien müssen nun in ein zip-Paket gepackt werden und sind dann über den Joomla!-Installer installierbar. Die Frontend-Dateien in /component/com_hallo kommen in ein Verzeichnis site. Die Administrationsbereich-Dateien aus /com_hallo/ administrator/components kommen in ein Verzeichnis admin. Alle Dateien werden mit zusätzlichen Informationen in einer XML-Datei beschrieben, die so heißen muss wie die Komponente, also hallo.xml (Listing 15.5).
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/component-install.dtd">
<install type="component" version="1.5.0">
<name>Hallo</name>
<creationDate>November</creationDate>
<author>Niemand</author>
<authorEmail>niemand@example.org</authorEmail>
<authorUrl>http://www.example.org</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<version>Component Version String</version>
<description>Beschreibung der Komponente ...</description>
<!-- Site Main File Copy Section -->
<files folder="site">
<filename>index.html</filename>
<filename>hallo.php</filename>
<filename>controller.php</filename>
<filename>views/index.html</filename>
<filename>views/hallo/index.html</filename>
<filename>views/hallo/view.html.php</filename>
<filename>views/hallo/tmpl/index.html</filename>
<filename>views/hallo/tmpl/default.php</filename>
</files>
<administration>
<!-- Administration Menu Section -->
<menu>Hallo Welt!</menu>
<!-- Administration Main File Copy Section -->
<files folder="admin">
<!-- Site Main File Copy Section -->
<filename>index.html</filename>
<filename>admin.hallo.php</filename>
</files>
</administration>
</install>
Listing 15.5: hallo.xml
Um alles in ein zip-Paket zu packen, müssen Sie auf die Struktur achten. Hier eine entsprechende Struktur für die com_hallo-Komponente (Abbildung 15.4):

Abbildung 15.4: Installationspaket packen
Sie können dieses Paket jetzt ganz normal über den Joomla!-Installer hochladen und installieren lassen.
15.1.8 Fazit
Das, was Sie jetzt erstellt haben, ist tatsächlich gut pflegbar, erweiterbar und – wenn Sie mal ehrlich sind – eigentlich auch ganz übersichtlich. Auf den ersten Blick wirken die vielen Dateien etwas wirr, auf den zweiten Blick verlieren sie aber schnell ihren Schrecken. Das liegt daran, dass sich in jeder Datei relativ wenig Quellcode befindet und Sie somit eine bessere Übersicht haben. Genau dieser Effekt ist beim MVC-Muster erwünscht. Und wenn Sie einen besonders komplexen Template-Wunsch haben, dann überschreiben Sie in Ihrem selbstgebauten Template einfach den View (siehe Kapitel 13.3.8).
- 26350 Aufrufe
French
10.1 Installieren-Deinstallieren
Submitted by Hagen Graf on 26. December 2007 - 9:53Grundsätzlich kann jeder eine Erweiterung für Joomla! schreiben, nach gewissen Regeln verpacken und per Joomla!-Installation in die Website integrieren. In diesem Bereich finden Sie eine Übersicht über die installierten Erweiterungen. Die Maske, die nach einem Aufruf des Menüpunkts Erweiterungen - Installieren/Deinstallieren erscheint, bietet drei Möglichkeiten, Erweiterungen zu installieren (Abbildung 10.2)1.

Abbildung 10.2: Erweiterungen - Installieren/Deinstallieren
- Hochladen einer Paketdatei
- Installation aus einem Verzeichnis
- Installation durch Eingabe einer URL
Die Reiter Komponenten, Module, Plugins und Sprachen enthalten jeweils Auflistungen der installierten Erweiterungen. Wir werden auf die Installation von zusätzlichen Komponenten im Kapitel 12 eingehen.
10.1.1 Installierte Komponenten, Module, Plugins, Sprachen und Templates
In den jeweiligen Reitern, beispielsweise unter Komponenten, sehen Sie eine Liste der standardmäßig installierten Komponenten. Sie sehen Informationen über die Version der Komponenten, das Datum der Erstellung und den Autor. Falls Sie eine Komponente deinstallieren wollen, wählen Sie sie aus und klicken in der Werkzeugleiste auf das Icon Deinstallieren.
Achtung
Die Komponente ist nach der Deinstallation wirklich verschwunden – manchmal mit allen gespeicherten Daten! Es gibt keinen Komponenten-Papierkorb!
Diese Verhaltensweise ist durchaus so gewollt. Es obliegt dem Komponentenentwickler, für welche Strategie er sich entscheidet. Manchmal ist es sinnvoll die Tabellen nicht zu löschen, beispielsweise bei einem Update. Manchmal allerdings ist es wichtig, wirklich alle Tabellen, die erzeugt worden sind, rückstandslos zu löschen. Im Kapitel 15 erfahren Sie mehr über diese Techniken. Lesen Sie unbedingt die Dokumentation der entsprechenden Komponente, um mit ihrem Verhalten vertraut zu sein.
- 1Siehe auch Kapitel 12.
- 12209 Aufrufe
French
2 Installation
Submitted by Hagen Graf on 18. December 2007 - 15:38Die Installation von Joomla! selbst ist eine Sache von fünf Minuten. Wenn Sie es mehrmals
installiert haben, schaffen Sie es auch in drei. In Kapitel 16 haben Sie Gelegenheit,
die Aussage selbst zu überprüfen. Damit die Installation überhaupt möglich ist,
benötigen Sie als lokale Umgebung ihr »eigenes Internet«, bestehend aus einem Webserver,
der PHP unterstützt, und ein von Joomla! unterstütztes Datenbanksystem.
Joomla!-Dateien werden in dieses System kopiert und mit einem Webinstaller eingerichtet.
Man spricht in einer solchen Umgebung auch von einem Client-Server-System.
- 27920 Aufrufe
French
Paris, France 
Neueste Kommentare
vor 5 Tage 23 Stunden
vor 5 Tage 23 Stunden
vor 6 Tage 2 Stunden
vor 6 Tage 10 Stunden
vor 6 Tage 18 Stunden
vor 1 Woche 8 Stunden
vor 1 Woche 9 Stunden
vor 1 Woche 9 Stunden
vor 4 Wochen 2 Tage
vor 5 Wochen 4 Tage