Nginx Virtuelle Hosts und PhpMyAdmin

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
montymotz
Beiträge: 17
Registriert: 18.06.2015 09:21:28

Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von montymotz » 18.06.2015 10:00:31

Hallo,

ich wollte meinen Web Server zu Testzwecken auf Nginx umstellen und habe dazu ein Testsystem mit Debian Jessie 8.1 Minimal erstellt.
Nginx und PHP bekomme ich zum laufen und die Virtuellen Hosts funktionieren auch. Leider bekomme ich es einfach nicht hin PhpMyAdmin zu Installieren.

Hier meine Configs ohne PhpMyAdmin:

default:

Code: Alles auswählen

server {
       listen         80;
       rewrite        ^ http://www.domain permanent;
}
www:

Code: Alles auswählen

server {
        listen 80;

        root /usr/share/nginx/www;
        access_log /var/log/nginx/access_log_www;
        index index.html index.htm index.php;

        server_name domain www.domain;

        location / {
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm-www.sock;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}
subdomain:

Code: Alles auswählen

server {
        listen 80;

        root /usr/share/nginx/custom1;
        access_log /var/log/nginx/access_log_subdomain1;
        index index.html index.htm index.php;

        server_name sub.domain;

        location / {
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm-subdomain1.sock;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}
/etc/php5/fpm/pool.d/www.conf:

Code: Alles auswählen

[www]
listen = /var/run/php5-fpm-www.sock
listen.backlog = 4096
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
listen.allowed_clients = 127.0.0.1
listen.mode = 0660
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 5
pm.max_requests = 40
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[open_basedir] = /usr/share/nginx/www/:/tmp/
php_admin_value[date.timezone] = Europe/Berlin
Würde mich um Konstruktive Hilfe freuen.

Grüße
------------------------------
Debian Jessie 8.1 - i7-3770k - 16 GB Ram - 2 x 3 TB Raid 1

Dimejo
Beiträge: 503
Registriert: 21.07.2014 13:37:23

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von Dimejo » 18.06.2015 11:47:22

montymotz hat geschrieben:www:

Code: Alles auswählen

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm-www.sock;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}
Hier nutzt Du den FPM-Pool www.
montymotz hat geschrieben:subdomain:

Code: Alles auswählen

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm-subdomain1.sock;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                include fastcgi_params;
        }
Hier hast Du einen anderen Socket definiert. Gibt es den auch?

montymotz
Beiträge: 17
Registriert: 18.06.2015 09:21:28

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von montymotz » 18.06.2015 12:19:14

Ja den gibt es:

Code: Alles auswählen

/etc/php5/fpm/pool.d/custom1.conf:

[custom1]
listen = /var/run/php5-fpm-subdomain1.sock
listen.backlog = 4096
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
listen.allowed_clients = 127.0.0.1
listen.mode = 0660
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 5
pm.max_requests = 40
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[open_basedir] = /usr/share/nginx/custom1/:/tmp/
php_admin_value[date.timezone] = Europe/Berlin
PS: Das sind nur Beispiele, ohne reale Daten:

Ich habe eine Domain und 2 tdl Domains. Da funktioniert auch alles PHP, Sql etc. Ich bekomme es nur nicht hin PhpMyAdmin oder Adminer zustarten...
------------------------------
Debian Jessie 8.1 - i7-3770k - 16 GB Ram - 2 x 3 TB Raid 1

Dimejo
Beiträge: 503
Registriert: 21.07.2014 13:37:23

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von Dimejo » 18.06.2015 20:06:11

montymotz hat geschrieben:Leider bekomme ich es einfach nicht hin PhpMyAdmin zu Installieren.
OK, könntest Du bitte ausführen was genau nicht funktioniert, und was Du schon versucht hast? Gibt es Hinweise in den Logs wie z.B. Fehlermeldungen? Hast Du schon versucht eine einfache Datei wie index.html unter /usr/share/nginx/custom1 anzulegen, und auf diese zuzugreifen?

montymotz
Beiträge: 17
Registriert: 18.06.2015 09:21:28

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von montymotz » 19.06.2015 13:35:41

Ja also. Ich kann dir jetzt keinen Code zeigen da das System gerade auf null ist.

Aber ich habe es mit index.html und phpinfo getestet und es hat funktioniert.

Bei PhpMyAdmin bin ich bis zum Gateway Fehler gekommen und einmal bis zum Blank Site problem..

