libapache2-mod-fcgid und phpMyAdmin

Eine Möglichkeit, PHP Scripte nicht mit dem Webserveruser, sonderm mit dem Besitzer der Datei auszuführen, bietet das Modul FCGID für den Apache2 Server. Bei Debian lautet der Packetname libapache2-mod-fcgid.

Wie man ein solches System eingerichtet, kann man z.B. hier und hier nachlesen.

Ein Nachteil ist, dass Webanwendungen, wie phpMyAdmin, die auch über apt oder aptitude bezogen werden, nur mit Mehraufwand laufen. Dies liegt daran, dass sie erwarten, dass der Benutzer www-data die Webseiten ausliefert. Dies ist durch FCGID aber gerade nicht mehr der Fall.

Man hat jetzt 2 Möglichkeiten: Entweder man installiert phpMyAdmin manuell, oder man passt die über apt oder aptitude bezogene Installation an.

Bei der zweiten Variante legt man einen weiteren Vhost in dem Ordner /etc/apache2/sites-available an:

<virtualhost *:80>
    ServerAdmin [email protected]
    ServerName pma.example.com
    ServerAlias www.pma.example.com
    SuexecUserGroup pma pma
    AddHandler fcgid-script .php
    DocumentRoot /usr/share/phpmyadmin
    DirectoryIndex index.htm index.html index.php

    Options FollowSymLinks Includes
    AllowOverride None
    
    <directory /usr/share/phpmyadmin>
        Options Indexes MultiViews FollowSymLinks Includes +ExecCGI
        FCGIWrapper /var/www/pma/fcgi/fcgi-starter .php
        Order allow,deny
        allow from all
    </directory>

    ErrorLog /var/www/pma/logs/error.log
    LogLevel warn
    CustomLog /var/www/pma/logs/access.log combined
    ServerSignature Off
</virtualhost>

und aktiviert diesen mit a2ensite "vhostname" und /etc/init.d/apache2 reload.
Weshalb auch immer, der Include für das Blowfish Passwort wird nicht richtig ausgeführt. Man kommentiert in der /usr/share/phpmyadmin/config.inc.php den Include am besten aus und schreibt den einzigen PHP Befehl aus dieser Datei direkt in die config.inc.php.

// include('/var/lib/phpmyadmin/blowfish_secret.inc.php');
$cfg['blowfish_secret'] = 'HierDeinBlowfishPasswort';

Macht man dies nicht erhält man diesen Fehler bei der Login Page:

Ab sofort muss ein geheimes Passwort zur Verschlüsselung in der Konfigurationsdatei gesetzt werden (blowfish_secret).

Hat man alle Schritte befolgt, sollte man unter dem eingestellten Vhost Zugriff auf phpMyAdmin haben.

Tech Topic(s) des Artikels