(Calibre) COPS - E-Book Verwaltung auf dem NAS540

Für unsere deutschen Mitglieder.
Post Reply
masterflai
Posts: 14
Joined: Sat Jun 27, 2015 7:54 pm

(Calibre) COPS - E-Book Verwaltung auf dem NAS540

Post by masterflai » Sat Jun 27, 2015 7:58 pm

Vorwort: Zunächst möchte ich Ariek2 für seinen COPS Beitrag für das NSA325 danken, welcher auf FFP aufbaut und nachfolgend in Auszügen verwendet wird.

Da das NAS540 derzeit 64Kb Pages verwendet, kann FFP dort im Augenblick nicht installiert werden und somit gab es bislang auch keine Möglichkeit, um COPS auf dem NAS540 zu installieren.

Dank Mijzelf's Toolchain and 'optware' ist es nun endlich möglich, auch auf dem NAS540 COPS zu installieren und zu nutzen.

Vielen Dank an Mijzelf für seine hervorragende Unterstützung bei der Umsetzung. :zustimmen:

Worum geht es:
Ariek2 wrote:About Calibre COPS
Calibre OPDS (and HTML) PHP Server is web-based and light alternative to Calibre content server / Calibre2OPDS to serve ebooks in various formats.

Calibre COPS: Website | Wiki
MobileRead: COPS: Calibre OPDS PHP Server

Sample library
A sample library with some open source books can be download from here, extract it to the 'calibre_directory' of your choise.
Nun geht es aber auch schon los. Installiert zunächst die Toolchain, sofern ihr dies noch nicht getan habt.
Mijzelf wrote:...
To install it, login on your NAS540 over ssh or telnet as root, and execute

Code: Select all

wget http://downloads.zyxel.nas-central.org/Users/Mijzelf/NAS-540/optware/optware_installer.sh
sh optware_installer.sh install
Now logoff, and login again.
To get the toolchain now execute

Code: Select all

