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:
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'