Я пытаюсь запустить Nextcloud, домашнюю страницу и документы в разных местах, но не могу понять, как правильно настроить мой nginx-config.
Мое рабочее дерево выглядит так:
/ Var / WWW /
| -> сайт
| -> nextcloud
| -> оформление документов
Моя домашняя страница доступна через web.domain.com, а моя Nextcloud доступна через cloud.domain.com.
Теперь я хочу, чтобы документы были доступны на web.domain.com/notes.
Index.php Paperwork находится в подпапке «paperwork / frontend / public».
Это моя попытка решить эту проблему (без всей ssl и облачной части):
server{
listen 443 ssl http2;
server_name web.domain.com;
error_log /var/log/nginx/debug.log debug;
root /var/www/website;
location / {
index index.php index.html;
}
location /notes {
alias /var/www/paperwork/frontend/public;
index index.php index.html index.htm;
try_files $uri $uri/index.php;
}
location ~ /(nextcloud|backups) {
deny all;
return 403;
}
location ^~ /nextcloud/ {
deny all;
return 402;
}
location ^~ /nextcloud/ {
deny all;
return 402;
}
location ~ \.php$ {
try_files $uri =404;
alias /var/www/paperwork/frontend/public;
index index.php index.html index.htm;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Я испробовал много разных решений, но я получил 404, потому что он использует неправильный каталог и не может найти /var/www/notes/index.php (или похожие ошибки), или nginx возвращает мне только index.php как файл-скачать.
Спасибо заранее!
Используйте вложенные блоки местоположения для более чистого решения. Обратите внимание ^~
модификатор, чтобы избежать двусмысленности. Увидеть этот документ для большего.
Пытаться:
location ^~ /notes {
alias /var/www/paperwork/frontend/public;
index index.php index.html index.htm;
if (!-e $request_filename) { rewrite ^ /notes/index.php last; }
location ~ \.php$ {
if (!-f $request_filename) { return 404; }
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
Eсть давняя ошибка в отношении использования alias
с try_files
, Увидеть это предостережение на использование if
,
Включают fastcgi_params
перед использованием fastcgi_param
директива, так как она может молча перезаписать ваши параметры.
Других решений пока нет …