Inhaltsverzeichnis

Joomla 3 auf Linux Debian installieren

Schritt für Schritt Anleitung um Joomla 3.2 auf einem Root Server mit Linux Debian 7.4.0 (Wheezy) 64 Bit zu installieren. Joomla1) gehört zur Kategorie der »Content Managment Systeme« (CMS) und bietet einen relativ einfachen Einstieg in die Webseitenherstellung. Joomla steht unter der »GNU General Public License«2).

Installation der benötigten Basiskomponenten

Wie die meisten Content Managment Systeme ist Joomla in PHP3) geschrieben und Datenbank basiert. Als Datenbank wird in dieser Anleitung MySQL4) verwendet. Voraussetzung für die folgenden Schritte ist ein lauffähiges Linux Debian Minimal System, ggf mit installierten SSH Server für Remotezugriff. Darüber hinaus werden folgende Komponenten nachinstalliert und konfiguriert. Die benötigten Minimum Versionen entnehmen Sie bitte dem Hosting Requirements Guide von Joomla5):

Install PHP

# aptitude install php5

Install MySQL

# aptitude install mysql-server
Der Installationsprozess wird Sie auffordern ein Passwort für den Datenbank Root Benutzer zu vergeben. Dies ist nicht der System Root Benutzer sondern ein auf die MySQL Datenbank beschränkter Administrator. Notieren Sie sich dieses Passwort.

Install MySQLi

»MySQLi«6) ist eine PHP Erweiterung zum direkten Zugriff auf MySQL Datenbanken und ist Bestandteil des »php5-mysql« Paket.

# aptitude install php5-mysql

Install Apache2 Webserver

# aptitude install apache2

Install Joomla 3.2

Hier in dieser Anleitung wird als Document Root das Serververzeichnis »/home/joomla.prontosystems.org/« verwendet.

# mkdir /home/joomla.prontosystems.org
Laden Sie das aktuelle Archiv von der Joomla Download Website im GZ-Format und kopieren Sie es in Ihr zukünftiges Document Root Verzeichnis auf dem Server. Navigieren Sie im Anschluss daran in das neu erstellte Document Root und entpacken dort das heruntergeladene Joomla Archiv:
# cd /home/joomla.prontosystems.org/
# tar -xf Joomla_3.2.3-Stable-Full_Package_German.tar.gz
Die grundlegende Installation ist mit dem Entpacken des Archivs eigentlich schon erledigt, alle benötigten Dateien befinden sich nun in Ihrem Document Root:
# ls -l
insgesamt 6868
drwxr-xr-x 10 root root    4096 Mär  6 04:06 administrator
drwxr-xr-x  2 root root    4096 Mär  6 04:06 bin
drwxr-xr-x  2 root root    4096 Mär  6 04:06 cache
drwxr-xr-x  2 root root    4096 Mär  6 04:06 cli
drwxr-xr-x 17 root root    4096 Mär  6 04:06 components
-rw-r--r--  1 root root    3123 Mär  6 04:06 htaccess.txt
drwxr-xr-x  5 root root    4096 Mär  6 04:06 images
drwxr-xr-x  2 root root    4096 Mär  6 04:06 includes
-rw-r--r--  1 root root    1011 Mär  6 04:06 index.php
drwxr-xr-x 11 root root    4096 Mär  6 04:06 installation
-rw-r--r--  1 root root 6913322 Apr 12 15:02 Joomla_3.2.3-Stable-Full_Package_German.tar.gz
-rw-r--r--  1 root root    1906 Mär  6 04:08 joomla.xml
drwxr-xr-x  5 root root    4096 Mär  6 17:57 language
drwxr-xr-x  4 root root    4096 Mär  6 04:06 layouts
drwxr-xr-x 13 root root    4096 Mär  6 04:06 libraries
-rw-r--r--  1 root root   17816 Mär  6 04:06 LICENSE.txt
drwxr-xr-x  2 root root    4096 Mär  6 04:06 logs
drwxr-xr-x 18 root root    4096 Mär  6 04:06 media
drwxr-xr-x 28 root root    4096 Mär  6 04:06 modules
drwxr-xr-x 14 root root    4096 Mär  6 04:06 plugins
-rw-r--r--  1 root root    4300 Mär  6 04:06 README.txt
-rw-r--r--  1 root root     901 Mär  6 04:06 robots.txt.dist
drwxr-xr-x  5 root root    4096 Mär  6 04:06 templates
drwxr-xr-x  2 root root    4096 Mär  6 04:06 tmp
-rw-r--r--  1 root root    1715 Mär  6 04:06 web.config.txt

