Wednesday 21 January 2015

Instalasi dan Update

Status : Draft

TODO : Untuk mekanisme backup local yg lebih sederhana lihat http://banksoal.openthinklabs.com/2017/01/dokumentasi-backup-restore.html 

Secara garis besar berikut adalah hal-hal yang harus dilakukan untuk proses instalasi Tirta ERP :

  1. Install Apache Web Server
  2. Install Database MySQL/MariaDB 
  3. Setup Virtual Host untuk Tirta ERP
  4. Setup script untuk proses update otomatis Tirta ERP
  5. Setup script untuk proses backup Tirta ERP

Pra Syarat Database

Apache

Set nilai max_input_vars di php.ini menjadi 1000000

; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 1000000 

PHP 

max_execution_time = 3600
memory_limit = 2056M ;
max_file_uploads = 200M
upload_max_filesize = 2M
post_max_size = 200M ;

MySQL

User harus memiliki privilege RELOAD.

Jalankan perintah berikut :

GRANT RELOAD ON *.* TO 'tirtaerp'@'localhost' ; 
FLUSH  PRIVILEGES ; 
TODO :

Masukkan SQL function definition ini ke script installer :

DROP FUNCTION IF EXISTS STRIP_NON_DIGIT;
DELIMITER $$
CREATE FUNCTION STRIP_NON_DIGIT(input VARCHAR(255))
   RETURNS VARCHAR(255)
BEGIN
   DECLARE output   VARCHAR(255) DEFAULT '';
   DECLARE iterator INT          DEFAULT 1;
   WHILE iterator < (LENGTH(input) + 1) DO
      IF SUBSTRING(input, iterator, 1) IN ( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ) THEN
         SET output = CONCAT(output, SUBSTRING(input, iterator, 1));
      END IF;
      SET iterator = iterator + 1;
   END WHILE;
   RETURN output;
END
$$

Di /etc/mysql/mysql.cnf tambahkan konfigurasi berikut :

[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"


Sistem Operasi

Catatan penting, jika ingin menggunakan transfer data yang lebih aman, Anda harus menggunakan PHP >= 5.6, hal ini kabar buruk jika Anda masih menggunakan Windows XP, karena di platform Windows XP, PHP yang didukung hanya sampai versi 5.4 saja.

Linux

Ubuntu

Paket-paket yang perlu diinstall :

lib32stdc++6
libapache2-mod-php7.2
libxml2
php7.2-cli
php7.2-common
php7.2-curl
php7.2-gd
php7.2-intl
php7.2-ldap
php7.2-mysql
php7.2-sqlite
php7.2-xsl
php7.2-tidy
php7.2-curl
php7.2-zip
php7.2-xml
php7.2-mbstring
xvfb
phantomjs




Jalankan SQL berikut untuk manajemen session [1]:

CREATE TABLE IF NOT EXISTS sessions ( sess_id varchar(64) NOT NULL, sess_data text NOT NULL, sess_time int(11) NOT NULL, KEY sess_id (sess_id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;


Ada beberapa job yang diharuskan dijalankan melalui cron, edit cron, gunakan user www-data,

sudo crontab -u www-data -e  

kemudian tambahkan entri berikut :


PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
* 12 * * 1 /home/tirta/bin/backup_mysql_senin.sh
* 12 * * 2 /home/tirta/bin/backup_mysql_selasa.sh
* 12 * * 3 /home/tirta/bin/backup_mysql_rabu.sh
* 12 * * 4 /home/tirta/bin/backup_mysql_kamis.sh
* 12 * * 5 /home/tirta/bin/backup_mysql_jumat.s
* 12 * * 6 /home/tirta/bin/backup_mysql_sabtu.sh
* 7 * * * /home/tirta/bin/sinkronisasi_water.sh
* 12 * * * /home/tirta/bin/sinkronisasi_water.sh
* 12 * * * /home/tirta/bin/sinkronisasi_dut.sh
* 09 * * 5 cd  /home/tirta/ && /home/tirta/bin/tirtaerp_rekonsiliasi_piutang &> /tmp/tirtaerp_rekonsiliasi_piutang.log
* 09 * * *
cd  /home/tirta/ && /home/tirta/bin/tirtaerp_posting_jurnal_accounting_pabrik &> tirtaerp_posting_jurnal_accounting_pabrik.log* 10 * * *
cd  /home/tirta/  &&  /home/tirta/bin/tirtaerp_posting_jurnal_accounting &> /tmp/tirtaerp_posting_jurnal_accounting.log* 10 01 * *  cd  /home/tirta/  && /home/tirta/bin/tirtaerp_periksa_faktur_terlunasi_lebih &>  /tmp/tirtaerp_periksa_faktur_terlunasi_lebih.log
Entri cron ini, hanya perlu ditambah di instalasi TirtaERP Distribusi [5]:

01 10 * * * /opt/www/TirtaERP2012/bin/casperjs/bin/casperjs /opt/www/TirtaERP2012/bin/transfer_distribusi_to_dut.js --tirtaerp-distribusi=http://erp.lodan --tirtaerp-dut=http://erp2012.tirta --minus-date=3 --username=username --password=password

Entri cron ini, hanya perlu ditambah di instalasi TirtaERP Pusat:

1 10 * * * /usr/bin/php /home/www/TirtaERP2012/symfony tirtaerp:transfer-dut-ke-water

Sesuaikan nilai-nilaunya.


Untuk sinkronisasi waktu setiap kali komputer menyala, tambahkan script berikut di /etc/init.d/rc.local

until ping -nq -c3 8.8.8.8; do
echo "Waiting for network..."
done
echo "Sinkronisasi waktu ...";
ntpdate -s ntp.ui.ac.id
hwclock --systohc --localtime

Locale 

sudo locale-gen id_ID  id_ID.utf8

Instalasi Font 

Download font calibri, lalu jalankan : 

TIRTA_ERP_ROOT_DIR/plugins/sfTCPDFPlugin/lib/tcpdf/fonts$ ./tcpdf_addfont.php -i /tmp/Calibri.ttf 

Konfigurasi Otomatis Update 

Kita menggunakan mercurial, untuk update otomatis, edit file .hgrc pada instlasi tirtaerp kemudian sesuaikan dengan credential mercurial Anda :

$jed /home/www/src/.hg/hgrc

[paths]
tirtaerp = https://[username]@bitbucket.org/openthinklabs/tirta-erp
[auth]
tirtaerp.prefix = *
tirtaerp.schemes = http https
tirtaerp.username = [username]
tirtaerp.password =[password]

Buat script untuk update Tirta ERP :

jed ~/bin/tirtaerp_update.sh
#!/bin/bash
cd /home/www/src/
hg pull
hg update
rm -rfv config/app.yml
rm -rvf config/databases.yml
rm -rfv data/pentaho
cp -rfv /home/www/src/* /home/www/tirtaerp
cd /home/www/tirtaerp
./symfony cc

Tambahkan ke .bashrc

$jed ~/home/tirtaerp/bin/tirtaerp_update.sh
export PATH=$PATH:/home/tirtaerp/bin
$source  ~/home/tirtaerp/bin
Untuk mengupdate sekarang Anda tinggal menjalankan perintah :

$tirtaerp_update.sh

Pentaho

Kita menggunakan Pentaho BI-Server, layanan ini perlu dijalankan secara otomatis ketika boot.

Untuk sistem yg menggunakan UpStart edit /etc/init.rc.local, dan tambahkan baris berikut sebelum exit 0

/opt/Pentaho/biserver-ce/start-pentaho.sh

Untuk yang menggunakan systemd :

Buat service

sudo nano /etc/systemd/system/rc-local.service
Isinya :

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

Lalu buat file :

nano /etc/rc.local

Isinya :

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.


/opt/Pentaho/biserver-ce/start-pentaho.sh

exit 0


 Buat executable

sudo chmod +x /etc/rc.local

Aktifkan layanannnya :

sudo systemctl enable rc-local

Jalankan service nya dan periksa apakah sudah jalan :

sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

Windows

Windows XP


  1. Gunakan XAMPP versi 1.8.2-6. 
  2. Edit php.ini sesuai yang ditulis diatas

Windows 10

UAC WARNING, Solusi : Install XAMPP di C:\xampp
  1. Gunakan XAMPP versi terbaru
  2. Install di C:\xampp
  3. Edit php.ini sesuai yang ditulis diatas
Konfigurasi otomatis update

Edit C:\xampp\htdocs\tirtaerp\.hg\.hgrc

Isi dengan : 

[paths]
tirtaerp = https://[username]@bitbucket.org/openthinklabs/tirta-erp
[auth]
tirtaerp.prefix = *
tirtaerp.schemes = http https
tirtaerp.username = [username]
tirtaerp.password =[password]

Build Schema 

Di direktori instalasi Tirta ERP, jalankan perintah : 

php symfony doctrine:build --all --and-load

hapus table vw_penjualan dan buat view-view yang diperlukan : 

cd data/sql
mysql -u root -p
use tirtaerp ;
drop table vw_penjualan ;
\. vw_creation.sql

Referensi

  1. Session Storage Menggunakan Database, https://bitbucket.org/wildanm/tirta-erp/issue/637/session-storage-menggunakan-database
  2. Crontab – Quick Reference, http://www.adminschoice.com/c ontab-quick-reference/
  3.  How to setup / install PHP 5.6 on Ubuntu 14.04 LTS, http://www.dev-metal.com/install-setup-php-5-6-ubuntu-14-04-lts/
  4. Otomatisasi rekonsiliasi piutang #191, https://github.com/OpenThink-Labs/TirtaERP/issues/191
  5. Auto transfer dari Distribusi ke DUT, https://github.com/OpenThink-Labs/TirtaERP/issues/371

No comments:

Post a Comment