Installazione MasonSql su Ubuntu 12_04 LTS (Precise Pangolin) su server Proxmox 2_01

Su questa pagina:

L'installazione parte dal template Proxmox OpenVZ

Installazione Macchina Virtuale

wget http://download.proxmox.com/appliances/system/ubuntu-12.04-standard_12.04-1_amd64.tar.gz

Creata la VM con almeno 512M/RAM e 2Gbye di disco si procede con l'aggiornamento del sistema operativo e con l'installazione dei package.

Installare i pacchetti

# si procede con privilegi di root
sudo su -

# Locale settings
update-locale LC_ALL=it_IT.UTF-8 LANG=it_IT.UTF-8
locale-gen

# Fuso orario
dpkg-reconfigure tzdata

# Update packages
apt-get update
apt-get upgrade
apt-get dist-upgrade


## Package necessari per utilizzare MasonSQL

# Apache2 & mod_perl
# il template Ubuntu ha gia' installati i package apache2 apache2-mpm-prefork
apt-get install libapache2-mod-perl2 libapache2-request-perl
a2enmod apreq perl ssl

# Postgresql & Perl DBI, DBD::Pg
echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" >/etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
apt-get install postgresql-9.6 postgresql-client-9.6 postgresql-plperl-9.6 postgresql-contrib-9.6

# Perl DBI, DBD::Pg
apt-get install build-essential libpq-dev
cpan DBD::Pg
apt-get install libdbi-perl libapache-dbi-perl

# Vari package
apt-get install libjson-perl libautobox-perl libxml-simple-perl libclone-perl
apt-get install liblog-log4perl-perl libipc-run-perl
apt-get install libspreadsheet-writeexcel-perl libtext-unidecode-perl

# Mail::Sender
apt-get -y purge libmail-sender-perl
cpan Mail::Sender

# Mason
apt-get install libhtml-mason-perl

# ODT Report manager
apt-get install python-software-properties
sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get upgrade
apt-get install libreoffice-writer
apt-get install pdftk
apt-get install file
# user auto registration
apt-get install libstring-random-perl

# Vari package disponibili in CPAN
cpan String::Diff
cpan install App::cpanminus
# with new releases authentication not work
cpanm Apache2::AuthCookie@3.23
cpan SQL::Statement
cpan HOP::Lexer
cpan SQL::Dialects::ANSI
cpan SQL::Interpolate
cpan Sys::RunAlone
cpan MIME::Parser
cpan Archive::Tar::Wrapper
cpan Archive::Zip
cpan Perl6::Form
cpan HTTP::BrowserDetect
cpan IPC::Run::SafeHandles
cpan Text::Balanced
# user auto registration
cpan Captcha::reCAPTCHA

Install Database

Si deve poi copiare /opt/masonsql/ replicando la cartella da una installazione già disponibile oppure scaricando da SVN e recuperando dojo-toolkit 1.9.2 da Internet.

La versione ultima compatibile con Ubuntu 12.04 è questa: https://www.leader.it/wsvn/masonsql/tags/1.9.1

Procedere con l'installazione del database utilizzando gli schemi presenti in /opt/masonsql/utility/sql/

Nel file create_database.sql vengono creati gli utenti utilizzati dall'applicazione. Si devono modificare le password che andranno poi indicate nei file di configurazione. Modificare eventualmente anche il charset dichiarato nella creazione del database.

cd /opt/masonsql/utility/sql
cat roles.sql | su -c psql\ postgres postgres
cat create_database.sql | su -c psql\ postgres postgres
cat pg_dump.masonsql.template.sql | su -c psql\ masonsql postgres

Modificare le autorizzazioni di accesso al database:

## file /etc/postgresql/9.6/main/postgresql.conf :
listen_addresses = 'localhost'
# oppure se si accede anche dalla rete locale:
listen_addresses = '*'

## file /etc/postgresql/9.6/main/pg_hba.conf
local masonsql all password
host  masonsql all        127.0.0.1    255.255.255.255 password
# se si accede dalla LAN
host  masonsql all        192.168.1.0  255.255.255.0   md5

# riavviare il server (dopo il cambio dei socket di ascolto)
/etc/init.d/postgresql restart

Setup Ambiente

Predisporre l'ambiente per l'installazione di una applicazione che utilizza il framework.

mkdir /opt/demo_masonsql /opt/demo_masonsql/etc /opt/demo_masonsql/htdocs /opt/demo_masonsql/lib
chmod -R 750 /opt/demo_masonsql

mkdir /opt/demo_masonsql/archive /opt/demo_masonsql/tmp
chmod 770 /opt/demo_masonsql/archive /opt/demo_masonsql/tmp

mkdir /var/log/apache2/demo_masonsql
chmod 755 /var/log/apache2/
chmod 770 /var/log/apache2/demo_masonsql
chown root.www-data /var/log/apache2/demo_masonsql