An dieser Stelle kommt eine ganz unangenehme Eigenart der Zip-Archiv auf Root-Servern installierten CMS-Systemen zum Vorschein: Jedes Verzeichnis und jede Datei hat den User der das Archiv entpackt als Eigentümer und Gruppe. Hier muss man selbst Hand anlegen, ich habe mir von der fertig installierten Seite die Übersicht über die Verzeichnis Rechte angeschaut und dem entsprechend die Rechte auf den Debian/Apache2 üblichen User www-data gesetzt:

# chown -R www-data:www-data logs/ tmp/ templates/ cache/ modules/ media/ libraries/ language/ images/ components/ plugins/ administrator/ configuration.php

# ls -l
insgesamt 6876
drwxr-xr-x 18 root     root        4096 Apr 12 18:48 .
drwxr-xr-x  6 root     root        4096 Apr 12 17:40 ..
drwxr-xr-x 10 www-data www-data    4096 Mär  6 04:06 administrator
drwxr-xr-x  2 root     root        4096 Mär  6 04:06 bin
drwxr-xr-x  2 www-data www-data    4096 Mär  6 04:06 cache
drwxr-xr-x  2 root     root        4096 Mär  6 04:06 cli
drwxr-xr-x 17 www-data www-data    4096 Mär  6 04:06 components
-rw-r--r--  1 www-data www-data    1900 Apr 12 18:48 configuration.php
-rw-r--r--  1 root     root        3123 Mär  6 04:06 htaccess.txt
drwxr-xr-x  5 www-data www-data    4096 Mär  6 04:06 images
drwxr-xr-x  2 root     root        4096 Mär  6 04:06 includes
-rw-r--r--  1 root     root        1011 Mär  6 04:06 index.php
-rw-r--r--  1 root     root     6913322 Apr 12 18:44 Joomla_3.2.3-Stable-Full_Package_German.tar.gz
-rw-r--r--  1 root     root        1906 Mär  6 04:08 joomla.xml
drwxr-xr-x  5 www-data www-data    4096 Mär  6 17:57 language
drwxr-xr-x  4 root     root        4096 Mär  6 04:06 layouts
drwxr-xr-x 13 www-data www-data    4096 Mär  6 04:06 libraries
-rw-r--r--  1 root     root       17816 Mär  6 04:06 LICENSE.txt
drwxr-xr-x  2 www-data www-data    4096 Mär  6 04:06 logs
drwxr-xr-x 18 www-data www-data    4096 Mär  6 04:06 media
drwxr-xr-x 28 www-data www-data    4096 Mär  6 04:06 modules
drwxr-xr-x 14 www-data www-data    4096 Mär  6 04:06 plugins
-rw-r--r--  1 root     root        4300 Mär  6 04:06 README.txt
-rw-r--r--  1 root     root         901 Mär  6 04:06 robots.txt.dist
drwxr-xr-x  5 www-data www-data    4096 Mär  6 04:06 templates
drwxr-xr-x  2 www-data www-data    4096 Mär  6 04:06 tmp
-rw-r--r--  1 root     root        1715 Mär  6 04:06 web.config.txt

Konfiguration der Server Komponenten

Auf dem Server müssen noch eine Datenbank für Joomla in MySQL angelegt werden und der Apache2 Webserver konfiguriert werden.

Anlegen der MySQL Datenbank

