Benutzer-Werkzeuge

Webseiten-Werkzeuge


blog:phpmyadmin_mit_nginx_unter_debian_wheezy

phpmyadmin mit nginx unter Debian Wheezy

Eigentlich wollte ich ja heute einen status.net Server aufsetzen, aber da der gerne MySQL und auch noch gern eine eigene Datenbank hätte und das auf dem designierten Server noch nicht installiert war, schob ich erstmal die Installation von MySQL und phpMyAdmin ein. Das Debian-Paket phpmyadmin bringt Beispielkonfigurationsdateien für Apache2 und lighttpd mit, für den hier eingesetzten nginx leider nicht. Das Web ist voll von HowTos zu dem Thema, aber keins passt so richtig (beispielsweise weil mir das reicht phpmyadmin in 'nem Unterordner zu haben) und deswegen gibt's jetzt noch HowTo, dieses hier. Voraussetzung ist ein bereits fertig eingerichteter nginx mit php5-fpm und ein MySQL-Server. In der entsprechenden Config des nginx steht irgendwo etwa folgendes für den php5-fpm:

upstream php {
    server unix:/var/run/php5-fpm.sock;
}

Dann gibt es sicher noch einen Abschnitt für den HTTPS-Server und da fügt man dann folgendes ein:

# phpmyadmin
location /phpmyadmin {
    alias   /usr/share/phpmyadmin;
    index   index.php;
}

location ~ ^/phpmyadmin/libraries {
    deny all;
}

location ~ ^/phpmyadmin/setup/lib {
    deny all;
}

location ~ ^/phpmyadmin/setup/(.+\.php)$ {
    auth_basic              "phpMyAdmin Setup";
    auth_basic_user_file    "/etc/phpmyadmin/htpasswd.setup";
    alias                   /usr/share/phpmyadmin/setup/$1;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass            php;
    fastcgi_index           index.php;
    include                 fastcgi_params;
}

location ~ ^/phpmyadmin/(.+\.php)$ {
    alias                   /usr/share/phpmyadmin/$1;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass            php;
    fastcgi_index           index.php;
    include                 fastcgi_params;
}

Damit entspricht das recht genau den von Debian mitgelieferten Configs für die anderen Webserver. Der vorletzte Abschnitt schützt das Setup von phpmyadmin. Ein Passwort würde man mit dem Tool htpasswd setzen können, das ist bekanntermaßen im Paket apache2-utils enthalten. Aber: wenn man phpmyadmin über den Debian-Paketmanager installiert hat, kann man sich das sparen, wenn die Konfiguration gleich bei der Installation mit Hilfe von dbconfig-common gemacht wurde. Die Doku in /usr/share/doc/phpmyadmin/README.Debian.gz sagt dazu:

Since 3.0.0, phpMyAdmin can be configured using dbconfig-common. It creates a phpmyadmin database and control user on the chosen server and configures phpMyAdmin to use cookie authentication on this server. The database autoconfiguration might fail if you do not have local MySQL server installed or you have configured too high priority of which questions should debconf ask. To rerun the configuration just invoke:

dpkg-reconfigure -plow phpmyadmin

phpMyAdmin also provides a web-based setup script available at http://localhost/phpmyadmin/setup/index.php

Betonung auf »also«, d.h. wenn man dbconfig-common benutzt hat, ist man bereits fertig.

~~LINKBACK~~

Diskussion

LeSpockyLeSpocky, 2013-03-25 18:20

Für Hinweise, wie man den doppelten letzten Abschnitt in nginx am besten vermeiden würde, wäre ich übrigens dankbar. ;-)

Melden Sie sich an, um einen Kommentar zu erstellen.
blog/phpmyadmin_mit_nginx_unter_debian_wheezy.txt · Zuletzt geändert: 2013-03-25 18:02 von alex