# Tutti i file appartengono all'utente root e gruppo www-data
chown -R root.www-data /opt/demo_masonsql

cp -a /opt/masonsql/utility/example.apache2.demo_masonsql.conf /opt/demo_masonsql/etc/apache2.demo_masonsql.conf

# modificare il file di configurazione adattando i parametri: VirtualHost, SSLCertificateFile, SSLCertificateKeyFile
#      ServerAdmin, ServerName, MailFrom, Auth_AC_Domain, DBIconnect, ecc.
# Link nella cartella di configurazione di Apache2
ln -s /opt/demo_masonsql/etc/apache2.demo_masonsql.conf /etc/apache2/conf.d/demo_masonsql.conf

# inserire in /etc/crontab il comando per svuotare periodicamente la cartella dei file temporanei
echo "# svuoto file temporanei di Demo MasonSql
12 6  * * *     root find /opt/demo_masonsql/tmp -maxdepth 1 -mindepth 1 -mtime +7 -exec rm -r '{}' ';'" >> /etc/crontab

Accedere all'applicazione utilizzando l'utente admin con password installa

Installazione di ODT Reportman


Queste istruzioni per l'installazione sono state verificate su Ubuntu Precise (12.04) e Ubuntu Trusty (14.04) con il downgrade ad Apache 2.2

Librerie (Package)

Queste librerie sono un prerequisito per ODT Report Manager:

apt-get -y install libxml-simple-perl
cpan XML::Simple::Sorted
cpan IPC::Run::SafeHandles
cpan Text::Balanced

Perlbrew

A causa di ODF::lPod incompatibilità con la versione di Perl 5.14, usato da MasonSQL in alcune implementazioni, il Perlbrew deve essere installato per utilizzare una nuova versione di Perl.
Vedere la MasonSQL Configurazione Matrice.

Per installare Perlbrew, con tutte le librerie necessarie, eseguire lo script perlbrew-deploy.sh come utente root:

sudo /opt/masonsql/utility/perlbrew-deploy.sh

Libreoffice

# Si procede con privilegi di root.
sudo su -

# Installare ultima System.LibreOffice (5.0 o superiore).

# Ubuntu Precise (12.04)
apt-get install python-software-properties
# Ubuntu Trusty (14.04)
# apt-get install software-properties-common

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
apt-get install openjdk-9-jre libreoffice-writer
# Se si utilizzano anche i file ODS
apt-get install libreoffice-calc
# Installare pdftk.
apt-get install pdftk

Demone Unoconv

Unoconv può essere utilizzato da ODT Report Manager per convertire i file .odt nel formato .pdf.
La variabile d'ambiente OdtConvEngine va configurata con "OdtConvEngine" in alternativa a "libreoffice".

# Si procede con privilegi di root.
sudo su -
# Installare l'ultima versione di Unoconv.
cd /tmp
apt-get install git
git clone https://github.com/dagwieers/unoconv
cd unoconv/
make install
cd ../
rm -rf unoconv/

# Ubuntu Trusty (14.04) - Dovete usare python3
sed -i~ 's/^#!\/usr\/bin\/env python$/#!\/usr\/bin\/env python3/' /usr/bin/unoconv

# Installare e avviare il demone Unoconv.
ln -s /opt/masonsql/etc/unoconvd /etc/init.d/unoconvd
update-rc.d  unoconvd defaults
service unoconvd start

Tabelle

Le query per la creazione delle tabelle ODT sono nella file di /opt/masonsql/utility/sql/odt_report_tables.mql.

Prima di applicare le query il nome del proprietario postgres devono essere modificate per il nuovo nome del proprietario my_db_owner_name.

Configurazione

ODT Report Manager utilizza un paio di variabili di configurazione di Apache.
Di seguito è riportato un esempio di configurazione nel file /opt/my_app_name/etc/apache2.my_app_name-devel.my_domain_name.conf:

# Percorso del file di configurazione di Apache
PerlSetVar ConfigPath /opt/my_app_name/etc/apache2.my_app_name-devel.my_domain_name.conf

# Directory temporanea
PerlSetVar TmpDir   /opt/my_app_name/tmp

# Configurazione motore di report di default:
# Rep = vecchio Report Manager
# Odt = new relazione di revisione stampata in formato odt
# Pdf = new ODT rapporto stampato in formato pdf
PerlSetVar DefaultReportEngine "pdf"
# L'accesso di ODT Reportman a DB
PerlSetVar ReportDBIconnect "dbi:Pg:dbname=my_db_name;user=report;password=MyReportPassword"

# Archivio per modelli
PerlSetVar InputFilesArchive "/opt/my_app_name/archive"

L'InputFilesArchive viene utilizzato da Files Component. La componente memorizza i file nelle sotto-directory che devono essere creati:

