Ich richte gerade OpenMediaVault auf meinem Rock64 Single Board-PC ein, der auf Debian basiert und über die Web-GUI von NGINX auf Port 80 konfiguriert wird.
Ich versuche gerade, Nextcloud mit NGINX, MariaDB / MySQL und PHPMyAdmin zu installieren und ursprünglich wollte ich Docker verwenden, um sie alle zu installieren und zu verwalten. Da ich leider nur Probleme hatte, kehrte ich zur Installation der Software aus dem Linux-Repository zurück.
Ich habe erfolgreich einen MySQL-Server mit einem Benutzer und einer Datenbank eingerichtet, die für Nextcloud bereit sind, und habe es geschafft, PHPMyAdmin auf einem anderen Port 8080 zum Laufen zu bringen.
Anstatt Ports zu verwenden, würde ich gerne Subdomains verwenden, aber ich kann sie scheinbar nicht zum Laufen bringen. Bisher habe ich die Root-Verzeichnisse wie folgt eingestellt: -
/var/www/openmediavault
/var/www/phpmyadmin
/var/www/nextcloud
Ich möchte die folgenden Subdomains: - Hinweis: Ich werde SSL zu einem späteren Zeitpunkt einrichten, sobald ich dies über ein WAN übernehme.
- http: //rock64.lan (Standard-OpenMediaVault-Web-GUI)
- http: //phpmyadmin.rock64.lan (PHPMyAdmin GUI für MySQL)
- http: //nextcloud.rock64.lan (Nextcloud-Web-GUI)
Mein NGINX ist für die Verwendung von /etc/nginx/sites-available
und
konfiguriert
/etc/nginx/sites-enabled
Die folgenden symbolischen Links werden mit den jeweiligen Namen verwendet: -
ln -s /etc/nginx/sites-available/openmediavault-webgui /etc/nginx/sites-enabled/openmediavault-webgui
ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/phpmyadmin
ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/nextcloud
Dies ist der Inhalt der Datei openmediavault-webgui
server {
server_name openmediavault-webgui;
root /var/www/openmediavault;
index index.php;
autoindex off;
server_tokens off;
sendfile on;
large_client_header_buffers 4 32k;
client_max_body_size 25M;
error_log /var/log/nginx/openmediavault-webgui_error.log error;
access_log /var/log/nginx/openmediavault-webgui_access.log combined;
error_page 404 = /404.php;
location /404.html {
internal;
}
location /extjs6/ {
alias /usr/share/javascript/extjs6/;
expires 2d;
}
location ~ ^/(css|fonts|js|images)/ {
expires 2d;
}
location /favicon {
expires 14d;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm-openmediavault-webgui.sock;
fastcgi_index index.php;
fastcgi_read_timeout 60s;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
listen 80 default_server;
include /etc/nginx/openmediavault-webgui.d/*.conf;
}
Ich habe auch einen symbolischen Link vom Speicherort von PHPMyAdmin zum WWW-Verzeichnis
ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
Danke vielmals
Wille
UPDATE 10:18 03/06/2019
Hier ist der Serverblock für / etc / nginx / sites-enabled / phpmyadmin
server {
listen 80;
root /var/www/phpmyadmin;
index index.php;
server_name phpmyadmin.rock64.lan;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7-0.fpm.sock;
fastcgi_index index.php;
}
}
UPDATE 11:25 03/06/2019
Nach der Konfiguration meines OpenWrt-Routers kann ich eine DNS-Suche durchführen und http://phpmyadmin.rock64.lan
zeigt auf die richtige IP-Adresse. Allerdings bekomme ich 502 Bad Gateway. In einem Forum, auf das ich gestoßen bin, wurde das Festlegen des Eigentums und der Berechtigungen erwähnt. Ich habe mit ihnen rumgespielt, aber keine Veränderung.
Unter /etc/php/7.0/fpm/pool.d/ habe ich:
[openmediavault-webgui]
user = openmediavault-webgui
group = openmediavault-webgui
listen = /var/run/php-fpm-openmediavault-webgui.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0600
pm = ondemand
pm.max_children = 25
pm.process_idle_timeout = 10s
chdir = /
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; openmediavault php.ini settings ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories
php_value[include_path] = ".:/usr/share/php:/var/www/openmediavault"
; Pam Authentication Support (see /etc/pam.d)
php_value[pam.servicename] = "openmediavault-webgui";
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
php_value[upload_max_filesize] = 25M
; Maximum size of POST data that PHP will accept.
; http://php.net/post-max-size
php_value[post_max_size] = 25M
; Do not expose to the world that PHP is installed on the server.
; http://php.net/expose-php
php_value[expose_php] = Off
; Name of the session (used as cookie name).
; http://php.net/session.name
php_value[session.name] = X-OPENMEDIAVAULT-SESSIONID
; Default timeout for socket based streams (seconds)
; http://php.net/default-socket-timeout
php_value[default_socket_timeout] = 90
; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
php_value[max_execution_time] = 90
UPDATE 09/05/2019 Ich habe den FQDN jetzt als phpmyadmin.rock64.test registriert, um Konflikte zu beseitigen. Dies ist im DNS meines OpenWrt-Routers registriert. Ich kann den Domainnamen pingen und erhalte eine Antwort von der statisch zugewiesenen IP-Adresse (192.168.1.123), die ich mit dem LAN-Hostnamen verknüpft habe. Zu anderen Testzwecken habe ich Port 8080 zugewiesen, aber weder der vollqualifizierte Domänenname noch der Zugriff über http://192.168.1.123:8080 funktionieren und führen immer noch zu einem fehlerhaften Gateway 502.
server {
listen 8080;
root /var/www/phpmyadmin;
index index.php index.html index.htm;
server_name phpmyadmin.rock64.test;
server_tokens off;
location ~ \.php$ {
try_files $uri +404;
# include snippets/fastcgi-php.conf;
include /etc/nginx/fastcgi.conf;
include /etc/nginx/fastcgi_params;
# fastcgi_pass unix:/var/run/php/php7-0.fpm.sock;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
}
location ~ /\. {
access_log off;
log_not_found off;
deny all;
}
}
.lan
Sie sich selbst Kollisionen aussetzen. Verwenden Sie entweder die Namen, die für diesen Zweck definiert sind (siehe RFC2606, aber normalerweise.example
oder.test
) oder erstellen Sie einen echten Domänennamen in einer vorhandenen TLD und verwenden Sie ihn dann intern als Suffix für alle Namen..local
wird von mDNS (Multicast-DNS) verwendet, daher ist es in Ordnung, wenn Sie absolut sicher sind, dass kein Gerät in Ihrem Netzwerk dieses Protokoll verwendet. Andernfalls benötigen Sie einen anderen, wenn Sie Konflikte vermeiden möchten.Antworten:
Der
server_name
sollte einen vollqualifizierten Domainnamen enthalten, wie zserver_name xyz.example.com
Die Details finden Sie in den Nginx-Dokumenten .
quelle
Sie müssen
server
für jede Ihrer Domänen einen Block erstellen und den Domänennamen in derserver_name
Direktive angeben.quelle
server
Block zählt, sind die{}
Charaktere. Der Name desroot
Verzeichnisses macht keinen Unterschied.