Я перенес установку Nextcloud 15 на сервер nginx. Папка nextcloud находится в подпапке.
/var/www/<mydomain>/web/nextcloud/
https://<mydomain>/nextcloud/
Для конфигурации nginx я использую один из документов nextcloud: https://docs.nextcloud.com/server/15/admin_manual/installation/nginx.html#nextcloud-in-a-subdir-of-nginx
Важными частями этой проблемы являются (я думаю ..):
location ^~ /nextcloud {
location /nextcloud {
rewrite ^ /nextcloud/index.php$request_uri;
}
location ~ ^\/nextcloud\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
# Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
# Enable pretty urls
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
}
Что-то не так с перезаписью, потому что когда я захожу на свой сайт nextcloud, я получаю 404, и в журналах говорится:
[error] <...> open() "var/www/<servername>/web/nextcloud/index.php/login failed (20: Not a directory) <...>
Открытие
https://<mydomain>/nextcloud
перенаправляет на
https://<mydomain>/nextcloud/index.php/login
и именно так было на старом сервере. Но каким-то образом nextcloud / core / templates / login.php должен быть обслужен, но это не так. Что-то не так или отсутствует в этом конфиге nginx?