cd /opt/my_app_name/archive
mkdir public
chown www-data:www-data public
mkdir odt_reports
chown root:www-data odt_reports
chmod 775 odt_reports

Senza autorizzazioni di accesso corrette per il file di configurazione di Apache dell'applicazione ODT Report Manager restituisce un errore. Esempio di permessi impostati correttamente:

-rw-r----- 1 root www-data 10182 Aug 19 12:13  /opt/my_app_name/etc/apache2.labs.leader.it.conf

Per applicare le modifiche, il file di configurazione di Apache deve essere ricaricato:

/etc/init.d/apache2 reload

Funzioni e permessi

Esempio di configurazione dei permessi del ODT Reportman:

odt_reportman_funzione.PNG

Installazione Reportman

Reportman è un report manager sviluppato con Delphi e Kylix, disponibile per Windows e Linux.

Purtroppo con la versione Linux(Kylix) non si riesce ad usare i font UTF-8, è stato quindi necessario abbandonare l'uso della versione Kylix a favore della versione Delphi che per nostra fortuna gira in ambiente Wine.

# Installazione di Wine
apt-get install wine xserver-common
# filtro PDF per ottimizzazione e per proteggere il documento
apt-get install qpdf

# Se ci si collega da remoto con 'ssh -CX ...'
echo -e "\n# Necessario per usare X da remoto\nX11UseLocalhost yes\n" >>/etc/ssh/sshd_config
/etc/init.d/ssh restart

# Package non necessari
apt-get purge gnome-exe-thumbnailer cups-bsd cups-client cups-common libcupsimage2 libcups2

Attenzione!: se si utilizza l'immagine (/opt/masonsql/report/) gia predisposta e copiata da una precedente installazione i prossimi passi non sono necessari!
altrimenti proseguire installazione da una console con disponibile un server X. Suggerisco di utilizzare xrdp :

apt-get install xrdp xterm

# se si utilizza anche Report Manager Designer e' necessario installare anche un Desktop Manager, 
# altrimenti non e' possibile ridimensionare le finestre; ad esempio:
apt-get install blackbox

# Home Wine utilizzando l'utente www-data
HW="/opt/masonsql/report/www-data_home_dir"
[ -d $HW ] || cp -a /etc/skel $HW
chmod 700 $HW
chown -R www-data.www-data $HW
/etc/init.d/apache2 stop
usermod -d $HW  -s /bin/bash www-data
/etc/init.d/apache2 start

Per collegarsi da remoto:

rdesktop -g1280x1024 -u www-data SERVER

Collegarsi al server con l'utente che utilizzerà Reportman per proseguire con l'installazione di Wine e di Reportman :

# Assicurarsi che wine sia funzionante lanciando la configurazione di Wine:
winecfg

# Font Microsoft
winetricks corefonts


# Installazione ADO  - Licenza Microsoft EULA!!!
#    http://msdn.microsoft.com/en-us/library/windows/desktop/ms693148%28v=vs.85%29.aspx
winetricks mdac28

# Installazione driver ODBC di Postgresql
wget http://ftp.postgresql.org/pub/odbc/versions/msi/psqlodbc_09_01_0200.zip
unzip psqlodbc_09_01_0200.zip
wine msiexec /i psqlodbc.msi
# verifica o configurazione dei collegamenti ODBC
wine odbcad32.exe

# Download versione per Window di Reportman (package completo)
wget http://sourceforge.net/projects/reportman/files/Report%20Manager%20Designer/Designer%202.9/reportman2_9b.exe


# Installazione Reportman
#  Installare solo quanto necessario: Command Line Tool e opzionalmente Report Manager Designer (se si sviluppano nuovi report),
wine reportman2_9b.exe

# cancello file non piu' necessari
rm psqlodbc_09_01_0200.zip  psqlodbc.msi  README.txt  reportman2_9b.exe  upgrade.bat

# ricerco la cartella di installazione
REP="/opt/masonsql/report/www-data_home_dir/.wine/drive_c"
if [ -d "$REP/Program Files (x86)" ]
then
  REP="$REP/Program Files (x86)/Report Manager"
else
  REP="$REP/Program Files/Report Manager"
fi

# file configurazione delle connessioni di Report Manager vuoti
touch "$REP/dbxdrivers.ini"
chown www-data.www-data "$REP/dbxdrivers.ini"
touch "$REP/dbxconnections.ini"
chown www-data.www-data "$REP/dbxconnections.ini"

# Se installato Report Manager Designer per attivarlo:
wine 'C:\Program Files (x86)\Report Manager\repmandxp.exe'
Versione pagina: r27 - 07 Sep 2023, GuidoBrugnara
Questo sito utilizza FoswikiCopyright (©) Leader.IT - Italy P.I. IT01434390223 Informativa privacy & uso dei cookies