Home > chat server, LiNuX (based on debian) > Membuat chat server lokal dengan ejabberd + mysql

Membuat chat server lokal dengan ejabberd + mysql

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

Advertisements
  1. 1 July 2010 at 3:27 pm

    Kalo user mau ganti password gimana caranya? tanpa digantiin lewat admin

    Jawab :
    ide saya adalh lewat halaman web (menggunakan php-mysql) dengan user harus memasukkan username@domain, password lama, dan password baru. TP ide ini belum sempat d implementasikan.

  2. 24 April 2014 at 4:01 pm

    Langsung bookmark. Terima kasih ilmunya sangat bermanfaat, Mau dipelajari dulu sudah lama saya mencari ini.

  3. 26 April 2014 at 3:27 am

    @Yanuar : senang bisa membantu anda dengan tulisan saya, maaf link2 nya sdh banyak yg tidak ada, harusnya dulu saya tulis dsini semua isi dari link tsb 😦

  4. riri
    14 October 2014 at 10:56 am

    saya mau tanya gan, jadi saya itu udah install ejabberd terus udh bisa login pake jaringan local.. kalo saya mau akses via internet harus apa aja ya yang di settingnya?? thankyouuu

  5. 2 December 2014 at 4:20 pm

    Mas . makasi atas Tutornnya, Boleh nanya?” untuk setting mod_muc sama mod_moc log untuk chatrrom bagaimana….? thq

  1. No trackbacks yet.

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: