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-php5.6
libxml2
php5.6-cli
php5.6-common
php5.6-curl
php5.6-gd
php5.6-intl
php5.6-ldap
php5.6-mysql
php5.6-sqlite
php5.6-xsl
php5.6-tidy
php5.6-curl
php5.6-zip
php5.6-xml
xvfb
phantomjs


Jika menggunakan php versi 7.0 atau 7.1 atau lebih, silahkan ganti 5.6 dengan versi yg sesuai.



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, 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