我目前正在基于 Debian 的 Rock64 单板电脑上设置 OpenMediaVault,并通过在端口 80 上从 NGINX 运行的 Web GUI 进行配置。
我目前正在尝试使用 NGINX、MariaDB/MySQL 和 PHPMyAdmin 安装 Nextcloud,最初我希望使用 Docker 来安装和管理它们。不幸的是,我遇到了很多问题,所以我恢复了从 Linux 存储库安装软件。
我已经成功设置了一个 MySQL 服务器,其中有用户和数据库可供 Nextcloud 使用,并且已设法让 PHPMyAdmin 在不同的端口 8080 上运行。
我想使用子域而不是端口,但似乎无法让它们工作。到目前为止,我已将根目录设置为以下形式:-
/var/www/openmediavault
/var/www/phpmyadmin
/var/www/nextcloud
我想要以下子域名:-NB:一旦我通过 WAN 接管它,我将在稍后设置 SSL。
- http://rock64.lan(默认 OpenMediaVault 网页图形用户界面)
- http://phpmyadmin.rock64.lan(MySQL 的 PHPMyAdmin 图形用户界面)
- http://nextcloud.rock64.lan(Nextcloud 网页图形用户界面)
我的 NGINX 配置为使用
/etc/nginx/sites-available
和
/etc/nginx/sites-enabled
下列符号链接将使用相应的名称:-
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
这是 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;
}
我还有一个从 PHPMyAdmin 的位置到 www 目录的符号链接
ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
非常感谢
将要
更新时间 2019/03/06 10:18
这是 /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; } }
更新时间 2019/03/06 11:25
配置我的 OpenWrt 路由器后,我可以进行 DNS 查找并http://phpmyadmin.rock64.lan
指向正确的 IP 地址。但是,我收到 502 Bad Gateway。我遇到的一个论坛提到设置所有权和权限。我尝试过这些方法,但没有变化。
在 /etc/php/7.0/fpm/pool.d/ 下我有:
[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
更新日期 2019/09/05 我现在已将 FQDN 注册为 phpmyadmin.rock64.test 以消除任何冲突,并且它已在我的 OpenWrt 路由器的 DNS 中注册。我可以 ping 域名,并从我已链接到 LAN 主机名的静态分配 IP 地址 (192.168.1.123) 获得回复。出于其他测试目的,我分配了端口 8080,但既没有分配 FQDN,也没有通过http://192.168.1.123:8080有效,但仍然导致错误网关 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;
}
}
答案1
应该server_name
包含完全限定的域名,例如server_name xyz.example.com
详情如下在 nginx 文档中。
答案2
您需要为每个域创建一个块,并在指令server
中列出域名。server_name