Difference between pages "Product Opener/Installation/Debian or Ubuntu" and "Translations - Front page"

From Open Food Facts wiki
(Difference between pages)
Jump to navigation Jump to search
 
(Dutch)
 
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
 

Revision as of 15:48, 11 February 2015