Jump to content

Product Opener/Installation/Debian or Ubuntu: Difference between revisions

Updated installation instructions for Debian Jessie
(Updated installation instructions for Debian Jessie)
Line 2: Line 2:


This page lists all the steps necessary to install Product Opener on Debian, including a development environment.
This page lists all the steps necessary to install Product Opener on Debian, including a development environment.
= Installation on Jessie =
We start from a clean Jessie install.
== Get the code and configure it ==
<pre>
cd /srv/openfoodfacts/cgi
rm Blogs
ln -s . Blogs
ln -s SiteLang_off.pm SiteLang.pm
</pre>
Edit a few variables in Config2.pm:
<pre>
$server_domain = "yourdomain.com";
$www_root="/srv/openfoodfacts/html";
$data_root="/srv/openfoodfacts";
</pre>
Also in Config_off.pm:
<pre>
$domain = 'yourdomain.com';
$contact_email = 'webmaster@yourdomain.com';
$admin_email = 'webmaster@yourdomain.com';
</pre>
And in startup.pl:
<pre>
use lib "/srv/openfoodfacts/cgi/";
</pre>
In /srv/openfoodfacts/cgi/Display.pm, swap lines 3750-3752 and
3769-3771 (location of Javascript things)
== Install packaged prerequisites ==
<pre>
cd /srv
git clone .../openfoodfacts/
mkdir /srv/openfoodfacts/users
mkdir /srv/openfoodfacts/products
chown -R www-data:www-data /srv/openfoodfacts
apt-get install mongodb memcached imagemagick tesseract-ocr tesseract-ocr-fra geoip-bin geoip-database libwww-perl libimage-magick-perl libxml-encoding-perl libtext-unaccent-perl libmime-lite-perl libcache-memcached-fast-perl libjson-perl libclone-perl  libgraphviz-perl libmime-lite-perl libcrypt-passwdmd5-perl libencode-detect-perl libgraphics-color-perl libbarcode-zbar-perl libxml-feedpp-perl libmongodb-perl liburi-find-perl liburi-escape-xs-perl libtest-nowarnings-perl libhtml-defang-perl libgeo-ip-perl libdatetime-format-mail-perl libperl-dev zlib1g-dev apache2 build-essential
cpan Net::IDN::Punycode
cpan Encode::Punycode
cpan GraphViz2
cpan Image::OCR::Tesseract
</pre>
== Rebuild Apache 2.2 and mod_perl ==
<pre>
cd /usr/local/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=/usr/local  --enable-rewrite --enable-proxy --enable-proxy_http --enable-deflate --disable-userdir --enable-headers
make
make install
cd /usr/local/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=/usr/local/bin/apxs
make
make install
cat >> /usr/local/conf/httpd.conf <<EOF
Listen 8001
LoadModule perl_module modules/mod_perl.so
PerlWarn Off
PerlRequire /srv/openfoodfacts/cgi/startup.pl
<VirtualHost *:8001>
  DocumentRoot /srv/openfoodfacts/html
  ServerName yourdomain.com
  ErrorLog /var/log/apache2/error.log
  CustomLog /var/log/apache2/access.log combined
  ScriptAlias /cgi/ /srv/openfoodfacts/cgi/
  <Location /cgi>
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    Options +ExecCGI
    Order allow,deny
    Allow from all
  </Location>
</VirtualHost>
PerlPostReadRequestHandler My::ProxyRemoteAddr
EOF
sed -i -e 's/^Listen 80$/#Listen 80/' /usr/local/conf/httpd.conf
sed -i -e 's/^User.*/User www-data/' /usr/local/conf/httpd.conf
sed -i -e 's/^Group.*/Group www-data/' /usr/local/conf/httpd.conf
/usr/local/bin/apachectl -k start
</pre>
== Configure standard Apache 2 ==
<pre>
a2enmod proxy_http
a2enmod rewrite
cat >> /etc/apache2/sites-available/product-opener-proxy.conf <<EOF
<VirtualHost *>
  DocumentRoot /srv/openfoodfacts/html
  ServerName yourdomain.com
  ServerAlias *.yourdomain.com
  <Directory "/srv/openfoodfacts/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>
EOF
a2ensite product-opener-proxy.conf
a2dissite 000-default.conf
service apache2 restart
</pre>
You should now have a working Productopener instance running at http://yourdomain.com/. Enjoy!
= Old notes =


All instructions below are for user "stephane", please use your own name. :-)
All instructions below are for user "stephane", please use your own name. :-)
4

edits