Linux-Distributionen » Debian

ID #1382 Debian: phpMyAdmin installieren

Problem:

Die Datenbank-Administrations-Software phpMyAdmin ist eine schöne Sache. Viele Entwickler, PHP-Coder und Webdesigner kennen sie und verlangen danach auf einem Produktiv-Server.

Nur wenn es nicht von Vornherein auf dem Server installiert ist (z.B. von Plesk oder Confixx) muss man es nachinstallieren. Und hier stellt sich die erste Frage:
Von Hand manuell aus einem Tarball? Oder nehmen wir gleich das Distributionspaket?

Antworten:

Vorab: Das Projekt phpMyAdmin ist unter ständiger Entwicklung. D.h. dass ständig neue Features dazu kommen und diese auch Security-Gründen häufig einem Update erlegen. Die Updates in einem Distributionspaket hingegen sind reine Bugfixing-Updates und kommen auch nicht so schnell hinterher wie die Originale.

Auf der anderen Seite: Wofür braucht man die ständigen neuen Features?
Im Grunde läuft die Admin-Software so wie sie ist. Solange die wesentlichen Security-Bugfixes kommen reicht dies für die Sicherheit. Und ein <code>apt-get install phpmyadmincode> geht als Update weit aus schneller als alles wieder per Hand zu entpacken.

Anleitung

Aber auch die Installation aus dem Debian-Paket hat seine Tücken. Denn <code>aptcode> installiert lediglich das Paket. Es wird aber nirgendwo in die Apache-Konfiguration eingebunden. Denn hier wird dem Server-Admin nicht die Hände gebunden sondern alles offen gelassen:

Wie möchte ich phpMyAdmin einbinden?

  1. In jeder Website: <code>http://domain.tld/phpmyadmin/code>
  2. Unter der Server-Domain/-IP: <code>http://123.123.123.123/phpmyadmin/code>
  3. Eigene Subdomain: <code>http://phpmyadmin.123.123.123.123/code>

Die ersten 2 Versionen müssen mit <code>Aliascode> und <code>Directorycode> in den jeweiligen <code>VirtualHostcode>-Angaben konfiguriert werden. Hier ein Beispiel:

<VirtualHost *:80>
	...
	Alias /phpmyadmin/ "/usr/share/phpmyadmin/"
	<Directory>
		include /etc/phpmyadmin/apache.conf
	</Directory>
</VirtualHost>

Ich persönlich bevorzuge die dritte Lösung als eigene Subdomain und zwar direkt ausschließlich über SSL.
Hier die <code>/etc/apache2/sites-available/phpmyadmin.server2.confcode>:

<IfModule mod_ssl.c>

<VirtualHost MEINE-IP:443>
        ServerName phpmyadmin.server2.de
        ServerAlias phpmyadmin.server2.de
        DocumentRoot "/usr/share/phpmyadmin"
        LogLevel warn
        include /etc/phpmyadmin/apache.conf
        SSLEngine On
        SSLCipherSuite HIGH:MEDIUM
        SSLCertificateFile /etc/ssl/private/ssl-cert-phpmyadmin.crt
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-phpmyadmin.key
</VirtualHost>

</IfModule>

Das Debian-Paket liefert bereits alle nötigen Einstellungen für den Apache mit damit phpMyAdmin richtig rund läuft:
<code>/etc/phpmyadmin/apache.confcode>
Es muss nur an der richtigen Stelle includiert werden. Bei den <code>Aliascode>-Versionen muss sie in der <code>Directorycode>-Anweisung eingebunden werden. Als eigene Subdomain direkt im <code>VirtualHostcode>.

Wie man noch sieht, habe ich mir ein eigenes Zertifikat für phpMyadmin angelegt. Man kann aber auch das von Apache mitgelieferte SnakeOil-Cert nutzten.

Weitere Einrichtung:

Einen wesentlichen Mehrwert bietet phpMyAdmin sobald es eine eigene Datenbank <code>pmadbcode> hat in der es Informationen speichern kann. Z.B. Tabellen-Relationen oder die letzten gewählten SQL-Statements.

Normalerweise wird diese Tabelle mit einem SQL-Script angelegt, welches sich in phpMyAdmin-Verzeichnis unter <code>./scripts/create_tables.sqlcode> versteckt.
Der Debian-Maintainer hat es aber woanders versteckt und per gzip gepackt. Also muss es anderweitig eingespielt werden:

zcat /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz | mysql -uroot -p

Danach muss dem Script noch gesagt werden, dass diese Datenbank existiert:
In der <code>/etc/phpmyadmin/config.inc.php<code> müssen folgende Zeile angehängt werden:

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';

 
Datenbank <code>information_schemacode> ausblenden:

Auch dies kann man in der <code>config.inc.phpcode> konfigurieren:

$cfg['Servers'][$i]['hide_db'] = '(information_schema|phpmyadmin|mysql)';

Hier wier auch gleich die <code>mysqlcode> und die oben eingerichtete <code>phpmyadmincode> Datenbank ausgeblendet.

 

sozial Bookmarking
Bookmarken bei YIGG Bookmarken bei Mister-Wong Bookmarken bei Icio Bookmarken bei del.icio.us Bookmarken bei Technorati Bookmarken bei Furl Bookmarken bei Spurl Bookmarken bei Yahoo Bookmarken bei Google

huschi, zuletzt 2010-02-06 13:13     Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen

Dieser Inhalt ist unter der Creative-Commons Lizenz lizensiert.

Probleme bitte im Server-Support-Forum diskutieren.

Rubriken zu diesem Artikel
überflüssig 1 2 3 4 5 wertvoll  
Durchschnittliche Bewertung:   4.13 von 5 (8 Bewertungen)

Artikel kommentieren