Das folgende Kommando legt in Ihrer MySQL Datenbank eine Datenbank mit dem Namen »joomla« an:

# mysqladmin -u root -p create joomla
Das folgende Kommando legt in Ihrer MySQL Datenbank den Benutzer »joomla_admin« mit dem Passwort »joomlapass« an und weist diesem Benutzer die zuvor erstellte Datenbank »joomla« zu:
# mysql joomla -u root -p -e"GRANT ALL ON joomla.* TO joomla_admin@localhost IDENTIFIED BY 'joomlapass'"

Konfigurieren des Apache Webservers

Die Konfiguration des Apache Webservers hängt im Detail stark von Ihrer Umgebung ab, es gibt mehrere Varianten wie man mit Apache Webseiten publizieren kann. Die folgenden Schritte beschreiben die Konfiguration der ersten Joomla Webseite als ersten »Name Based Virtual Host«. Diese Konfiguration erlaubt ein späteres Hinzufügen weiterer »Name Based Virtual Hosts« bzw weiterer Webseiten Projekte.

Zuerst legen wir die für dieses Projekt benötigte Logfile-Verzeichnis an:

# mkdir -p /var/log/apache2/joomla.prontosystems.org 
Im Anschluss daran erstellen wir die notwendige Konfigurationsdatei »/etc/apache2/sites-available/joomla.prontosystems.org« Passen Sie die IP Adresse und ggf weitere Parameter Ihren Bedürfnissen an:

/etc/apache2/sites-available/joomla.prontosystems.org

# NameVirtualHost 192.168.167.159
 
<VirtualHost 192.168.167.159>
 ServerName joomla.prontosystems.org
 ServerAlias
 DocumentRoot /home/joomla.prontosystems.org
 ServerAdmin Pronto
 CustomLog /var/log/apache2/joomla.prontosystems.org/access.log combined
 ErrorLog /var/log/apache2/joomla.prontosystems.org/error.log
 LogLevel warn
</VirtualHost>
Aktivieren Sie den soeben erstellen virtuellen Host:
# a2ensite joomla.prontosystems.org
Zuletzt brauchen wir noch eine »Virtual Host Direktive« in der apache2 Konfigurationsdatei. Die heißt mittlerweile nicht mehr »httpd.conf« sondern »apache2.conf« aber ich persönlich habe die Tradition beibehalten und konfiguriere den Apache Webserver weiterhin in der »httpd.conf« die ich jetzt allerdings erst mal selber anlegen und in der Hauptkonfigdatei »apache2.conf« mit einer Include-Anweisung bekannt machen muss:
# touch /etc/apache2/httpd.conf
# echo "Include httpd.conf" >> /etc/apache2/apache2.conf
# echo "NameVirtualHost 192.168.167.159" >> /etc/apache2/httpd.conf
Laden Sie abschließend die geänderte Webserver Konfiguration:
# service apache2 reload

Die grundlegenden Einstellungen sind nun erledigt, Sie können Ihre Joomla Seite jetzt im Webbrowser bereits öffnen und dort weiter konfigurieren:

Nice URLs

Als Fleißarbeit sollte man zum Schluss noch das »URL Rewriting« aktivieren, weil man früher oder später eh drüber stolpert. Joomla stellt in der Standardinstallation schon eine vorgefertigte ».htaccess« Datei zur Verfügung, wo schon mal alles Nötige eingestellt ist. Die heißt allerdings standardmäßig erst mal »htaccess.txt« und muss umbenannt werden:

# mv htaccess.txt .htaccess

Aktivieren Sie das entsprechende Apache2 Modul und starten Sie den Webserver neu:

# a2enmod rewrite
# service apache2 restart

Aktivieren Sie in der Joomla Konfiguration die Option »URL Rewrite nutzen«:

It's just that simple ;-)

prontosystems - we are connecting more than computers

Verwandte Artikel:
-> Dokuwiki Installation
-> Virtuelle Host Konfiguration Apache2 (vhost)

pronto 2014/04/12 21:49