Bei google finde ich zwar viele lösungen aber bisher hat keine bei mir richtig funktioniert.

Ich werd mal schauen es liegt halt daran das der nginx bei der eingabe von domain.tld/phpmyadmin nicht weiß wo er hin muss und wenn ich es dann doch mal schaffe bleibt halt die Seite weiß..

Ich vermute mal damit kannst nicht viel anfangen :D

Trotzdem danke :)
------------------------------
Debian Jessie 8.1 - i7-3770k - 16 GB Ram - 2 x 3 TB Raid 1

Dimejo
Beiträge: 503
Registriert: 21.07.2014 13:37:23

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von Dimejo » 19.06.2015 15:15:27

montymotz hat geschrieben:Ich werd mal schauen es liegt halt daran das der nginx bei der eingabe von domain.tld/phpmyadmin nicht weiß wo er hin muss und wenn ich es dann doch mal schaffe bleibt halt die Seite weiß..
Wieso domain.tld/phpmyadmin? Deinen Angaben im ersten Beitrag habe ich entnommen, dass Du phpMyAdmin über eine Subdomain einrichten willst.

montymotz
Beiträge: 17
Registriert: 18.06.2015 09:21:28

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von montymotz » 19.06.2015 15:49:01

Ich setz mich die Tage noch mal dran baue alles so zurecht das es funktioniert und Poste dann die Scripte hier..

Ich brauch einfach nur eine Hilfe wie ich Phpmyadmin aufrufen kann nicht mehr und nicht weniger :)
------------------------------
Debian Jessie 8.1 - i7-3770k - 16 GB Ram - 2 x 3 TB Raid 1

Benutzeravatar
TRex
Moderator
Beiträge: 8399
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von TRex » 19.06.2015 21:07:38

Eigentlich willst du eine funktionierende PHP-Konfiguration. Und darauf dann phpmyadmin laufen lassen. Letzteres ist eher einfach.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

montymotz
Beiträge: 17
Registriert: 18.06.2015 09:21:28

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von montymotz » 20.06.2015 12:27:03

So:

Code: Alles auswählen

/etc/nginx/sites-available/default:

server {
       listen         80;
       rewrite        ^ http://www.blungogo.de permanent;
}

/etc/nginx/sites-available/www:

