В настоящее время я настраиваю OpenMediaVault на моем одноплатном ПК Rock64, который основан на Debian и настраивается через веб-интерфейс, работающий с NGINX на порту 80.
В настоящее время я пытаюсь установить Nextcloud с помощью NGINX, MariaDB / MySQL и PHPMyAdmin, и изначально я надеялся использовать Docker для их установки и управления ими. К сожалению, у меня не было ничего, кроме проблем, поэтому я вернулся к установке программного обеспечения из репозитория Linux.
Я успешно настроил сервер MySQL с пользователем и базой данных, готовыми для Nextcloud, и мне удалось заставить PHPMyAdmin работать на другом порту 8080.
Вместо использования портов я хотел бы использовать поддомены, но я не могу заставить их работать. До сих пор я установил следующие корневые каталоги: -
/var/www/openmediavault
/var/www/phpmyadmin
/var/www/nextcloud
Мне нужны следующие поддомены: - N.B Я настрою SSL позже, как только я перейду на WAN.
Мой 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
Большое спасибо
Будет
ОБНОВЛЕНИЕ 10:18 06.03.2019 Вот блок сервера для / 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;
}
}
ОБНОВЛЕНИЕ 11:25 06.03.2019 После настройки маршрутизатора 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
ОБНОВЛЕНИЕ 05.09.2019 Теперь я зарегистрировал полное доменное имя как phpmyadmin.rock64.test, чтобы устранить любые конфликты, и это зарегистрировано в DNS моего маршрутизатора OpenWrt. Я могу пропинговать доменное имя и получить ответ со статически назначенного IP-адреса (192.168.1.123), который я связал с именем хоста LAN. Для других целей тестирования я назначил порт 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;
}
}
Вам нужно создать server
блокировать для каждого из ваших доменов и указать доменное имя, указанное в server_name
директива.
В server_name
должно содержать полное доменное имя, например server_name xyz.example.com
Детали в документации nginx.