So, i’ve installed nextcloud, with credentials entered earlier in MySQL however i can’t login.
OS: CentOS 7
PHP: PHP 7.3.8 (cli) (built: Jul 30 2019 09:26:16) ( NTS )
Copyright © 1997-2018 The PHP Group
Zend Engine v3.3.8, Copyright © 1998-2018 Zend Technologies
with Zend OPcache v7.3.8, Copyright © 1999-2018, by Zend Technologies
nginx version: nginx/1.12.2
MySQL: mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1
NextCloud v 16
Nextcloud root folder: /var/www/example.com/public_html/
chown -R nginx:nginx /var/www/example.com/public_html
mkdir /var/www/example.com/public_html/data
In Mysql i created user and nextcloud database; user has
grant all privileges on nextcloud_db.
After creating and granting privileges over database i head to example.com and initiated the installation. It loads a bit and looks like successful installation. I’m presented with login form however nothing happens when i press login.
The output of your Nextcloud log in data/admin/nextcloud.log:
{"reqId":"AyR5qPlPoq6h8vLV4ZCt","level":3,"time":"2019-08-19T10:41:26+00:00","remoteAddr":"xxx.xxx.xxx.xxx","user":"--","app":"index","method":"GET","url":"\/index.php\/apps\/theming\/favicon?v=0","message":{"Exception":"OCP\\Files\\NotPermittedException","Message":"Could not create folder","Code":0,"Trace":[{"file":"\/var\/www\/example.com\/public_html\/lib\/private\/Files\/AppData\/AppData.php","line":155,"function":"newFolder","class":"OC\\Files\\Node\\Folder","type":"->","args":["0"]},{"file":"\/var\/www\/example.com\/public_html\/apps\/theming\/lib\/ImageManager.php","line":155,"function":"newFolder","class":"OC\\Files\\AppData\\AppData","type":"->","args":["0"]},{"file":"\/var\/www\/example.com\/public_html\/apps\/theming\/lib\/ImageManager.php","line":170,"function":"getCacheFolder","class":"OCA\\Theming\\ImageManager","type":"->","args":[]},{"file":"\/var\/www\/oblika-zate.si\/public_html\/apps\/theming\/lib\/Controller\/IconController.php","line":124,"function":"getCachedImage","class":"OCA\\Theming\\ImageManager","type":"->","args":["favIcon-core"]},{"file":"\/var\/www\/example.com\/public_html\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":166,"function":"getFavicon","class":"OCA\\Theming\\Controller\\IconController","type":"->","args":["core"]},{"file":"\/var\/www\/example.com\/public_html\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":99,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Theming\\Controller\\IconController"},"getFavicon"]},{"file":"\/var\/www\/example.com\/public_html\/lib\/private\/AppFramework\/App.php","line":126,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Theming\\Controller\\IconController"},"getFavicon"]},{"file":"\/var\/www\/example.com\/public_html\/lib\/private\/AppFramework\/Routing\/RouteActionHandler.php","line":47,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Theming\\Controller\\IconController","getFavicon",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"app":"core","_route":"theming.Icon.getFavicon"}]},{"function":"__invoke","class":"OC\\AppFramework\\Routing\\RouteActionHandler","type":"->","args":[{"app":"core","_route":"theming.Icon.getFavicon"}]},{"file":"\/var\/www\example.com\/public_html\/lib\/private\/Route\/Router.php","line":297,"function":"call_user_func","args":[{"__class__":"OC\\AppFramework\\Routing\\RouteActionHandler"},{"app":"core","_route":"theming.Icon.getFavicon"}]},{"file":"\/var\/www\/example.com\/public_html\/lib\/base.php","line":975,"function":"match","class":"OC\\Route\\Router","type":"->","args":["\/apps\/theming\/favicon"]},{"file":"\/var\/www\/example.com\/public_html\/index.php","line":42,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"\/var\/www\/example.com\/public_html\/lib\/private\/Files\/Node\/Folder.php","Line":162,"CustomMessage":"--"},"userAgent":"Mozilla\/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko\/20100101 Firefox\/68.0","version":"16.0.3.0"}
/var/log/nginx/example.com
90.xxx.xxx.xxx - - [19/Aug/2019:12:24:19 +0200] "GET / HTTP/1.1" 301 185 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
Virtual host config in sites-available
# Upstream to abstract backend connection(s) for php
upstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php/php7.0-fpm.sock;
}
server {
listen 80;
server_name example.com www.example.com;
include snippets/letsencrypt.conf;
return 301 https://$host$request_uri;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
## Your only path reference.
root /var/www/example.com/public_html/;
## This should be in your http block and if it is, it's not needed here.
index index.php index.html index.htm;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = /.well-known/carddav {
return 301 $scheme://$host/nextcloud/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/nextcloud/remote.php/dav;
}
location /.well-known/acme-challenge { }
location ^~ /nextcloud {
# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;
# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
location /nextcloud {
rewrite ^ /nextcloud/index.php$request_uri;
}
location ~ ^/nextcloud/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/nextcloud/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^/nextcloud/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-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;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^/nextcloud/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~ \.(?:css|js|woff|svg|gif)$ {
try_files $uri /nextcloud/index.php$request_uri;
add_header Cache-Control "public, max-age=15778463";
# Add headers to serve security related headers (It is intended
# to have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read
# into this topic first.
# add_header Strict-Transport-Security "max-age=15768000;
# includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /nextcloud/index.php$request_uri;
# Optional: Don't log access to other assets
access_log off;
}
}
location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
}
#location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
# expires max;
# log_not_found off;
#}
}
As seen from the image, installation looks like it took place just fine, as DB is not empty anymore.