RSS

Membuat chat server lokal dengan ejabberd + mysql

26 Jan

sumber: http://lqman.wordpress.com

 

Server chat lokal ini banyak berguna bagi perusahaan / korporasi yang mempunyai banyak node / user dan komunikasi harus senantiasa dilakukan dengan maupun tanpa internet. Ketika koneksi internet baik-baik saja, chat bisa dilakukan via YM, google talk, dan yg sejenisnya. Tetapi masalah akan timbul apabila koneksi internet putus, oleh karena itu diperlukan adanya chat server lokal.

Berikut ini adalah tahapan yang harus dilalui:

  1. Install software yang bersangkutan
  2. root@gw-sman20:~# apt-get install ejabberd mysql-server-5.1 subversion

  3. Konfigurasi ejabber dengan meng-edit file /etc/ejabberd.cfg dengan mengubah parameter sbb
  4. root@gw-sman20:~# vim /etc/ejabberd/ejabberd.cfg
    definisikan admin user dan host, admin user minimal adah satu pada setiap host (domain)
    {admin, user, {user, "", "localhost"}}.
    {admin, user, {user, "admin", "nyoba.jaya.com"}}.
    {hosts, ["localhost", "nyoba.jaya.com"]}.

    definisikan watchdog admin
    {watchdog_admins, ["lqman@nyoba.jaya.com"]}.
    ganti auth_method dari internal menjadi odbc
    %%{auth_method, internal}.
    {auth_method, odbc}.
    setup koneksi database
    {odbc_server, {mysql, "127.0.0.1", "ejabberd", "admin", "password-admin-ejabberd"}}.
    memperbolehkan user untuk mendaftar secara langsung (tidak melalui admin) pada server ejabberd
    {access, register, [{allow, all}]}.
    memperbolehkan penambahan user secara simultan (dalam range waktu yg cepat)
    {registration_timeout, infinity}.
    ubah beberapa parameter
    mod_last menjadi mod_last_odbc
    mod_offline menjadi mod_offline_odbc
    mod_roster menjadi mod_roster_odbc
    mod_vcard menjadi mod_vcard_odbc

  5. Download driver erlang (ejabberd) untuk koneksi ke mysql
  6. root@gw-sman20:~# svn co https://svn.process-one.net/ejabberd-modules/mysql/trunk mysql
    root@gw-sman20:~# cd mysql/
    root@gw-sman20:~/mysql# sh build.sh
    root@gw-sman20:~/mysql# cd ebin/
    root@gw-sman20:~/mysql/ebin# cp *.beam /usr/lib/ejabberd/ebin/

  7. Membuat user, database, dan tabel untuk menangani database ejabberd pada mysql
  8. membuat user admin dan database ejabberd pada mysql
    root@gw-sman20:~# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 41
    Server version: 5.1.37-2 (Debian)
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    mysql> create user admin@localhost identified by 'password-admin-ejabberd';
    Query OK, 0 rows affected (0.00 sec)
    mysql> create database ejabberd;
    Query OK, 1 row affected (0.00 sec)
    mysql> exit
    Bye

    download schema tabel
    root@gw-sman20:~# wget https://git.process-one.net/ejabberd/mainline/blobs/raw/2.1.x/src/odbc/mysql.sql
    memasukkan schema tabel pada database ejabberd
    root@gw-sman20:~# mysql -u root -p ejabberd < mysql.sql
    Enter password:

    memberikan hak akes seluruhnya kepada user admin@localhost untuk database ejabberd
    root@gw-sman20:~# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 47
    Server version: 5.1.37-2 (Debian)
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    mysql> grant all on ejabberd.* to lqman@localhost identified by 'password-admin-ejabberd';
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    mysql> exit
    Bye

  9. Merestart service ejabberd
  10. root@gw-sman20:~# /etc/init.d/ejabberd restart
    jangan lupa perhatikan file /var/log/ejabberd/ejabberd.log untuk troubleshoot apabila ada error pada konfigurasi ejabberd.cfg
    root@gw-sman20:~# tail -f /var/log/ejabberd/ejabberd.log

  11. Melakukan pendaftaran user satu-persatu
  12. Melalui pidgin
    accounts -> manage accounts

    Add accounts

    Pada tab basic :
    Definisikan username, domain, password, dan centang tanda “create this new account on the server

    Pada tab Advanced :
    Isilah parameter Connect server, sesuai dg IP Address server anda, lalu klik Add.

    Klik tombol register

    Klik tombol close

    Klik enable untuk memulai login pada server.

    Melalui console
    root@gw-sman20:~# ejabberdctl register admin nyoba.jaya.com password-admin-ejabberd
    root@gw-sman20:~# ejabberdctl register lqman nyoba.jaya.com password-lqman

  13. Silakan saling add antar user yang telah dibuat, dan mulailah chat dengan menggunakan jaringan lokal anda.
  14. Untuk alternatif proses administrasi selanjutnya, anda bisa menggunakan tools administrasi via web-based, dg terlebih dahulu authentikasi menggunakan user admin yg telah dibuat spt diatas. http://ip-address-server:5280/admin

referensi :
https://support.process-one.net/doc/display/MESSENGER/Using+ejabberd+with+MySQL+native+driver
man ejabberd

 
Leave a comment

Posted by on January 26, 2011 in Jaringan, komputer

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: