nginx ohne Domain mehere Ordner

WetMar

Ensign
Registriert
Apr. 2015
Beiträge
162
Und zwar habe ich auf meinem Server keine Domain der Seite ist nur über eine IP erreichbar.
Pfad der Website:
/var/www/html/website

Da ich aber noch andere Dienste laufen habe wie phpmyAdmin möchte ich dort auch zugreifen, was mir aber seit 2 Tagen nicht gelingen will.

/etc/nginx/sites-available
server {
listen 80;
server_name x.xx.xx.xx; <- Normal IP des Server wurde unkenntlich gemacht
root /var/www/html/website/;

index index.php;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

location ~ /\.ht {
deny all;
}

}

Seiten/Ordner, die ich verfügbar machen möchte, wären:
/var/www/html/admin
/var/www/html/phpmyadmin

Habe schon vieles ausprobiert aber immer das gleiche Ergebnis.

404 Not Found​

nginx/1.18.0 (Ubuntu)
 
mach phpmyadmin bitte nicht aus dem internet erreichbar. Insbesondere wenn du weder eine Domain, noch sauber konfiguriertes SSL davor hast.

schaue später mal ob ich da ne saubere config für dich hin bekomme :)

Sonst: Warum nicht einfach eine Domain kaufen / kostenfrei so viele wie nötig bei dyndns o.ä Klicken?

Mit nur 0-10 € im Jahr bist du die Sorgen los. Du hast das Problem seit Tagen, deine Lebenszeit ist mehr Wert.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: WetMar
Die ganze Sache läuft auf einem VServer. Ist alles zum Testen, nichts Offizielles daher wäre eine Domäne hinfällig ;)
 
z.b. mysql workbench installieren, ssh-tunnel mit port-forwarding aufmachen, datenbankverbindung mit dem lokalen port aufmachen, z.b. ssh -L 3306:127.0.0.1:3306 user@vserver und dann lokal eine verbindung mit 127.0.0.1:3306 aufbauen.

damit ist kein phpmyadmin nötig, die datenbank braucht keinen port nach aussen und die verbindung ist verschlüsselt.
 
  • Gefällt mir
Reaktionen: WetMar und madmax2010
Wie sieht deine Verzeichnisstruktur im Dateisystem aus? Hast du mal ins error.log geschaut? Da schreibt der nginx eigentlich immer, wo er welche Datei herholen will... dann müsstest du direkt sehen, an welcher Stelle der Pfad falsch ist.
 
KillerCow schrieb:
Wie sieht deine Verzeichnisstruktur im Dateisystem aus? Hast du mal ins error.log geschaut? Da schreibt der nginx eigentlich immer, wo er welche Datei herholen will... dann müsstest du direkt sehen, an welcher Stelle der Pfad falsch ist.
Normales Ubuntu System.
in /var/www/html habe ich alle Ordner wie Website, phpAdmin und Admin (extra Website)
Da die Ordner nicht in der Datei stehen sind die auch nicht von außen erreichbar und das ist ja mein Problem zurzeit. Auf die Homepage komme ich normal rauf aber halt nicht zum Beispiel auf phpadmin
0x8100 schrieb:
z.b. mysql workbench installieren, ssh-tunnel mit port-forwarding aufmachen, datenbankverbindung mit dem lokalen port aufmachen, z.b. ssh -L 3306:127.0.0.1:3306 user@vserver und dann lokal eine verbindung mit 127.0.0.1:3306 aufbauen.

damit ist kein phpmyadmin nötig, die datenbank braucht keinen port nach aussen und die verbindung ist verschlüsselt.

Der Server ist durch ufw, Fail2Ban geschützt und SSH ist nur möglich mit einer SSH Key File.
Der Server ist nicht lokal, sondern ein gemieteter VServer
 
Zuletzt bearbeitet:
Fail2ban ist an der stelle egal und ssh mit pubkey Auth ist da auch nicht im Weg.
 
  • Gefällt mir
Reaktionen: GroMag, 0x8100, foo_1337 und eine weitere Person
Ich weiß wollte nur sagen, dass der Server schon abgesichert ist so gut es halt geht.
 