opkg update
opkg install toolchain
(And don't forget to have a look in 'opkg list' to see other goodies)
Nun können wir mit der Installation beginnen.

1. Installiert firmware-httpd

Code: Select all

opkg update
opkg install firmware-httpd
2. Startet nun den Webserver

Code: Select all

/opt/etc/init.d/90_httpd restart
Ihr solltet nun eine Webseite sehen, wenn ihr folgende URL aufruft:

Code: Select all

http://<ip-of-nas>:5004/
3. Installiert php5

Code: Select all

opkg update
opkg install php5 --force-overwrite
4. Installiert php5-intl

Code: Select all

opkg update
opkg install php5-intl --force-overwrite
5. Installiert php5-gd

Code: Select all

opkg update
opkg install php5-gd --force-overwrite
6. Installiert libjpeg-turbo

Code: Select all

opkg update
opkg install libjpeg-turbo --force-overwrite
7. Nun passt ihr die php.ini Datei an, damit die Erweiterungen intl.so und gd.so von PHP verwendet werden.
Hierzu öffnet ihr die php.ini Datei, welche ihr in folgendem Verzeichnis findet

Code: Select all

/opt/etc/apache2/php/php.ini
mit einem Editor (z.B. Midnight Commander), welchen Ihr mit

Code: Select all

mc
aufruft.

Wenn ihr den Editor noch nicht installiert habt, dann macht ihr dies mit:

Code: Select all

opkg update
opkg install mc
Wenn ihr die besagte Datei gefunden habt, sucht ihr nach dem Abschnitt mit den Erweiterungen.
Diese sehen wie folgt aus.

Code: Select all

;extension=Irgendetwas.dll
Fügt folgende Zeilen ohne Semikolon ein, um die Erweiterung zu aktivieren:

Code: Select all

extension=intl.so
extension=gd.so
8. Startet den Webserver nun neu:

Code: Select all

/opt/etc/init.d/90_httpd restart
9. Ladet COPS hier herunter und entpackt das Archiv.
10. Speichert das entpackte Archiv unter:

Code: Select all

/opt/var/www/catchall/cops
11. Installiert oder kopiert nun euere Calibre Datenbank auf das NAS oder verwendet die Demo Datenbank aus Ariek2's Beitrag.
Ihr könnt die Datenbank direkt in einer eurer Freigaben speichern und somit jederzeit einfach via Dateiexplorer in Windows darauf zugreifen oder direkt im Verzeichnis /opt/var/www/catchall/cops/db ablegen. Stellt bitte sicher, dass der Webserver Zugriff auf das von euch gewählte Verzeichnis hat.

12. Nun öffnet ihr im Midnight Commander die Datei

Code: Select all

/opt/var/www/catchall/cops/config_local.php.example
ändert nun den calibre-directory parameter und stellt den Pfad zu eurer Calibre Datenbank ein.

Code: Select all

Beispiel:
$config['calibre_directory'] = '/i-data/volumenumber/namederfreigabe/mylibrary';


13. Speichert die Datei nun unter config_local.php ohne .example im gleichen Verzeichnis ab. COPS hat nun eine gültige Konfigurationsdatei.

Jetzt habt ihr es endlich geschafft.
COPS kann nun unter folgender URL geöffnet werden: http://<ip-of-nas>:5004/cops/

Wichtig verwendet am Besten die IP Adresse. Mijzelf hat darauf hingewiesen, dass http://nas540:5004/cops nur funktioniert, wenn ihr COPS im Verzeichnis /opt/var/www/nas540 installiert oder /opt/etc/apache2/sites-enabled/nas540 entfernt und den Server neu startet, da es sich um einen virtuellen Host handelt.

Ich wünsche euch viel Spaß beim ausprobieren.

PS: Und nachdem COPS sehr einfach an eure Wünsche angepasst werden kann, möchte ich euch noch eine kleine Sammlung an Konfigurationseinträgen geben, welche ihr nach Belieben in euerer config_local.php im COPS Verzeichnis speichern könnt.

Code: Select all

<?php
/**
 * COPS (Calibre OPDS PHP Server) class file
 *
 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
 * @author     Sébastien Lucas <sebastien@slucas.fr>
 */

    if (!isset($config))
        $config = array();
 
    /*
     * The directory containing calibre's metadata.db file, with sub-directories
     * containing all the formats.
     * If this directory starts with a / EPUB download will only work with Nginx
     * and the calibre_internal_directory has to be set properly
     * BEWARE : it has to end with a /
     */
    $config['calibre_directory'] = '/i-data/2888f87b/Data/E-Books/Calibre/';
   
    /*
     * The internal directory set in nginx config file
     * or the same directory as calibre_directory with X-Sendfile
     */
    $config['calibre_internal_directory'] = '';
   
    /*
     * Full URL prefix (with trailing /)
     * usefull especially for Opensearch where a full URL is sometimes required
     * For example Mantano requires it.
     */
    $config['cops_full_url'] = '';
   
    /*
     * Number of recent books to show
     */
    $config['cops_recentbooks_limit'] = '60';
   
    /*
     * Catalog's title
     */
    $config['cops_title_default'] = "My E-Book Bibliothek";

    /*
     * Catalog's subtitle
     */
    $config['cops_subtitle_default'] = "Untertitel";
   
    /*
     * Which header to use when downloading books outside the web directory
     * Possible values are :
     *   X-Accel-Redirect : For Nginx
     *   X-Sendfile : For Lightttpd or Apache (with mod_xsendfile)
     */
    $config['cops_x_accel_redirect'] = "";
   
    /*
     * Height of thumbnail image for OPDS
     */
    $config['cops_opds_thumbnail_height'] = "70";
   
    /*
     * Height of thumbnail image for HTML
     */
    $config['cops_html_thumbnail_height'] = "70";

    /*
     * Icon for both OPDS and HTML catalog
     * Note that this has to be a real icon (.ico)
     */
    $config['cops_icon'] = "favicon.ico";

    /*
     * Show icon for authors, series, tags and books on OPDS feed
     *  1 : enable
     *  0 : disable
     */
    $config['cops_show_icons'] = "1";
   
    /*
     * Default timezone
     * Check following link for other timezones :
     * http://www.php.net/manual/en/timezones.php
     */
    $config['default_timezone'] = "Europe/Paris";
   
    /*
     * Prefered format for HTML catalog
     * The two first will be displayed in book entries
     * The other only appear in book detail
     */
    $config['cops_prefered_format'] = array ("EPUB", "PDF", "MOBI", "CBR", "CBZ");
   
    /*
     * use URL rewriting for downloading of ebook in HTML catalog
     * See README for more information
     *  1 : enable
     *  0 : disable
     */
    $config['cops_use_url_rewriting'] = "0";
   
    /*
     * generate a invalid OPDS stream to allow bad OPDS client to use search
     * Example of non compliant OPDS client : FBReader (was working in May 2012), Moon+ Reader
     * Example of good OPDS client : Mantano
     *  1 : enable support for non compliant OPDS client
     *  0 : always generate valid OPDS code
     */
    $config['cops_generate_invalid_opds_stream'] = "0";
   
    /*
     * Max number of items per page
     * -1 unlimited
     */
    $config['cops_max_item_per_page'] = "-1";

    /*
     * split authors by first letter
     * 1 : Yes
     * 0 : No
     */
    $config['cops_author_split_first_letter'] = "1"; 
   
    /*
     * Enable of Fancyapps (for popups)
     * 1 : Yes (enable)
     * 0 : No
     */
    $config['cops_use_fancyapps'] = "1"; 
   
    /*
     * Update Epub metadata before download
     * 1 : Yes (enable)
     * 0 : No
     */
    $config['cops_update_epub-metadata'] = "0"; 

   /*
    * Enable and configure Send To Kindle (or Email) feature.
     */
    $config['cops_mail_configuration'] =  array( "smtp.host"     => "smtp.mail.de",
                                                 "smtp.username" => "xxx@mail.de",
                                                 "smtp.password" => "xxxx",
                                                 "smtp.secure"   => "SSL",
                                                 "address.from"  => "xxx@mail.de",
                                                 );

   
?>

Post Reply