server {
        listen 80;

        root /usr/share/nginx/www;
        access_log /var/log/nginx/access_log_www;
        index index.html index.htm index.php;

        server_name blungogo.de www.blungogo.de;

        location / {
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm-www.sock;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

/etc/nginx/sites-available/custom1:

server {
        listen 80;

        root /usr/share/nginx/custom1;
        access_log /var/log/nginx/access_log_custom1;
        index index.html index.htm index.php;

        server_name tld1.blungogo.de;

        location / {
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm-custom1.sock;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

/etc/nginx/sites-available/custom2:

server {
        listen 80;

        root /usr/share/nginx/custom2;
        access_log /var/log/nginx/access_log_custom2;
        index index.html index.htm index.php;

        server_name tld2.blungogo.de;

        location / {
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm-custom2.sock;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

Code: Alles auswählen

/etc/php5/fpm/pool.d/www.conf:

[www]
listen = /var/run/php5-fpm-www.sock
listen.backlog = 4096
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
listen.allowed_clients = 127.0.0.1
listen.mode = 0660
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 5
pm.max_requests = 40
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[open_basedir] = /usr/share/nginx/www/:/tmp/
php_admin_value[date.timezone] = Europe/Berlin

/etc/php5/fpm/pool.d/custom1.conf:

[custom1]
listen = /var/run/php5-fpm-custom1.sock
listen.backlog = 4096
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
listen.allowed_clients = 127.0.0.1
listen.mode = 0660
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 5
pm.max_requests = 40
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[open_basedir] = /usr/share/nginx/custom1/:/tmp/
php_admin_value[date.timezone] = Europe/Berlin

/etc/php5/fpm/pool.d/custom2.conf:

[custom2]
listen = /var/run/php5-fpm-custom2.sock
listen.backlog = 4096
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
listen.allowed_clients = 127.0.0.1
listen.mode = 0660
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 5
pm.max_requests = 40
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[open_basedir] = /usr/share/nginx/custom2/:/tmp/
php_admin_value[date.timezone] = Europe/Berlin
So und wie binde ich nun PhpMyadmin ein?

Hier noch die Domains:

http://blungogo.de
http://tld1.blungogo.de
http://tld2.blungogo.de

Danke schon mal! :)
------------------------------
Debian Jessie 8.1 - i7-3770k - 16 GB Ram - 2 x 3 TB Raid 1

Dimejo
Beiträge: 503
Registriert: 21.07.2014 13:37:23

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von Dimejo » 20.06.2015 14:39:48

montymotz hat geschrieben:So und wie binde ich nun PhpMyadmin ein?
Soweit scheint alles notwendige vorhanden zu sein. Also sollte es reichen phpMyAdmin herunter zu laden und in das entsprechende Verzeichnis zu kopieren. Dann kopierst Du die Datei config.sample.inc.php nach config.inc.php um Deine eigene Konfiguration anzulegen.

Falls Du das noch nicht getan hast musst Du auch einen symbolischen Link von /etc/nginx/sites-available/custom1 nach /etc/nginx/sites-enabled/ setzen um den neuen Server-Block zu aktivieren.

montymotz
Beiträge: 17
Registriert: 18.06.2015 09:21:28

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von montymotz » 20.06.2015 15:25:06

http://phpmyadmin.blungogo.de/

Dja nur ne weiße seite:

Code: Alles auswählen

server {
        listen 80;

        root /usr/share/phpmyadmin;
        access_log /var/log/nginx/access_log_www;
        index index.html index.htm index.php;

        server_name phpmyadmin.blungogo.de;

        location / {
        index index.php;
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm-phpmyadmin.sock;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                include fastcgi_params;
        }
               location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
                }

location ~ /\.ht {
    deny  all;
}

location ~ /(libraries|setup/frames|setup/libs) {
    deny all;
    return 404;

               }
}
------------------------------
Debian Jessie 8.1 - i7-3770k - 16 GB Ram - 2 x 3 TB Raid 1

Dimejo
Beiträge: 503
Registriert: 21.07.2014 13:37:23

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von Dimejo » 20.06.2015 16:51:40

Code: Alles auswählen

HTTP/1.1 500 Internal Server Error
Was gibt nginx -t aus? Was steht in den Logs?

Benutzeravatar
TRex
Moderator
Beiträge: 8399
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von TRex » 20.06.2015 19:21:32

Ich bin mal vorsichtig und sage, dass mir das PHP-Setup nicht gerade liegt, aber bei diversen qualvollen debugging-Sessions war es meistens der Pfad, der bei der Übergabe von nginx an PHP für "Missverständnisse" sorgte. PATH_TRANSLATED seh ich nun zum ersten Mal, ich hab an der Stelle mit gleichem Parameter SCRIPT_FILENAME stehen. Vielleicht ist PATH_TRANSLATED ja der "bessere" Weg, aber da sollte schon irgendwie fundiertes Wissen dahinter stecken (und meins rührt von debuggen mit strace).
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

montymotz
Beiträge: 17
Registriert: 18.06.2015 09:21:28

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von montymotz » 22.06.2015 10:34:06

Dimejo hat geschrieben:

Code: Alles auswählen

HTTP/1.1 500 Internal Server Error
Was gibt nginx -t aus? Was steht in den Logs?
nginx -t sagt:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Log:

http://pastebin.com/9snDyVYh

TRex hat geschrieben:Ich bin mal vorsichtig und sage, dass mir das PHP-Setup nicht gerade liegt, aber bei diversen qualvollen debugging-Sessions war es meistens der Pfad, der bei der Übergabe von nginx an PHP für "Missverständnisse" sorgte. PATH_TRANSLATED seh ich nun zum ersten Mal, ich hab an der Stelle mit gleichem Parameter SCRIPT_FILENAME stehen. Vielleicht ist PATH_TRANSLATED ja der "bessere" Weg, aber da sollte schon irgendwie fundiertes Wissen dahinter stecken (und meins rührt von debuggen mit strace).
Das mit den Path_... hat nix gebracht :(
------------------------------
Debian Jessie 8.1 - i7-3770k - 16 GB Ram - 2 x 3 TB Raid 1

Benutzeravatar
maltris
Beiträge: 292
Registriert: 27.08.2011 12:54:23
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von maltris » 22.06.2015 12:09:02

Ist "php-gettext" (Debian-Paket) installiert? Wenn nein: Installieren. (apt-get install php-gettext)
Hast du ein basedir gesetzt? Wenn ja: Um den Pfad /usr/share/phpmyadmin/ erweitern. (die einzelnen Pfade sind mit : getrennt anzugeben, das geschieht meist in der Pool-Config oder in der php.ini)

montymotz
Beiträge: 17
Registriert: 18.06.2015 09:21:28

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von montymotz » 22.06.2015 12:42:19

maltris hat geschrieben:Ist "php-gettext" (Debian-Paket) installiert? Wenn nein: Installieren. (apt-get install php-gettext)
Hast du ein basedir gesetzt? Wenn ja: Um den Pfad /usr/share/phpmyadmin/ erweitern. (die einzelnen Pfade sind mit : getrennt anzugeben, das geschieht meist in der Pool-Config oder in der php.ini)
Paket ist installiert.

In der Pool Config steht:

php_admin_value[open_basedir] = /usr/share/phpmyadmin/:/tmp/
------------------------------
Debian Jessie 8.1 - i7-3770k - 16 GB Ram - 2 x 3 TB Raid 1

Benutzeravatar
maltris
Beiträge: 292
Registriert: 27.08.2011 12:54:23
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von maltris » 22.06.2015 12:49:23

Wenn du kein open_basedir setzt - geht es dann? (Nur testweise.)

montymotz
Beiträge: 17
Registriert: 18.06.2015 09:21:28

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von montymotz » 22.06.2015 12:55:31

maltris hat geschrieben:Wenn du kein open_basedir setzt - geht es dann? (Nur testweise.)
Juhu. Läuft...


Ich danke dir :)
------------------------------
Debian Jessie 8.1 - i7-3770k - 16 GB Ram - 2 x 3 TB Raid 1

Benutzeravatar
maltris
Beiträge: 292
Registriert: 27.08.2011 12:54:23
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von maltris » 22.06.2015 14:20:02

Na warte mal. Ohne open_basedir zu verfahren ist eine eher schlechte Idee. Vorallem, wenn alle Funktionen aktiviert und kein chroot gesetzt. :)

Versuch mal folgendes:

php_admin_value[open_basedir] = /usr/share/phpmyadmin/:/tmp/:/usr/share/php/:/usr/share/pear/

Und wenn du das nginx-Verzeichnis auch noch brauchst:

php_admin_value[open_basedir] = /usr/share/phpmyadmin/:/tmp/:/usr/share/php/:/usr/share/pear/:/usr/share/nginx/

Und wie gesagt: Schau dir mal noch die ganzen Sicherheitsmechanismen an. Bei lokaler Nutzung ist das nicht so wichtig, aber spätestens wenn du damit online gehst, solltest du alles möglichst restriktiv gestalten.

Viel Erfolg!

montymotz
Beiträge: 17
Registriert: 18.06.2015 09:21:28

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von montymotz » 22.06.2015 17:59:09

maltris hat geschrieben:Na warte mal. Ohne open_basedir zu verfahren ist eine eher schlechte Idee. Vorallem, wenn alle Funktionen aktiviert und kein chroot gesetzt. :)

Versuch mal folgendes:

php_admin_value[open_basedir] = /usr/share/phpmyadmin/:/tmp/:/usr/share/php/:/usr/share/pear/

Und wenn du das nginx-Verzeichnis auch noch brauchst:

php_admin_value[open_basedir] = /usr/share/phpmyadmin/:/tmp/:/usr/share/php/:/usr/share/pear/:/usr/share/nginx/

Und wie gesagt: Schau dir mal noch die ganzen Sicherheitsmechanismen an. Bei lokaler Nutzung ist das nicht so wichtig, aber spätestens wenn du damit online gehst, solltest du alles möglichst restriktiv gestalten.

Viel Erfolg!

Jab das hatte ich nun schon gemacht weils mir auch nicht ganz geheuer war!

Ich komm halt von Apache, werde mich aber mal weiter in nginx einarbeiten.

Weitere fragen folgen sicher bald :D
------------------------------
Debian Jessie 8.1 - i7-3770k - 16 GB Ram - 2 x 3 TB Raid 1

Benutzeravatar
maltris
Beiträge: 292
Registriert: 27.08.2011 12:54:23
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Nginx Virtuelle Hosts und PhpMyAdmin

Beitrag von maltris » 23.06.2015 13:38:40

Immer gern. :D Versuche mal bisschen dabei zu bleiben. Ansonsten schick mal ne Erinnerungs-Mail wenn du keine Antworten bekommen solltest (was hier ziemlich unwahrscheinlich ist).

Antworten