rvolz / BicBucStriim

BicBucStriim streams books, digital books. It fills a gap in the functionality of current NAS devices that provide access to music, videos and photos -- but not books. BicBucStriim fills this gap and provides web-based access to your e-book collection.
Other
411 stars 73 forks source link

Calibre library check - No Database opened on NFS #314

Closed fbr1969 closed 5 years ago

fbr1969 commented 5 years ago

Hello,

I put BicBucStriim on this path : /var/www/bbs/ I use a nfs share to access my book repository and metadata.db, on a mounting point calibre mount -o nolock x.x.x.x:/volume1/Data/Bibliotheque /var/www/bbs/calibre/ Here the files rights ; drwxrwxrwx 464 root root 20480 Oct 5 18:36 calibre -rwxrwxrwx 1 root root 4439040 Oct 5 07:30 calibre/metadata.db The result of the Calibre library check said ; Directory exists? Yes Directory is readable? Yes Directory is executable? Yes Real path of database is: /var/www/bbs/calibre/metadata.db Database opened? No

if i create a directory test and make a copy of metadata.db on it ; drwxrwxrwx 2 root root 4096 Oct 5 18:29 test -rwxr-xr-x 1 root root 4439040 Oct 5 18:29 test/metadata.db The result of the Calibre library check said ; OK

I don't understand what's going on.

Best regards

rvolz commented 5 years ago

The source of the problem could be that you put the Calibre library beneath the BicBucStriim path. I've never tried that. For security reasons the library is assumed to be somewhere else, in a place not directly reachable from the web server. In your case there could be access conflicts, as proven by your test with the other directory.

Are the other installcheck tests green? The test "Is Sqlite3 installed?" tries to open the internal SQLite database. The difference between both is, that the latter opens it with a path relative to the BicBucStriim directory, while the library check uses the full path.

rvolz commented 5 years ago

PS: to get a detailed error message in the library check, you could replace line 78 in the installcheck.php, e.g. from

} catch (PDOException $e) {
    ;
}   

to something like

} catch (PDOException $e) {
   echo 'Exception: ',  $e->getMessage(), "\n";
}   
fbr1969 commented 5 years ago

Thanks for your help. I made a mistake with my Container on Proxmox. I forgot to configure the option mount=nfs on my LXC Container. It's stupid... Sorry