Dengan arsitektur menggunakan MVC(Model-view-controller ), workflow yang fleksibel, tampilan grafis(GUI) di komputer klien yang sangat dinamis dan dengan sistem pelaporan(report) yang terintegrasi dengan openoffice membuat OpenERP lebih mudah diterapkan pada perusahaan baik kecil, menengah atau besar.
Cara Menginstal OpenERP 6 Server, Addons, GTK dan Web Client
Daftar isi
Bagian I. Setup OpenERP Server
Langkah 1. Membengun Server OpenERP
Langkah 2. Proteksi Server dari serangan penjahat
Langkah 3. Update Server Ubuntu
Langkah 4. Buat user di ubuntu yang akan menjalankan program OpenERP
Langkah 5. Instal dan konfigur server database PostgreSQL
Langkah 6. Instal Library Python
Langkah 7. Instal Server OpenERP dan Web client
Langkah 8. Download OpenERP addons
Langkah 9. Membuat file konfigurasi Server OpenERP
Langkah 10. Menginstal boot script
Langkah 11. Membuat script daemon
Langkah 12. Membuat file log
Langkah 13. Uji kembali server
Langkah 14. Membuat Server OpenERP startup dan shutdown secara otomatis
Langkah 15. Mengkonfigurasi dan mengotomatiskan Web Client
Langkah 2. Proteksi Server dari serangan penjahat
Langkah 3. Update Server Ubuntu
Langkah 4. Buat user di ubuntu yang akan menjalankan program OpenERP
Langkah 5. Instal dan konfigur server database PostgreSQL
Langkah 6. Instal Library Python
Langkah 7. Instal Server OpenERP dan Web client
Langkah 8. Download OpenERP addons
Langkah 9. Membuat file konfigurasi Server OpenERP
Langkah 10. Menginstal boot script
Langkah 11. Membuat script daemon
Langkah 12. Membuat file log
Langkah 13. Uji kembali server
Langkah 14. Membuat Server OpenERP startup dan shutdown secara otomatis
Langkah 15. Mengkonfigurasi dan mengotomatiskan Web Client
Bagian II. Mengkonfigurasi akses WebDAV/CalDAV
Langkah 1. Menginstal Apache dan modul-modul yang diperlukan
Langkah 2. Membuat sertifikat dan key
Langkah 3. Membuat file konfigurasi Apache
Langkah 4. Merubah file konfigurasi OpenERP server dan web-client
Langkah 5. Coba jalankan server
Bagian I. Setup OpenERP Server
Langkah 2. Membuat sertifikat dan key
Langkah 3. Membuat file konfigurasi Apache
Langkah 4. Merubah file konfigurasi OpenERP server dan web-client
Langkah 5. Coba jalankan server
Bagian I. Setup OpenERP Server
Untuk menginstal OpenERP yang akan digunakan di dalam operasi perusahaan, sebaiknya Sistem Operasi yang digunakan adalah linux server. Dari pengalaman selama ini, OS yang cukup bagus adalah Ubuntu Server versi 10.04 LTS, karena OS ini cukup lengkap dan hampir selalu up-to-date.
Proses instalasi Server OpenERP sebenarnya tidak begitu susah. Namun jika kita mencari dan membaca di berbagai literatur yang membahas mengenai bagaimana cara menginstal OpenERP di internet, kita menjadi kesulitan untuk mencari cara mana yang paling baik. Sebab banyak sekali cara yang dapat dilakukan untuk menginstal OpenERP.
Oleh karena umumnya server OpenERP akan dihubungkan atau dapat diakses melalui jaringan internet, maka Server OpenERP harus dapat memenuhi beberapa kriteria sebagai berikut:
Oleh karena umumnya server OpenERP akan dihubungkan atau dapat diakses melalui jaringan internet, maka Server OpenERP harus dapat memenuhi beberapa kriteria sebagai berikut:
* Harus bisa diakses melalui layanan enkripsi (SSL) ketika kita mengaksesnya baik melalui GTK client, Web browser, WebDAV maupun CalDAV;
* Harus dapat selalu diupgrade dan dikustomisasi.
* Harus dapat selalu diupgrade dan dikustomisasi.
Apakah ada cara yang paling cepat dan mudah untuk menginstal OpenERP server?
Ya, cara pintas untuk menginstal OpenERP adalah dengan menggunakan perintah sudo apt-get install openerp-server. Namun cara tersebut tidak disarankan sebab banyak sekali kelemahan yang diantaranya adalah:
* Paket OpenERP yang tersedia di repository Ubuntu sudah usang karena jarang sekali diupdate. Jika tidak salah, versi terakhir yang akan ada di repository itu adalah versi 5.0.16. Padahal versi terbaru OpenERP yang tersedia saat ini adalah versi 6.0.3 yang banyak mengandung perbaikan dari versi-versi sebelumnya, terutama seri 5.x.
* Program aplikasi bisnis OpenERP banyak memberikan pilihan konfigurasi. Hal ini akan menyulitkan kita untuk menentukan cara tertentu adalah cara terbaik.
* Penting diketahui bahwa OpenERP dikembangkan oleh komunitas. Maka setiap saat program ini banyak mengalami perubahan dan perbaikan. Tentu hal ini menjadi sangat penting bagi kita untuk mengetahui secara jelas cara mana yang kita gunakan untuk menginstalnya. Dengan demikian, kita akan mudah jika dikuemudian hari kita akan mengapdate atau mengupgradenya.
* Program aplikasi bisnis OpenERP banyak memberikan pilihan konfigurasi. Hal ini akan menyulitkan kita untuk menentukan cara tertentu adalah cara terbaik.
* Penting diketahui bahwa OpenERP dikembangkan oleh komunitas. Maka setiap saat program ini banyak mengalami perubahan dan perbaikan. Tentu hal ini menjadi sangat penting bagi kita untuk mengetahui secara jelas cara mana yang kita gunakan untuk menginstalnya. Dengan demikian, kita akan mudah jika dikuemudian hari kita akan mengapdate atau mengupgradenya.
Meskipun cara yang akan kita lakukan di bawah ini adalah cara manual, tapi cara ini kami anggap sebagai cara yang terbaik karena kita akan tahu secara rinci mengenai hal apapun yang hubungannya dengan instalasi OpenERP.
Langkah 1. Membangun Server OpenERP
Untuk menjadikan Server Ubuntu sebagai server OpenERP, installah sistem ubuntu dasar saja. Kita tidak perlu menginstal apapun kecuali openssh agar kita bisa me-remote server dari komputer lain. Buatlah sebuah user yang tidak menggunakan kata-kata yang ada hubungannya dengan kata-kata seperti ‘root’, ‘admin’, ‘administrator’. Tapi gunakanlah nama lain yang berhubungan dengan nama openerp, misalnya user ‘openerp’.
Sebelum menginstal apapun, sebaiknya update dulu server yang baru diinstal dengan update yang diambil dari repository terdekat. Misalnya repository kambing ui dengan cara sbb:
sudo nano /etc/apt/sources.list
Lalu masukkan kode ini:
http://kambing.ui.ac.id/ubuntu/ lucid-backports main restricted universe multiverse deb http://kambing.ui.ac.id/ubuntu/ lucid-proposed main restricted universe multiverse deb http://kambing.ui.ac.id/ubuntu/ lucid-security main restricted universe multiverse deb http://kambing.ui.ac.id/ubuntu/ lucid-updates main restricted universe multiverse deb http://kambing.ui.ac.id/ubuntu/ lucid main restricted universe multiverse
Langkah 2. Proteksi Server dari serangan penjahat
Untuk menghindari serangan brutal yang datang dari jaringan internet, sebaiknya kita install program penangkal serangan seperti program denyhosts.
Kita semua tahu bahwa SSH adalah cara terbaik untuk meremot administrasi server. Namun SSH bisa menjadi masalah jika terjadi serangan yang bertubi-tubi (brute force attacks) yang datang dari internet.
Langkah pertama untuk menghindari serangan adalah dengan merubah port standar SSH yaitu port 22 diganti dengan port lain. Ganti dengan port diatas 20000 sudah cukup baik untuk mengurangi resiko ini. Untuk mengganti port 22, edit file berikut:
sudo nano /etc/ssh/sshd_config
Selain mengganti port, kita juga bisa menggunakan program seperti denyhosts. Denyhosts adalah paket program yang dibuat dengan script python untuk melindungi server dari serangan via ssh. Untuk mengetahui lebih jauh mengenai Denyhosts, silakan baca di http://denyhosts.sourceforge.net.
Denyhosts sangat ideal untuk melakukan pemblokkan secara dinamis terhadap akses SSH maupun service lainnya yang aturannya disimpan di file
/etc/hosts.deny
and
hosts.allow
Program ini secara otomatis membuat daftar host atau ip address yang mengakses server. Konfigurasi denyhosts ada di file
/etc/denyhosts.conf
Sebelum menginstal DenyHosts, pastikan kita mempunyai program python:
sudo python -V
Jika belum punya, install dulu python dengan perintah berikut:
sudo apt-get install python2.6
Lalu:
sudo apt-get install denyhosts
PERHATIAN!
JANGAN MENGINSTAL DENYHOSTS JIKA ANDA SEDANG TERHUBUNG KE SERVER VIA SSH, SEBAB KONEKSI KE SERVER AKAN PUTUS. LAKUKAN DI LOKAL.
JANGAN MENGINSTAL DENYHOSTS JIKA ANDA SEDANG TERHUBUNG KE SERVER VIA SSH, SEBAB KONEKSI KE SERVER AKAN PUTUS. LAKUKAN DI LOKAL.
Jika denyhosts sudah terinstal, edit konfigurasinya:
sudo nano /etc/denyhosts.conf
Jika kita melakukan perubahan di file konfigurasi di atas, sebaiknya restart Denyhosts:
sudo /etc/init.d/denyhosts restart
Untuk mengetahui apakah ada yang sedang berusaha mengakses server, lihat saja di file log:
tail –f /var/log/auth.log
dan tekan kontrol+C untuk keluar.
Kami sarankan Anda untuk melihat beberapa file berikut:
* File log untuk melihat otentifikasi:
sudo nano /var/log/auth.log
* Daftar ip yang tidak diijikan masuk:
sudo nano /etc/hosts.deny
* Daftar semua ip yang bisa akses ada di sini:
sudo nano /etc/hosts.allow
Langkah 3. Update Server Ubuntu
Update server dengan perintah:
sudo apt-get update
sudo apt-get dist-upgrade
Meskipun ini tidak diharuskan, namun sebaiknya kita restart server sebelum kita melanjutkannya untuk menginstal OpenERP. Setelah Server Ubuntu hidup lagi, pastikan kita bisa login via ssh. Gunakan perintah berikut:
ssh –l <nama-user> <ip-address-server> -p <port>
Jika sudah masuk, sekarang kita siap untuk melangkah ke tahap berikutnya.
Langkah 4. Buat user di ubuntu yang akan menjalankan program OpenERP
Kita akan membuat user dengan nama ‘openerp’. Direktori home untuk user openerp sebaiknya dibuat di dalam folder /opt/OpenObject/. Oleh karena sub direktori OpenObject belum ada, maka kita buat dulu.
cd /opt sudo mkdir OpenObject cd OpenObject mkdir OpenERPv6 sudo adduser --system --home=/opt/OpenObject/OpenERPv6 --group openerp
User ini adalah user sistem OpenERP. User ini bukanlah nama seseorang. Untuk diketahui bahwa dalam Sistem Ubuntu, sebuah user dengan nomor UID dibawah angka 1000 tidak memiliki akses ke akses ke shell (/bin/false) dan tidak bisa login seperti user umumnya.
Langkah 5. Instal dan konfigur server database PostgreSQL
Ada banyak versi PostgreSQL yang dapat digunakan oleh OpenERP. Mulai dari versi 8.3, 8.4 dan terakhir 9.0. Kami sarankan Anda untuk menginstal versi 9.0 sebab versi ini dianggap versi yang tentunya lebih baik dari versi sebelumnya.
Install python-software-properties:
sudo apt-get install python-software-properties
Lalu tambahkan backports repo dan update apt:
sudo add-apt-repository ppa:pitti/postgresql sudo apt-get update sudo apt-get upgrade
Lalu install postgresql-9.0:
sudo apt-get install postgresql-9.0 libpq-dev The libpq-dev package is for compiling wrappers/clients against libpq.
Konfigurasi default PostgreSQL ada di direktori: /etc/postgresql/9.0/main
Sedangkan direktori data ada di: /var/lib/postgresql/9.0/main
Sedangkan direktori data ada di: /var/lib/postgresql/9.0/main
sudo passwd postgres
Lalu ganti password untuk “user postgres” dengan mengetik:
psql -h localhost -U postgres -W template1
atau
sudo su postgres -c psql template1
kemudian ketik perintah berikut (jangan lupa, ganti ‘password’ dengan password yang sebenarnya):
ALTER USER postgres WITH PASSWORD ‘password’;
Untuk keluar dari command windows postgres, gunakan perintah berikut:
\q
Agar database PostgreSQL dapat diakses dari jaringan luar, maka perlu untuk mengedit konfigurasinya.
Pertama kita edit dulu file postgresql.conf:
Pertama kita edit dulu file postgresql.conf:
sudo nano /etc/postgresql/9.0/main/postgresql.conf
Cari baris ini:
# Listen_addresses = ‘localhost’
lalu rubah menjadi:
listen_addresses = ‘*’
Kita juga harus rubah baris ini:
# Password_encryption = on
menjadi:
password_encryption = on
Sekarang kita edit file “pg_hba.conf”
sudo nano /etc/postgresql/9.0/main/pg_hba.conf
dan rubah beberapa baris berikut:
# Database administrative login by UNIX sockets local all postgres ident # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident <-- atau trust # IPv4 remote connections: host all all 194.116.73.46/0 md5 <-- atau trust # IPv4 local connections: host all all 127.0.0.1/32 md5 <-- atau trust # IPv6 local connections: host all all ::1/128 md5 <-- atau trust
Konfigurasi di atas menggunakan MD5 sebagai otentikasi user postgres ketika mengakses server .
Jika sudah, restart server PostgreSQL:
Jika sudah, restart server PostgreSQL:
sudo /etc/init.d/postgresql restart
Berikutnya kita harus membuat user OpenERP di database postgres. Untuk membuat user di postgres, kita harus masuk sebagai user postgres yang memiliki akses sebagai administrator.
sudo su – postgres
Sekarang kita harus buat user database yang mana user ini adalah user yang ada di sistem PostgresSQL, bukan user Ubuntu. Dengan user ini, OpenERP akan memiliki akses untuk masuk ke dalam Server PostgreSQL untuk membuat dan menghapus database. Pastikan Anda ingat setiap password dari user ini, karena akan membutuhkannya nanti. Nama user yang akan kita buat adalah ‘openerp’ dengan password yang sama yaitu ‘openerp’ juga:
createuser --createdb --username postgres --no-createrole --pwprompt openerp Enter password for new role: ******** Enter it again: ******** Shall the new role be a superuser? (y/n) y
Kemudian keluar dari akun postgres:
exit
Langkah 6. Instal Library Python
sudo apt-get install python python-psycopg2 python-reportlab python-egenix-mxdatetime python-tz python-pychart python-mako python-pydot python-lxml python-vobject python-yaml python-dateutil python-pychart python-pydot python-webdav
Instal juga beberapa library berikut yang akan digunakan oleh OpenERP Web:
sudo apt-get install python-cherrypy3 python-formencode python-pybabel python-simplejson python-pyparsing
Langkah 7. Instal Server OpenERP dan Web client
Usahakan untuk selalu menginstal OpenERP versi terbaru. Saat ini versi terbaru adalah versi 6.0.3. Biasanya kami mendownloadnya ke direktori home, dalam hal ini /opt/OpenObject/OpenERPv6. Untuk memudahkan dalam mengupdate versi OpenERP lainnya, sebaiknya kita susun dulu direktori untuk server, web dan addons sebagai berikut:
/opt/OpenObject/OpenERPv6/server <– digunakan untuk server OpenERP
/opt/OpenObject/OpenERPv6/web <– digunakan untuk web client OpenERP
/opt/OpenObject/OpenERPv6/addons <– digunakan untuk addon OpenERP
/opt/OpenObject/OpenERPv6/web <– digunakan untuk web client OpenERP
/opt/OpenObject/OpenERPv6/addons <– digunakan untuk addon OpenERP
Kenapa harus dibuat dengan cara itu, sebab cara ini akan memudahkan kita dalam pemeliharaan versi-versi OpenERP. Coba perhatikan, jika kita memiliki 4 versi server seperti 6.0.1, 6.0.2, 6.0.3 dan 6.1.0, maka susunan direktori akan menjadi:
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.1/
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.2/
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/
/opt/OpenObject/OpenERPv6/server/openerp-server-6.1.0/
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.2/
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/
/opt/OpenObject/OpenERPv6/server/openerp-server-6.1.0/
Buat dengan cara berikut:
cd /opt/OpenObject/OpenERPv6 sudo mkdir server sudo mkdir web sudo mkdir addons
Sekarang download dan extract dulu servernya:
cd server sudo wget server/http://www.openerp.com/download/stable/source/openerp-server-6.0.3.tar.gz sudo tar xvf openerp-server-6.0.3.tar.gz
Kemudian download web client:
cd .. cd web wget http://www.openerp.com/download/stable/source/openerp-web-6.0.3.tar.gz sudo tar xvf openerp-web-6.0.3.tar.gz
Dengan demikian maka struktur direktori akan menjadi:
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/
/opt/OpenObject/OpenERPv6/web/openerp-web-6.0.3/
/opt/OpenObject/OpenERPv6/web/openerp-web-6.0.3/
Langkah 8. Download OpenERP addons
Sebenarnya, ketika kita mendownload OpenERP server, didalamnya sudah terdapat direktory “addons” yang ditempatkan pada direktori bin yaitu:
/opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin/addons
Namun kita tidak akan menggunakan direktori addons yang ada di server itu, sebab kita ingin memiliki kebebasan dalam mengelola addons pada direktori terpisah.
Oleh karena addons dikembangkan oleh komunitas, maka banyak sekali addons dapat ditemukan di internet. Namun demikian addons yang kita temukan di internet belum tentu bisa digunakan. Jadi, berhati-hatilah dalam memilih addons.
Kami sarankan untuk mendownload dan menggunakan addons yang telah disertifikasi oleh perusahaan pengembang OpenERP yaitu OpenERP s.a. Mereka menempatkan addons di repository addons yang berlokasi di https://code.launchpad.net/~openerp.
Di halaman web https://code.launchpad.net/~openerp tersebut, ada beberapa direktori dimana kita bisa mendownload addons. Dalam hal ini kami sarankan untuk mendownload addons dari lokasi lp:openobject-addons/6.0. Untuk mendownloadnya kita harus menggunakan bazzar.
Sebelum kita dapat menggunakan bazzar, kita harus instal dulu bazzar:
sudo apt-get install bzr
Setelah itu kita download addons yang ada di lp:openobject-addons/6.0 menggunakan perintah:
cd /opt/OpenObject/OpenERPv6/addons
bzr branch lp:openobject-addons/6.0 lp_openobject-addons
Jika proses download selesai maka akan ada direktori baru yaitu:
/opt/OpenObject/OpenERPv6/addons/lp_openobject-addons
/opt/OpenObject/OpenERPv6/addons/lp_openobject-addons
Sekarang kita sudah memiliki semua komponen yang diperlukan, yaitu server, web dan addons. Kini saatnya kita untuk menghubungkan semuanya agar menjadi sebuah system yang lengkap.
Langkah 9. Membuat file konfigurasi Server OpenERP
Ada beberapa cara untuk membuat file konfigurasi OpenERP (openerp-server.conf) yaitu:
* Ambil dari contoh file konfigurasi OpenERP Server dapat ditemukan di lokasi /opt/OpenObject/OpenERPv6/server/doc/.
* Dengan menambahkan parameter –s yang berarti save atau simpan konfigurasi pada saat kita menjalankan OpenERP.
* Dengan menambahkan parameter –s yang berarti save atau simpan konfigurasi pada saat kita menjalankan OpenERP.
File konfigurasi ini biasanya ditempatkan di direktori /etc/openerp-server.conf. Oleh karena itu jika kita ingin mengambil konfigurasi dari contoh, kita dapat menggunakan perintah:
sudo cp /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/doc/openerp-server.conf /etc
cd /etc
Atau jika menggunakan parameter –s, caranya:
cd /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin python openerp-server.py –sc /tmp/openerp-server.conf cp /tmp/openerp-server.conf /etc/ cd /etc
Sekarang kita harus edit file tersebut untuk menentukan beberapa parameternya:
cd /etc
sudo nano openerp-server.conf
Isinya akan seperti ini:
[options] addons_path = /opt/OpenObject/OpenERPv6/addons/lp_openobject-addons root_path = /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin admin_passwd = admin db_name = False db_password = openerp db_port = 5433 db_user = openerp logfile = /var/log/openerp/openerp-server.log xmlrpc_port = 8069 netrpc_port = 8070 xmlrpcs_port = 8071 ftp_server_host = openerp.domain.tdl ftp_server_port = 8021 assert_exit_level = error cache_timeout = 100000 csv_internal_sep = , db_host = False db_maxconn = 64 debug_mode = False demo = {} email_from = False import_partial = list_db = True log_level = info login_message = False logrotate = True netrpc = True netrpc_interface = pg_path = None pidfile = None reportgz = False secure_cert_file = server.cert secure_pkey_file = server.pkey smtp_password = False smtp_port = 25 smtp_server = localhost smtp_ssl = False smtp_user = False static_http_document_root = None static_http_enable = False static_http_url_prefix = None stop_after_init = False syslog = true test_commit = False test_disable = False test_file = False test_report_directory = False timezone = False translate_modules = ['all'] without_demo = False xmlrpc = True xmlrpc_interface = xmlrpcs = True xmlrpcs_interface =
Lalu simpan file tersebut dengan control X dan jawab dengan Y.
Sekarang kita coba untuk jalankan server:
cd /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin
python ./openerp-server.py –c /etc/openerp-server.conf
INFO:server:OpenERP version - 6.0.3 INFO:server:addons_path - /opt/OpenObject/OpenERPv6/addons/lp_openobject-addons INFO:server:database hostname - localhost INFO:server:database port - 5432 INFO:server:database user - openerp INFO:server:initialising distributed objects services DEBUG:psycopg2:installed. Logging using Python logging module DEBUG:web-services:Registered an exported service: db DEBUG:web-services:Registered an exported service: common DEBUG:web-services:Registered an exported service: object DEBUG:web-services:Registered an exported service: wizard DEBUG:web-services:Registered an exported service: report INFO:web-services:starting HTTP service at 0.0.0.0 port 8669 INFO:web-services:starting HTTPS service at 0.0.0.0 port 8671 INFO:web-services:Registered XML-RPC over HTTP INFO:web-services:starting NET-RPC service at 0.0.0.0 port 8670 INFO:server:Starting 3 services INFO:server:OpenERP server is running, waiting for connections...
Jika tampilan seperti di atas yang kita lihat, maka berarti server sudah bisa dijalankan tanpa masalah.
Langkah 10. Menginstal boot script
Agar OpenERP server selalu dijalankan ketika mesin baru dihidupkan (setelah booting), kita perlu membuat script yang harus ditempatkan di direktori /etc/init.d/ yang secara otomatis akan menjalankan server OpenERP.
sudo nano /etc/init.d/openerp-server
Lalu isi file tersebut dengan script berikut:
#!/bin/sh ### BEGIN INIT INFO # Provides: openerp-server # Required-Start: $syslog # Required-Stop: $syslog # Should-Start: $network # Should-Stop: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: OpenERP Server # Description: OpenERP is a complete ERP and CRM software. ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/ DAEMON=/usr/local/bin/openerp-server NAME=openerp-server DESC=openerp-server # Specify the user name (Default: openerp). USER="openerp" # Specify an alternate config file (Default: /etc/openerp-server.conf). CONFIGFILE="/etc/openerp-server.conf" # pidfile PIDFILE=/var/run/$NAME.pid # Additional options that are passed to the Daemon. DAEMON_OPTS="-c $CONFIGFILE" [ -x $DAEMON ] || exit 0 [ -f $CONFIGFILE ] || exit 0 checkpid() { [ -f $PIDFILE ] || return 1 pid=`cat $PIDFILE` [ -d /proc/$pid ] && return 0 return 1 } if [ -f /lib/lsb/init-functions ] || [ -f /etc/gentoo-release ] ; then do_start() { start-stop-daemon --start --quiet --pidfile $PIDFILE \ --chuid $USER --background --make-pidfile \ --exec $DAEMON -- $DAEMON_OPTS RETVAL=$? sleep 5 # wait for few seconds return $RETVAL } do_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo RETVAL=$? sleep 2 # wait for few seconds rm -f $PIDFILE # remove pidfile return $RETVAL } do_restart() { start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo sleep 2 # wait for few seconds rm -f $PIDFILE # remove pidfile start-stop-daemon --start --quiet --pidfile $PIDFILE \ --chuid $USER --background --make-pidfile \ --exec $DAEMON -- $DAEMON_OPTS RETVAL=$? sleep 5 # wait for few seconds return $RETVAL } else do_start() { $DAEMON $DAEMON_OPTS > /dev/null 2>&1 & RETVAL=$? sleep 5 # wait for few seconds echo $! > $PIDFILE # create pidfile return $RETVAL } do_stop() { pid=`cat $PIDFILE` kill -15 $pid RETVAL=$? sleep 2 # wait for few seconds rm -f $PIDFILE # remove pidfile return $RETVAL } do_restart() { if [ -f $PIDFILE ]; then do_stop fi do_start return $? } fi start_daemon() { if [ -f $PIDFILE ]; then echo "pidfile already exists: $PIDFILE" exit 1 fi echo -n "Starting $DESC: " do_start checkpid if [ $? -eq 1 ]; then rm -f $PIDFILE echo "failed." exit 1 fi echo "done." } stop_daemon() { checkpid if [ $? -eq 1 ]; then exit 0 fi echo -n "Stopping $DESC: " do_stop if [ $? -eq 1 ]; then echo "failed." exit 1 fi echo "done." } restart_daemon() { echo -n "Reloading $DESC: " do_restart checkpid if [ $? -eq 1 ]; then rm -f $PIDFILE echo "failed." exit 1 fi echo "done." } status_daemon() { echo -n "Checking $DESC: " checkpid if [ $? -eq 1 ]; then echo "stopped." else echo "running." fi } case "$1" in start) start_daemon ;; stop) stop_daemon ;; restart|force-reload) restart_daemon ;; status) status_daemon ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0 # vim: sts=4 st=4 et
Jika script ini sudah dibuat, kita harus pastikan agar script ini dapat dijalankan oleh user root.
sudo chmod 755 /etc/init.d/openerp-server
sudo chown root: /etc/init.d/openerp-server
Langkah 11. Membuat script daemon
Didalam script di atas, kita melihat ada baris perintah:
DAEMON=/usr/local/bin/openerp-server
Artinya, kita juga harus membuat script daemon tersebut:
cd /usr/local/bin
sudo nano openerp-server
Lalu isi dengan script berikut:
#!/bin/sh
cd /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin
exec /usr/bin/python ./openerp-server.py $@
Langkah 12. Membuat file log
Di dalam file konfigurasi (/etc/openerp-server.conf), terdapat parameter:
logfile = /var/log/openerp/openerp-server.log
Artinya, semua aktifitas server akan direkam di file log tersebut. Kita harus membuat file tersebut dan memastikan agar user openerp dapat mengaksesnya:
sudo mkdir /var/log/openerp
sudo touch /var/log/openerp-server.log
sudo chown –R openerp:root /var/log/openerp
Langkah 13. Uji kembali server
Untuk menjalankan server, ketik perintah berikut:
sudo /etc/init.d/openerp-server start
Jika server berjalan dengan baik, maka seharusnya kita dapat melihat aktivitasnya pada file log..
less /var/log/openerp/openerp-server.log
Jika ada masalah dengan setingan server, maka kita dapat melihatnya di log tersebut. Jika lancar, maka kita bisa mencobanya dengan mengakses dari OpenERP Client yang ada di PC remote.
Jika kita sekarang memulai menjalankan program GTK Client yang diarahkan ke server yang baru saja diinstall dan melihat pesan seperti di bawah ini, maka itu artinya bahwa server sudah jalan.
Ini berarti bahwa server menerima koneksi namun server belum memiliki database.
Sekarang kita juga harus coba apakah server OpenERP bisa dihentikan:
sudo /etc/init.d/openerp-server stop
Pastikan apakah server benar-benar berhenti. Kita dapat memeriksanya dengan mencoba menghubungkan dari GTK Client ke server, jika masih konek, berarti script daemon yang ada di /etc/init.d/openerp-server tidak berjalan dengan sempurna.
Langkah 14. Membuat Server OpenERP startup dan shutdown secara otomatis
Jika semua langkah diatas berhasil dijalankan, maka langkah terakhir yang masih harus dikerjakan adalah membuat agar server OpenERP dapat secara otomatis dijalankan oleh server Ubuntu pada saat server Ubuntu pertama kali booting.
Gunakan perintah ini:
sudo update-rc.d openerp-server defaults
Jika perintah di atas sudah dijalankan, silakan coba untuk merestart server dan setelah server hidup kembali, cek apakah server OpenERP sudah jalan lagi apa belum.
Kita juga bisa memeriksa apakah server OpenERP sudah jalan atau belum dengan perintah ini:
ps aux | grep openerp
Dan jika server OpenERP sudah jalan, maka seharusnya kita bisa melihat pesan seperti ini:
openerp 708 3.8 5.8 181716 29668 ? Sl 21:05 0:00 python /opt/OpenObject/OpenERPv6/server/openerp-server-6.0.3/bin/openerp-server.py -c /etc/openerp-server.conf
Yang artinya bahwa server sudah jalan dengan user ‘openerp’ dan PID nomor 708.
Langkah 15. Mengkonfigurasi dan mengotomatiskan Web Client
Meskipun kita menyebutnya Web Client, sebenarnya program OpenERP Web Client adalah sebuah program aplikasi client bagi OpenERP server yang sekaligus menjadi Web Server bagi Web Browser yang digunakan oleh Pengguna OpenERP.
Sebelum kita dapat menjalankan OpenERP web client, kita harus membuat file konfigurasi (openerp-web.conf) yang akan ditempatkan di direktori /etc.
sudo nano /etc/openerp-web.cfg
Lalu isi file tersebut dengan script seperti ini:
[global] server.socket_port = 8986 openerp.server.port = '8670' log.access_file = "/var/log/openerp/web-access.log" log.error_file = "/var/log/openerp/web-error.log" server.socket_host = "0.0.0.0" server.thread_pool = 10 tools.sessions.on = True tools.sessions.persistent = False server.profile_on = True server.profile_dir = "profile" server.webpath = "" tools.proxy.on = False tools.proxy.base = 'http://mydomain.com' log.access_level = "INFO" log.error_level = "INFO" tools.nestedvars.on = True tools.csrf.on = False openerp.server.host = 'localhost' openerp.server.protocol = 'socket' openerp.server.timeout = 450 [openerp-web] # filter dblists based on url pattern? # NONE: No Filter # EXACT: Exact Hostname # UNDERSCORE: Hostname_ # BOTH: Exact Hostname or Hostname_ dblist.filter = 'NONE' dbbutton.visible = True company.url =
Lalu simpan dan atur seperti ini:
sudo chown openerp:root /etc/openerp-web.cfg
sudo chmod 640 /etc/openerp-web.cfg
Untuk membuat file log, gunakan cara yang sama seperti membuat file log untuk OpenERP server yaitu:
sudo touch /var/log/openerp/web-access.log sudo touch /var/log/openerp/web-error.log sudo chown –R openerp:root /var/log/openerp/web-access.log sudo chown –R openerp:root /var/log/openerp/web-error.log
Kita juga harus membuat web client boot script. yang ditempatkan di direktori /etc/init.d/, dengan nama openerp-web dan buat pemiliknya adalah user root dan dapat diakses oleh user root.
cd /etc/init.d
sudo nano openerp-web
Lalu isi file tersebut dengan script seperti ini:
#!/bin/sh ### BEGIN INIT INFO # Provides: openerp-web # Required-Start: $syslog # Required-Stop: $syslog # Should-Start: $network # Should-Stop: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: OpenERP Web - the Web Client of the OpenERP # Description: OpenERP is a complete ERP and CRM software. ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin DAEMON=/usr/local/bin/openerp-web NAME=openerp-web DESC=openerp-web # Specify the user name (Default: openerp). USER="openerp" # Specify an alternate config file (Default: /etc/openerp-web.cfg). CONFIGFILE="/etc/openerp-web.cfg" # pidfile PIDFILE=/var/run/$NAME.pid # Additional options that are passed to the Daemon. DAEMON_OPTS="-c $CONFIGFILE" [ -x $DAEMON ] || exit 0 [ -f $CONFIGFILE ] || exit 0 checkpid() { [ -f $PIDFILE ] || return 1 pid=`cat $PIDFILE` [ -d /proc/$pid ] && return 0 return 1 } if [ -f /lib/lsb/init-functions ] || [ -f /etc/gentoo-release ] ; then do_start() { start-stop-daemon --start --quiet --pidfile $PIDFILE \ --chuid $USER --background --make-pidfile \ --exec $DAEMON -- $DAEMON_OPTS RETVAL=$? sleep 5 # wait for few seconds return $RETVAL } do_stop() { start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo RETVAL=$? sleep 2 # wait for few seconds rm -f $PIDFILE # remove pidfile return $RETVAL } do_restart() { start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo sleep 2 # wait for few seconds rm -f $PIDFILE # remove pidfile start-stop-daemon --start --quiet --pidfile $PIDFILE \ --chuid $USER --background --make-pidfile \ --exec $DAEMON -- $DAEMON_OPTS RETVAL=$? sleep 5 # wait for few seconds return $RETVAL } else do_start() { $DAEMON $DAEMON_OPTS > /dev/null 2>&1 & RETVAL=$? sleep 5 # wait for few seconds echo $! > $PIDFILE # create pidfile return $RETVAL } do_stop() { pid=`cat $PIDFILE` kill -15 $pid RETVAL=$? sleep 2 # wait for few seconds rm -f $PIDFILE # remove pidfile return $RETVAL } do_restart() { if [ -f $PIDFILE ]; then do_stop fi do_start return $? } fi start_daemon() { if [ -f $PIDFILE ]; then echo "pidfile already exists: $PIDFILE" exit 1 fi echo -n "Starting $DESC: " do_start checkpid if [ $? -eq 1 ]; then rm -f $PIDFILE echo "failed." exit 1 fi echo "done." } stop_daemon() { checkpid if [ $? -eq 1 ]; then exit 0 fi echo -n "Stopping $DESC: " do_stop if [ $? -eq 1 ]; then echo "failed." exit 1 fi echo "done." } restart_daemon() { echo -n "Reloading $DESC: " do_restart checkpid if [ $? -eq 1 ]; then rm -f $PIDFILE echo "failed." exit 1 fi echo "done." } status_daemon() { echo -n "Checking $DESC: " checkpid if [ $? -eq 1 ]; then echo "stopped." else echo "running." fi } case "$1" in start) start_daemon ;; stop) stop_daemon ;; restart|force-reload) restart_daemon ;; status) status_daemon ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0 # vim: sts=4 st=4 et
Lalu:
sudo chmod 755 /etc/init.d/openerp-web
sudo chown root: /etc/init.d/openerp-web
Seperti halnya OpenERP server, kita juga harus membuat script daemon seperti ini:
cd /usr/local/bin
sudo nano openerp-web
Lalu isi dengan script berikut:
#!/bin/sh
cd /opt/OpenObject/OpenERPv6/web/openerp-web-6.0.3/
exec /usr/bin/python ./openerp-web.py -c /etc/openerp-web.cfg
Sekarang seharusnya kita sudah bisa menjalankan OpenERP web dengan menjalankan perintah berikut:
sudo /etc/init.d/openerp-web start
Periksa apakah program OpenERP web sudah jalan apa belum.
ps aux | grep openerp-web
Jika kita melihat seperti ini:
openerp 1703 1.2 0.5 283044 11456 ? Sl May20 256:33 /usr/bin/python ./openerp-web.py -c /etc/openerp-web.cfg
Maka berarti OpenERP web client sudah jalan.
Anda bisa mencobanya dengan membuka website pada port seperti ini:
http://my-ip-or-domain:8080
http://my-ip-or-domain:8080
Pastikan web client bisa dihentikan:
sudo /etc/init.d/openerp-web stop
Lalu buat agar OpenERP web client dapat jalan secara otomatis.
sudo update-rc.d openerp-web defaults
Sekarang kita bisa mencobanya dengan merestart server dan periksa apakah OpenERP web dijalankan secara otomatis.
Bagian II. Mengkonfigurasi akses WebDAV/CalDAV
Kita dapat menggunakan webserver Apache yang akan bertindak sebagai proxy dan melakukan terminasi SSL untuk akses web klien dan untuk akses WebDAV / CalDAV. Begitu juga dengan GTK klien akan berjalan pada protokol XMLRPC yang dienkripsi langsung ke Server OpenERP. Apache adalah webserver yang paling banyak digunakan di dunia dan dengan mudah kita dapat mencari dokumentasinya.
Langkah 1. Menginstal Apache dan modul-modul yang diperlukan
Pertama kita instal dulu server apache dengan perintah:
:sudo apt-get install apache2
Lalu kasih tahu apache, bahwa kita juga akan menginstal beberapa modul yaitu:
* mod_ssl, * mod_proxy, * mod_proxy_http, * mod_headers * mod_rewrite [optional]
Yang mana modul-modul tersebut tidak akan terinstal hingga kita menginstalnya.
sudo a2enmod ssl proxy_http headers rewrite
Selanjutnya, kita harus membuat sertifikat dan key SSL .
Langkah 2. Membuat sertifikat dan key
Kami biasanya membuat sertifikat ini di direktori sementara yang kemudian memindahkannya ketika sudah jadi:
cd
mkdir temp
cd temp
Lalu buat key dulu, kita akan diminta untuk mengisi password atau passphrase dan konfirmasinya:
openssl genrsa -des3 -out server.pkey 1024
Agar komputer tidak terus-terusan mita password atau passphrase, kita hapus passphrase tersebut dengan cara seperti ini:
openssl rsa -in server.pkey -out server.key
Selanjutnya kita perlu penyimpan data yang akan terlihat dalam sertifikat:
openssl req -new -key server.key -out server.csr
Perintah ini akan menampilkan beberapa pertanyaan yang harus kita jawab.
Kita akan diminta untuk memasukkan informasi yang akan dimasukkan ke dalam sertifikat. Sebaiknya kita lengkapi semua pertanyaan tersebut. Tapi kita juga bisa mengosongkannya dengan menjawabnya dengan titik ‘.’.
Country Name (2 letter code) [ID]: ID State or Province Name (full name) [Some-State]: DKI Jakarta Locality Name (eg, city) []: Jakarta Organization Name (eg, company) [Internet Widgits Pty Ltd]: PT Alam Dewata Utama Organizational Unit Name (eg, section) []: ADSOFT – OpenERP Partner Common Name (eg, YOUR name) []: Alle Aldine Email Address []: alle@openerp.co.id Please enter the following ‘extra’ attributes to be sent with your certificate request A challenge password []: An optional company name []:
Dan akhirnya kita self-sign sertifikat tersebut.
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Kita hanya perlu dua file saja yaitu server.crt dan server.key. Namun sebelum kedua file itu dapat kita gunakan, kita harus ganti dulu kepemilikannya.
sudo chown openerp:root server.crt server.key
sudo chmod 640 server.crt server.key
Lalu pindahkan kedua file tersebut ke direktori /etc/ssl/openerp:
sudo mkdir /etc/ssl/openerp sudo chown openerp:root /etc/ssl/openerp sudo chmod 710 /etc/ssl/openerp sudo mv server.crt server.key /etc/ssl/openerp/
File key dan sertifikat sudah disimpan di tempat yang aman. Sekarang kita harus beri tahu apache, di mana lokasi kedua file tersebut. Untuk melakukannya, ikuti langkah berikut.
Langkah 3. Membuat file konfigurasi Apache
Kita buat dulu file konfigurasi Virtual Host untuk openerp.
sudo nano /etc/apache2/sites-available/openerp-ssl
Masukkan script berikut:
<VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/ssl/openerp/server.crt SSLCertificateKeyFile /etc/ssl/openerp/server.key ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyVia On ProxyPass /webdav/ http://127.0.0.1:8069/webdav/ <Location /webdav/ > ProxyPassReverse /webdav/ <Limit OPTIONS PROPFIND GET REPORT MKACTIVITY PROPPATCH PUT MOVE COPY DELETE LOCK UNLOCK> Order Deny,Allow Allow from all Satisfy Any </Limit> </Location> ProxyPass / http://127.0.0.1:8080/ <location / > ProxyPassReverse / </location> RequestHeader set "X-Forwarded-Proto" "https" # Fix IE problem (httpapache proxy dav error 408/409) SetEnv proxy-nokeepalive 1 </VirtualHost>
Seperti kita lihat pada script di atas, bahwa ada dua konfigurasi Proxy, dimana yang satu untuk /webdav/ dan yang satunya untuk /. Kalau kita tidak bermaksud untuk menggunakan fasilitas WebDAV dan CalDAV, kita juga dapat membuang bagian itu.
Namun pada dasarnya, kita ingin menyampaikan kepada Apache bahwa akses WebDAV ke server OpenERP harus melalui port XMLRPC yaitu 8069, sedangkan untuk akses ke OpenERP Web harus melalui port 8080. Pemberian tanda / dan /webdav/ dimaksudkan agar jika penulisan address tanpa /webdav/ tidak akan masuk ke WebDAV.
Lalu kita dapat mengaktifkan konfigurasi baru tersebut.
sudo a2ensite openerp-ssl
Sebagai tambahan, kita juga dapat menggunakan mod_rewrite untuk me-redirect jalur normal (non-encrypted) ke jalur yang dienkripsi yaitu SSL port (443).
Untuk melakukannya, kita harus menambahkan beberapa baris berikut (ditulis diluar blok konfigurasi <directory>) pada file /etc/apache2/sites-available/default
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
Langkah 4. Merubah file konfigurasi OpenERP server dan web-client
Langkah berikut ini dimaksudkan untuk mengkonfigurasi ulang OpenERP server dan Web client sehingga akses ke OpenERP melalui jalur normal (jalur yang tidak dienkripsi) tidak dapat dilakukan.
Di dalam file konfigurasi /etc/openerp-server.conf, kedua layanan tanpa enkripsi hanya akan dijalankan secara lokal (localhost) saja, sehingga koneksi hanya dapat dilakukan jika melalui Apache saja. Kita juga memberitahu kepada layanan XMLRPC-SSL, dimana mencari file key dan file certificate yang diperlukan.
Jalankan perintah ini:
sudo nano /etc/openerp-server.conf
Lalu edit menjadi seperti ini:
xmlrpc = True xmlrpc_interface = 127.0.0.1 xmlrpc_port = 8069 netrpc = True netrpc_interface = 127.0.0.1 netrpc_port = 8070 xmlrpcs = True xmlrpcs_interface = xmlrpcs_port = 8071 secure_pkey_file = /etc/ssl/openerp/server.key secure_cert_file = /etc/ssl/openerp/server.crt
Jika diinginkan untuk mengatur akses WebDAV/CalDAV, tambahkan pula beberapa baris berikut di bagian bawah file konfigurasi.
[webdav]
enable = True
vdir = webdav
Kemudian lakukan juga perubahan pada file konfigurasi web yaitu /etc/openerp-web.conf agar hanya menerima koneksi dari lokal saja:
sudo nano /etc/openerp-web.conf
Lalu edit:
# If your proxy does not add the X-Forwarded-Host header, set
# the following to the *public* host url.
tools.proxy.base = ‘https://your-ip-or-domain’
# the following to the *public* host url.
tools.proxy.base = ‘https://your-ip-or-domain’
# Set to false to disable CSRF checks
tools.csrf.on = False
tools.csrf.on = False
Langkah 5. Coba jalankan server
Restart semua layanan untuk mengambil perubahan konfigurasi.
sudo service openerp-server restart sudo service openerp-web restart sudo service apache2 restart
Seharusnya kita mejadi tidak bisa terhubung ke OpenERP jika menggunakan web browser pada port 8080 juga ketika menggunakan GTK client, kita seharusnya tidak dapat mengaksesnya jika menggunakan layanan XMLRPC port 8069 maupun layanan NetRPC pada port 8070.
Jadi untuk mengakses web, kita harus mengaksesnya menggunakan protokol aman https://ip-atau-domaindan jika akses dilakukan dari GTK client, kita harus menggunakan port 8071 dan harus memilih protokol XMLRPC (Secure).
Untuk mengakses CalDAV dapat dilakukan dengan cara seperti ini:
https://your-ip-or-domain/webdav/DB_NAM … ENDAR_NAME
Untuk mengakses CalDAV dapat dilakukan dengan cara seperti ini:
https://your-ip-or-domain/webdav/DB_NAM … ENDAR_NAME
Mudah-mudahan tutorial ini bermanfaat.
Tidak ada komentar:
Posting Komentar