Quote vlad59
The only nginx specific code is the use of the header X-Accel-Redirect to handle the download of files outside your web directory.
I believe that lighttpd has almost the same feature with x-sendfile (I'll let you google it if needed) so it shouldn't be hard to add (3-5 line change) assuming you're willing to test.
I would be more than willing to test if you need me to. If there is a better place to coordinate a test, let me know (AIM, IRC, <insertChatClient>).
COPS 0.0.2 is out with the following changes (First post to download) :
- Add support for MOBI and PDF
- Major refactoring to prepare something nice for the future
- Add a config item to make use of X-Sendfile instead of X-Accel-Redirect if needed
I've updated the demo to add a .Mobi and a .PDF to the book Alice in Wonderland. I have no access to any OPDS client that can download .Mobi but Mantano show the PDF correctly.
Happy testing.
@CBebop : I'll find some time next week to help you test COPS on lighttpd.
Love cops, thanks for the great work.
i'm working on the opposite side of cops, making the library.
I'm in the process of making a script who scan a directory with pub file and create / update the calibre database sqlite3 file and create the cover / metadata.
The ultimate goal si to use my NAS to organise my epub book, juste put the .epub file in a ftp directory, a script scan the new file and organise them.
i've a problem open the calibre sqlite 3 file, he say me "function XX" not found, did you have the same ?
Thanks anyway
Ps : i test it on my ipad / apache
you have miss the forget :
const PAGE_OPENSEARCH_QUERY = "9";
in OPDS_renderer.php
@gaspine
Thanks for the error report, I fixed it yesterday. I'll publish a new release in 2 or 3 days.
I had no problem opening Calibre database with sqlite3 on Linux or sqliteadmin on Windows or with PHP. Maybe I can help you if give more information by mail or PM.
Hi Guys,
Anyone able to assist with the install on this?
I have installed fastcgi, php5 and nginx and the COPS files and updated the nginx.conf and config_local.php configuration but received "Error 502 Bad gateway" messages when I load the site.
The error log reports: connect to unix:/tmp/fcgi.sock failed (2: No such file or directory)
The nginx.conf files refers to this directory in the line:
fastcgi_pass unix:/tmp/fcgi.sock;
So I change this to
fastcgi_pass 127.0.0.1:9000;
But the I received the error:
[error] 4215#0: *1 upstream sent unsupported FastCGI protocol version: 72 while reading response header from upstream, client: 192.168.2.14, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "box"
So I worked out I had to run fastcgi:
php-cgi -b 127.0.0.1:9000
But now I get the following error:
XML Parsing Error: syntax error
Location:
http://box/Line Number 1, Column 1:exception 'PDOException' with message 'could not find driver' in /usr/local/html/base.php:223
At this stage I am lost. The COPS files are stored in /usr/local/html/ including the base.php file.
Edit 1: I realize now the XML error is generated by my web browser. The actual page source lists the errors:
exception 'PDOException' with message 'could not find driver' in /usr/local/html/base.php:223
Stack trace:
#0 /usr/local/html/base.php(223): PDO->__construct('sqlite:/usr/loc...')
#1 /usr/local/html/author.php(33): Base::getDb()
#2 /usr/local/html/base.php(123): Author::getCount()
#3 /usr/local/html/feed.php(30): Page->InitializeContent()
#4 {main}exception 'PDOException' with message 'could not find driver' in /usr/local/html/base.php:223
Stack trace:
#0 /usr/local/html/base.php(223): PDO->__construct('sqlite:/usr/loc...')
#1 /usr/local/html/author.php(33): Base::getDb()
#2 /usr/local/html/base.php(123): Author::getCount()
#3 /usr/local/html/feed.php(30): Page->InitializeContent()
#4 {main}
Edit 2: I made some further progress - php.ini needed the pdosqlite extension added:
extension=pdo_sqlite.so
Unfortunately, I now get the error:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_sqlite.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_sqlite.so: undefined symbol: sqlite3_libversion in Unknown on line 0
It seems my PHP5 is compiled for the wrong sqlite version ???
from phpinfo()
SQLITE
SQLite support enabled
PECL Module version 2.0-dev $Id: sqlite.c 306939 2011-01-01 02:19:59Z felipe $
SQLite Library 2.8.17
SQLite Encoding iso8859
PDO
PDO support enabled
PDO drivers odbc, sqlite2
A bit confused at this stage as the sqlite library is sqlite3.so
usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_sqlite.so
usr/local/lib/php/extensions/no-debug-non-zts-20090626/sqlite3.so
Can anyone help? Thanks.
I'm interested in this script for many of the same reasons that you created it, but there is one feature I would like to achieve... Is it possible to also make a web browsable catalog?
Calibre2opds achieves this by generating HTML files for the website and XML files for the OPDS catalog. I like the way that the two match and would very much like to use a regular web browser and my opds capable ereader for navigating my collection.
I would appreciate any information you might have that could help me out with this.
@blackmailer : php si a bit confusing with sqlite.
Thé calibre database si sqlite 3 version.
I ve succesfully installés cops in an Apache environnement maybe it's easier to do in that way.
For the last post, opds si à better protocol to browse à catalog, in i remembre calibre 2opds build static html ADN you néed to rebuild them. In you ré reader si opds compatible keep cops
I'm getting this error message
Code
Fatal error: Call to a member function fetchColumn() on a non-object in /var/www/author.php on line 33
From the research I've done through Google it appears that it is having trouble connecting to the database. One of the suggestions I got was to make sure "php_pdo_sqlite extension is enabled in PHP". I think this is true but I am not sure.
I'm running Apache2.
Doh! I fixed my problem and it was pretty stupid...
In the config_local.php file I had the variable:
PHP Code
$config['calibre_directory'] = '/var/www/books';
When it should have been:
PHP Code
$config['calibre_directory'] = '/var/www/books/';
Notice the '/' at the end? Such a small thing that took me several hours to find.
@b1ackmai1er
I agree with Gaspine thought, you have a to use a Sqlite3 driver to open Calibre's database.
What OS are you using ? from the directory you typed it doesn't appear to be any variant of Debian or Arch.
Have you restarted your php fastcgi after installing sqlite package ?
@micster
Sorry for the lost hours
I'll add a warning in next release (should be later today).
About your other question about a web browsable catalog, I'm currently coding it, I'll post a link to my work in progress later.