Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
zotero_dataserver [2011/04/25 06:33] lemaxxzotero_dataserver [2019/04/19 14:35] (current) bwiernik
Line 1: Line 1:
-====== Disclaimer ====== +See http://www.zotero.org/support/dev/dataserver_setup
- +
-This guide was written based in part on information found on  zitation.org (unreachable when I was writing this tutorial) as well as the indications found on zotero.org. Some steps may be unnecessary or wrong but keep in mind that this is a first version. Any help or comment is welcome. +
- +
-Some items may seem obvious but I detail some steps not to forget my next installation. +
-This installation was done on Ubuntu 10.10 desktop running in a virtual machine. This allows me to use an unmodified version of Zotero 2.1 +
- +
-====== Dependencies: ====== +
- +
-===== Required ===== +
- +
-  * PHP +
-  * PHP modules (?) +
-  * Apache +
-  * Apache modules/features: some sort of for PHP (?), virtual hosts support, mod_rewrite, auth (?) +
-  * MySQL with root access +
-  * MongoDB +
-  * ability to configure /etc/hosts or DNS +
-  * subversion client +
- +
-===== Optional ===== +
- +
-  * Solr +
-  * Memcached +
-  * Amazon S3 +
-  * Webdav +
- +
-Download Zotero dataserver sources +
-Use your subversion client to pull down the sources from Zotero’s repository. If using the command-line:
svn co https://www.zotero.org/svn/dataserver
 You’ll see the following layout (from here on references to zotero source paths will assume the root of dataserver/trunk) +