Sobald phpmyadmin am netz ist, ist hilft auch fail2ban nicht mehr unbedingt
 
  • Gefällt mir
Reaktionen: foo_1337
Klar aber Passwörter sind mehr als 36 stellen wird also nicht so einfach zu dem wie gesagt ist nichts Geheimes oder was sich lohnt zu klauen alles nur zum testem
 
root /var/www/html/website/
Damit gibst du vor, von welchem Verzeichnis aus die locations gesucht werden sollen. Wenn phpMyAdmin etc woanders liegt, dann kann der nginx die natürlich nicht finden. Darum auch die Frage nach der Verzeichnisstruktur. Wo genau liegt phpMyAdmin im Dateisystem?

http://nginx.org/en/docs/http/ngx_http_core_module.html#root

WetMar schrieb:
Klar aber Passwörter sind mehr als 36 stellen wird also nicht so einfach zu dem wie gesagt ist nichts Geheimes oder was sich lohnt zu klauen alles nur zum testem
Deine Seite ist aber nicht verschlüsselt, weil kein TLS aktiv ist. Damit kann man das Passwort bequem mitlesen. Aber darum geht es ja hier nicht.
 
Im gleichen Ordner wie der Ordner "website"
/var/www/html/website
/var/www/html/admin
/var/www/html/phpmyadmin

Alle Ordner befinden sich in /var/www/html/
 
Du musst doch nur locations definieren. Du schreibst "Habe schon vieles ausprobiert". Was ist denn "vieles"?
 
foo_1337 schrieb:
Du musst doch nur locations definieren. Du schreibst "Habe schon vieles ausprobiert". Was ist denn "vieles"?
Eben vieles. Und das hat nicht geklappt wie man sieht. Mit Locations habe ich es schon versucht aber eventuelle nicht richtig.
 
Du definierst eine Location, also zB /phpmyadmin und in dem Block setzt du das root auf das phpmyadmin verzeichnis und was du ggf noch so spezifisches dafür benötigst. Versuch das bitte mal und wenn es nicht geht, dann bitte hier den Ausschnitt zeigen sowie das entsprechende error log + beschreibung des verhaltens

location /phpmyadmin {
root /path/to/blargh;
...
}
 
server {
listen 80;
server_name ;
root /var/www/html/;

index index.php;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

location ~ /\.ht {
deny all;
}

}
War so nicht gedacht aber so geht es dann werde ich die Website eben in /var/www/html/ und den Rest so aufrufen danke für die Tipps.
 
0x8100 schrieb:
z.b. mysql workbench installieren, ssh-tunnel mit port-forwarding aufmachen, datenbankverbindung mit dem lokalen port aufmachen, z.b. ssh -L 3306:127.0.0.1:3306 user@vserver und dann lokal eine verbindung mit 127.0.0.1:3306 aufbauen.

damit ist kein phpmyadmin nötig, die datenbank braucht keinen port nach aussen und die verbindung ist verschlüsselt.
Enter passphrase for key '/root/.ssh/id_rsa':
bind [127.0.0.1]:3306: Address already in use

Bei "Connection Method" Standard TCP/IP kommt das bereits eine Verbindung besteht.
Bei "Connection Method" Standard TCP/IP over SSH kommt das er keine Verbindung herstellen konnte.
 

Anhänge

  • mysql.PNG
    mysql.PNG
    23,1 KB · Aufrufe: 278
  • MySQL_1.PNG
    MySQL_1.PNG
    5,8 KB · Aufrufe: 284
Zuletzt bearbeitet:
wenn "Address already in use" kommt, dann läuft auf deinem lokalen rechner schon etwas auf diesem port. höchstwahrscheinlich hast du lokal ebenfalls mysql installiert. in diesem fall einfach den lokalen port für den tunnel ändern: ssh -L 1234:127.0.0.1:3306 user@vserver

in mysql workbench dann 127.0.0.1:1234 als verbindung angeben.
 
  • Gefällt mir
Reaktionen: WetMar
Zurück
Oben