Line 1: |
Line 1: |
− | Also see [[Product Opener Installation]]
| + | Go back to the main [[Translations]] page. |
| | | |
− | This page lists all the steps necessary to install Product Opener on Debian, including a development environment.
| + | To create the front page in a new language, copy the English front page to create a new page and link it below. |
| | | |
− | All instructions below are for user "stephane", please use your own name. :-)
| + | * [[Translations - Front page - English]] - done |
− | | + | * [[Translations - Front page - French]] - done |
− | == Open Food Facts test / development server ==
| + | * [[Translations - Front page - German]] - done |
− | | + | * [[Translations - Front page - Hebrew]] - done |
− | OFF test / development server is a small dedicated server ("kimsufi 2G", the cheap sub-brand of OVH).
| + | * [[Translations - Front page - Italian]] - done |
− | | + | * [[Translations - Front page - Arabic]] - done |
− | * Linux ks3095298.kimsufi.com 3.10.23-xxxx-std-ipv6-64 #1 SMP Tue Mar 18 14:48:24 CET 2014 x86_64 GNU/Linux | + | * [[Translations - Front page - Spanish]] - done |
− | * CPU: Intel(R) Atom(TM) CPU 230 @ 1.60GHz - Cores: 2 - Cache: 512KB | + | * [[Translations - Front page - Polish]] |
− | * RAM: 2 Gb | + | * [[Translations - Front page - Portuguese]] - done |
− | * Disk: 1 Tb
| + | * [[Translations - Front page - Romanian]] - done |
− | | + | * [[Translations - Front page - Chinese]] |
− | == Debian install ==
| + | * [[Translations - Front page - Japanese]] |
− | | + | * [[Translations - Front page - Russian]] - done |
− | Fresh Debian install with OVH / kimsufi install process:
| + | * [[Translations - Front page - Dutch]] |
− | | |
− | * Step 1:
| |
− | ** OS - Type: Basic
| |
− | ** Debian 7.5 stable (Wheezy) - debian 7 - 64 bits
| |
− | * Step 3: Partitions | |
− | ** Default:
| |
− | *** / ext4 20 Gb
| |
− | *** /home/ ext4 979.5 Gb
| |
− | *** swap 1 x 512 Mb
| |
− | | |
− | == DNS ==
| |
− | | |
− | ks3095298.kimsufi.com IP address: 94.23.195.82
| |
− | | |
− | Create 2 A records in the DNS zone of the domain you want to use:
| |
− | * openfoodfacts.ovh 94.23.195.82
| |
− | * *.openfoodfacts.ovh 94.23.195.82
| |
− | | |
− | == Install ==
| |
− | | |
− | === Update Debian ===
| |
− | | |
− | Usually done by OVH Debian install:
| |
− | | |
− | <pre>
| |
− | apt-get update
| |
− | apt-get upgrade
| |
− | </pre>
| |
− | | |
− | === Security ===
| |
− | | |
− | Install fail2ban and sudo:
| |
− | | |
− | <pre>
| |
− | apt-get install fail2ban
| |
− | apt-get install sudo
| |
− | </pre>
| |
− | | |
− | Create an user and give it sudo access:
| |
− | | |
− | <pre>
| |
− | adduser stephane
| |
− | adduser stephane sudo
| |
− | </pre>
| |
− | | |
− | | |
− | === Install software used by Product Opener ===
| |
− | | |
− | <pre>
| |
− | apt-get install mongodb
| |
− | | |
− | apt-get install memcached
| |
− | | |
− | apt-get install imagemagick
| |
− | | |
− | apt-get install tesseract-ocr
| |
− | apt-get install tesseract-ocr-fra
| |
− | | |
− | apt-get install exim4
| |
− | dpkg-reconfigure exim4-config
| |
− | - Internet Site mail is sent by smtp | |
− | - 127.0.0.1 | |
− | | |
− | apt-get install geoip-bin geoip-database
| |
− | </pre>
| |
− | | |
− | === Install libraries used by Product Opener ===
| |
− | | |
− | <pre>
| |
− | apt-get install zlib1g-dev
| |
− | </pre>
| |
− | | |
− | | |
− | === Install development tools ===
| |
− | | |
− | Note: the Product Opener code is currently on a private bitbucket.org repository and is in the process of being made publicly available (open source). If you want to help us to clean / document Product Opener to open it, request access to the bitbucket repository: stephane@openfoodfacts.org
| |
− | | |
− | <pre>
| |
− | apt-get install build-essential
| |
− | apt-get install git
| |
− | | |
− | git clone https://stephane@bitbucket.org/openfoodfacts/product-opener.git
| |
− | </pre>
| |
− | | |
− | (get the link for your user on bitbucket.org)
| |
− | | |
− | | |
− | === Apache 2.2 + mod_perl: Product Opener backend ===
| |
− | | |
− | ==== Build ====
| |
− | | |
− | <pre>
| |
− | apt-get install libperl-dev
| |
− | | |
− | cd /home/stephane
| |
− | mkdir src
| |
− | cd src
| |
− | wget http://apache.crihan.fr/dist//httpd/httpd-2.2.29.tar.gz
| |
− | tar xvfz httpd-2.2.29.tar.gz
| |
− | cd httpd-2.2.29
| |
− | ./configure --with-mpm=prefork --prefix=/home/stephane/apache --enable-rewrite --enable-proxy --enable-proxy_http --enable-deflate --disable-userdir --enable-headers
| |
− | make
| |
− | make install
| |
− | cd ~
| |
− | | |
− | cd ~/src
| |
− | wget http://mir2.ovh.net/ftp.apache.org/dist/perl/mod_perl-2.0.8.tar.gz
| |
− | tar xvfz mod_perl-2.0.8.tar.gz
| |
− | cd mod_perl-2.0.8
| |
− | perl Makefile.PL MP_APXS=/home/stephane/apache/bin/apxs
| |
− | make
| |
− | make install
| |
− | cd ~
| |
− | </pre>
| |
− | | |
− | ==== Configuration ====
| |
− | | |
− | In ~/apache/conf/httpd.conf:
| |
− | | |
− | Change the port to something else than 80 (the reverse proxy will listen on 80 and forward to the backend on another port).
| |
− | | |
− | <pre>
| |
− | Listen 8001
| |
− | </pre>
| |
− | | |
− | If you are installing several Product Openers on the same machine, use different ports.
| |
− | | |
− | Change the Apache user to your user:
| |
− | | |
− | <pre>
| |
− | User stephane
| |
− | Group stephane
| |
− | </pre>
| |
− | | |
− | Add to apache/conf/httpd.conf:
| |
− | | |
− | <pre>
| |
− | LoadModule perl_module modules/mod_perl.so
| |
− | | |
− | PerlWarn Off
| |
− | PerlRequire /home/stephane/product-opener/cgi/startup.pl
| |
− | | |
− | | |
− | <Location /cgi>
| |
− | SetHandler perl-script
| |
− | PerlResponseHandler ModPerl::Registry
| |
− | PerlOptions +ParseHeaders
| |
− | Options +ExecCGI
| |
− | Order allow,deny
| |
− | Allow from all
| |
− | </Location>
| |
− | | |
− | | |
− | <VirtualHost *>
| |
− | DocumentRoot /home/stephane/product-opener/html
| |
− | ServerName openfoodfacts.ovh
| |
− | ErrorLog /home/stephane/logs/error_log
| |
− | CustomLog /home/stephane/logs/access_log combined
| |
− | ScriptAlias /cgi/ "/home/stephane/product-opener/cgi/"
| |
− | </VirtualHost>
| |
− | | |
− | PerlPostReadRequestHandler My::ProxyRemoteAddr
| |
− | </pre>
| |
− | | |
− | === Apache 2.4 - light weight reverse proxy ===
| |
− | | |
− | ==== Build ====
| |
− | | |
− | <pre>
| |
− | apt-get install libpcre3 libpcre3-dev
| |
− | | |
− | cd /home/stephane/src
| |
− | wget http://apache.websitebeheerjd.nl//httpd/httpd-2.4.12.tar.gz
| |
− | tar xvfz httpd-2.4.12.tar.gz
| |
− | cd httpd-2.4.12
| |
− | | |
− | cd srclib
| |
− | wget http://mir2.ovh.net/ftp.apache.org/dist//apr/apr-1.5.1.tar.gz
| |
− | wget http://mir2.ovh.net/ftp.apache.org/dist//apr/apr-util-1.5.4.tar.gz
| |
− | tar xvfz apr-1.5.1.tar.gz
| |
− | tar xvfz apr-util-1.5.4.tar.gz
| |
− | ln -s apr-1.5.1 apr
| |
− | ln -s apr-util-1.5.4 apr-util
| |
− | cd ..
| |
− | | |
− | ./configure --prefix=/home/stephane/proxy --enable-rewrite --enable-proxy --enable-proxy_http --disable-userdir --enable-headers --enable-expires --enable-mime --enable-so --with-included-apr
| |
− | | |
− | make
| |
− | make install
| |
− | cd ~
| |
− | </pre>
| |
− | | |
− | ==== Configuration ====
| |
− | | |
− | in proxy/conf/httpd.conf :
| |
− | * uncomment #LoadModule rewrite_module modules/mod_rewrite.so | |
− | * uncomment #LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
| |
− | | |
− | Add in httpd.conf :
| |
− | | |
− | <pre>
| |
− | <VirtualHost *>
| |
− | DocumentRoot /home/stephane/product-opener/html
| |
− | ServerName world.openfoodfacts.ovh
| |
− | ServerAlias *.openfoodfacts.ovh
| |
− | | |
− | ErrorLog /home/stephane/logs/proxy_error_log
| |
− | CustomLog /home/stephane/logs/proxy_access_log combined
| |
− | ServerAdmin stephane@openfoodfacts.org
| |
− | | |
− | <Directory "/home/stephane/product-opener/html">
| |
− | Options Indexes FollowSymLinks
| |
− | Require all granted
| |
− | </Directory>
| |
− | ProxyPreserveHost On
| |
− | RewriteEngine on
| |
− | RewriteCond %{REQUEST_URI} !/./
| |
− | RewriteRule ^(/cgi/.*)$ http://localhost:8001$1 [P,L]
| |
− | RewriteMap escape int:escape
| |
− | RewriteRule ^/favicon.ico$ /favicon.ico [L]
| |
− | RewriteCond %{REQUEST_URI} !^/images/
| |
− | RewriteCond %{REQUEST_URI} !^/js/
| |
− | RewriteCond %{REQUEST_URI} !^/rss/
| |
− | RewriteCond %{REQUEST_URI} !^/robots
| |
− | RewriteCond %{REQUEST_URI} !^/clicks/
| |
− | RewriteCond %{REQUEST_URI} !^/data/
| |
− | RewriteCond %{REQUEST_URI} !^/files/
| |
− | RewriteRule ^(.*)$ http://localhost:8001/cgi/display.pl?${escape:$1} [P,L,QSA]
| |
− | </VirtualHost>
| |
− | | |
− | | |
− | <VirtualHost *>
| |
− | DocumentRoot /home/stephane/product-opener/html
| |
− | ServerName openfoodfacts.ovh
| |
− | ErrorLog /home/stephane/logs/proxy_error_log
| |
− | CustomLog /home/stephane/logs/proxy_access_log combined
| |
− | DirectoryIndex index.html index.shtml
| |
− | <Directory "/home/stephane/product-opener/html">
| |
− | Options -Indexes +FollowSymLinks +Includes
| |
− | Require all granted
| |
− | </Directory>
| |
− | RewriteEngine on
| |
− | RewriteCond %{HTTP_HOST} ^stephane\.openfoodfacts\.ovh
| |
− | RewriteRule ^/products$ /products.shtml [L]
| |
− | | |
− | </VirtualHost>
| |
− | | |
− | </pre>
| |
− | | |
− | | |
− | | |
− | === Install Perl modules ===
| |
− | | |
− | If possible, use apt-get to install packages directly. If they are not available, you can use cpan to install the modules.
| |
− | | |
− | <pre>
| |
− | apt-get install libwww-perl libimage-magick-perl
| |
− | apt-get install libxml-encoding-perl libtext-unaccent-perl libmime-lite-perl
| |
− | apt-get install libcache-memcached-fast-perl libjson-perl libclone-perl libgraphviz-perl
| |
− | apt-get install libmime-lite-perl # needs to be done after installing exim4
| |
− | apt-get install libcrypt-passwdmd5-perl libencode-detect-perl libgraphics-color-perl libbarcode-zbar-perl
| |
− | apt-get install libxml-feedpp-perl libmongodb-perl liburi-find-perl
| |
− | </pre>
| |
− | | |
− | Modules that could not be installed using apt-get:
| |
− | | |
− | <pre>
| |
− | cpan
| |
− | install URI::Escape::XS
| |
− | install Image::OCR::Tesseract # needs imagemagick installed first
| |
− | </pre>
| |
− | | |
− | Modules that HAVE to be installed using cpan:
| |
− | | |
− | As of Feb 3rd 2015, the MongoDB perl module installed through "apt-get install libmongodb-perl" is too old (0.45):
| |
− | | |
− | <pre>
| |
− | perl -MMongoDB -e 'print $MongoDB::VERSION . "\n"'
| |
− | 0.45
| |
− | </pre>
| |
− | | |
− | This causes an error when trying to access a list of "tags" such as categories:
| |
− | | |
− | <pre>
| |
− | Software error:
| |
− | Not an ARRAY reference at /home/stephane/product-opener/cgi/Blogs/Display.pm line 797.
| |
− | </pre>
| |
− | | |
− | A newer MongoDB perl module needs to be installed with cpan.
| |
− | | |
− | <pre>
| |
− | cpan
| |
− | install MongoDB
| |
− | </pre>
| |
− | | |
− | <pre>
| |
− | perl -MMongoDB -e 'print $MongoDB::VERSION . "\n"'
| |
− | v0.708.0.0
| |
− | </pre>
| |
− | | |
− | cgi/startup.pl preloads a lot of modules, you can check that those modules are installed by running:
| |
− | | |
− | <pre>
| |
− | cd /home/stephane/product-opener/cgi
| |
− | perl startup.pl
| |
− | </pre>
| |
− | | |
− | === Create some paths and links ===
| |
− | | |
− | <pre>
| |
− | cd /home/stephane/product-opener/cgi
| |
− | ln -s ./ Blogs
| |
− | ln -s S
| |