- +
-<code> +
-dataserver/ +
-          trunk/ +
-               controllers +
-               htdocs +
-               include +
-               misc +
-               model +
-               processor +
-               tests +
-               tmp</code> +
- +
-These files can be anywhere but this guide will assume they are located in /home/UTILISATEUR/www-dev/dataserv ←- NOTE without the ‘trunk’ – in other words, the ‘include’ directory is at /home/UTILISATEUR/www-dev/dataserv/include. +
- +
-====== Configure Apache and Host ====== +
- +
-===== Host ===== +
- +
-We need to define two hostnames, the “sync” and “api” hosts. For testing on one machine this can be done via an /etc/hosts entry +
-In this exemple i use zotero.org domain because i use a virtual machine and i don’t use a custom Zotero plugin. +
-If you want to use your own domain you need to edit the plugin (see below) +
-<code> +
-127.0.0.1 sync.zotero.org api.zotero.org</code> +
- +
-After that when you ping sync.zotero.org you will see it is resolving to 127.0.0.1 +
- +
-===== Apache ===== +
- +
-From web only HTDOCS folder must be accessible. So you can use a virtual host +
-Your sync server need a ssl connection you have to create two config files in /etc/apache2/sites-available +
- +
-<code> +
-<VirtualHost  sync.zotero.org:80> +
-  +
- ServerName sync.zotero.org +
- ServerAlias api.zotero.org  +
-  +
- DocumentRoot /home/UTILISATEUR/www-dev/dataserv/htdocs +
-  +
- <Directory "/home/UTILISATEUR/www-dev/dataserv/htdocs"> +
- Options FollowSymLinks MultiViews +
- AllowOverride All +
- Order allow,deny +
- Allow from all +
- </Directory> +
-  +
- AllowEncodedSlashes On  +
-  +
-</VirtualHost> +
-</code> +
- +
-<code> +
-<IfModule mod_ssl.c> +
-<VirtualHost sync.zotero.org:443> +
-  +
- ServerName sync.zotero.org +
- ServerAlias api.zotero.org  +
-  +
- DocumentRoot /home/UTILISATEUR/www-dev/dataserv/htdocs +
-  +
- <Directory "/home/UTILISATEUR/www-dev/dataserv/htdocs"> +
- Options FollowSymLinks MultiViews +
- AllowOverride All +
- Order allow,deny +
- Allow from all +
- </Directory> +
-  +
- AllowEncodedSlashes On +
-  +
- #   Enable/Disable SSL for this virtual host. +
- SSLEngine on +
-  +
- SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem +
- SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key +
-  +
- <FilesMatch "\.(cgi|shtml|phtml|php)$"> +
- SSLOptions +StdEnvVars +
- </FilesMatch> +
- <Directory /usr/lib/cgi-bin> +
- SSLOptions +StdEnvVars +
- </Directory> +
-  +
- BrowserMatch "MSIE [2-6]" \ +
- nokeepalive ssl-unclean-shutdown \ +
- downgrade-1.0 force-response-1.0 +
- # MSIE 7 and newer should be able to use keepalive +
- BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown +
-  +
-</VirtualHost> +
-</IfModule> +
- +
-</code> +
- +
-====== Create and configure database ====== +
- +
-===== Mongo ===== +
- +
- +
-Install MongoDB and Mongo php driver +
- +
-===== Mysql ===== +
- +
- +
-To understand how database must be set i used the script « test_reset » locate in « Misc » folder (you can use this script to setup your database). I use the same database name. +
- +
-In this folder you will find every *.sql files need for this installation. +
- +
-You have to create 7 Mysql database. Some of them are used only when you run Zotero server in test mode, for other I do not know yet their use. +
- +
-  * zotero_cache > use cache.sql +
-  * zotero_www (this name is hardcoded) > see below +
-  * zotero_www_test (this name is hardcoded) > see below +
-  * zoterotest_ids > use ids.sql +
-  * zoterotest_master > use master.sql and after coredata.sql +
-  * zoterotest1 > use shard.sql and after trigger.sql +
-  * zoterotest2 > use shard.sql and after trigger.sql +
- +
-There is no .sql files to set up zotero_www and zotero_www_test so use as describe on zotero.org/trac/wiki/dataserver_setup +
- +
-<code mysql> +
-CREATE TABLE  `users` ( +
-  `userID`             mediumint      UNSIGNED auto_increment                               NOT NULL, +
-  `username`           varchar(40)    CHARACTER SET utf8 COLLATE utf8_general_ci            NOT NULL, +
-  `slug`               varchar(40)    CHARACTER SET utf8 COLLATE utf8_general_ci                NULL, +
-  `password`           char(40)       CHARACTER SET utf8 COLLATE utf8_bin                   NOT NULL, +
-  `email`              varchar(100)   CHARACTER SET utf8 COLLATE utf8_general_ci            NOT NULL, +
-  `openid`             varchar(100)   CHARACTER SET utf8 COLLATE utf8_general_ci                NULL, +
-  `role`               enum('member', +
-                            'admin' DEFAULT 'member'                                      NOT NULL, +
-  `resetValidationKey` char(40)       CHARACTER SET utf8 COLLATE utf8_bin                       NULL, +
-  `resetValidationExp` int                                                                      NULL, +
-  `emailValidationKey` char(10)       CHARACTER SET utf8 COLLATE utf8_bin                       NULL, +
-  `emailValidated`     tinyint(1)     DEFAULT '0'                                           NOT NULL, +
-  `hasImage`           tinyint(1)     DEFAULT '0'                                           NOT NULL, +
-  `lastUpdated`        timestamp      ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, +
-  `dateRegistered`     timestamp                                                            NOT NULL, +
-  PRIMARY KEY (`userID`), +
-  UNIQUE KEY  (`username`), +
-  UNIQUE KEY  (`slug`), +
-  UNIQUE KEY  (`email`), +
-  UNIQUE KEY  (`resetValidationKey`) +
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +
- +
-</code> +
- +
-You need to add specific user in Mysql +
-<code mysql> +
- +
-CREATE USER zoterotest0@localhost IDENTIFIED BY 'pass0'; +
-CREATE USER zoterotest1@localhost IDENTIFIED BY 'pass1'; +
-CREATE USER zoterotest2@localhost IDENTIFIED BY 'pass2'; +
-CREATE USER zoterotest_ids@localhost IDENTIFIED BY 'pass1'; +
-CREATE USER zoterotest_ids@localhost IDENTIFIED BY 'pass2'; +
-CREATE USER zoterotest_www@localhost IDENTIFIED BY 'pass'; +
- +
-</code> +
- +
-note: give acces on sync.zotero.org too +
- +
-Give Grant access +
- +
-<code mysql> +
- +
-GRANT SELECT ON zoterotest_master.* TO zoterotest1@localhost; +
-GRANT SELECT ON zoterotest_master.* TO zoterotest2@localhost; +
-GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES ON zoterotest1.* TO zoterotest1@localhost; +
-GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES ON zoterotest2.* TO zoterotest2@localhost; +
-GRANT SELECT,INSERT,DELETE ON zoterotest_ids.* TO zoterotest_ids@localhost; +
-GRANT SELECT,INSERT,DELETE ON zoterotest_ids.* TO zoterotest_ids@localhost; +
-GRANT SELECT ON zotero_www_test.* TO zoterotest_www@localhost; +
-</code>+
zotero_dataserver.1303727600.txt.gz · Last modified: 2011/04/25 06:33 by lemaxx