SLiMS Open Source Library Management System (SLiMS) adalah sebuah manajemen koleksi perpustakaan daring. Selain keanggotaan, kode batang, dan pengaturan koleksi, SLiMS mendukung OPAC dengan pustaka Javascript terbaru. Sayangnya, dia hanya mendukung basisdata MySQL (MariaDB, Percona, dan sejenisnya), tetapi tidak PostgreSQL. Padahal, PostgreSQL lebih bagus dibandingkan dengan MySQL.

Kali ini menjelang pulang kantor saya akan memasang SLiMS dengan menggunakan sistem berbasis NGINX, PHP-FPM, dan MySQL. Ingat, kawan-kawan, ini adalah sebuah keisengan. Jangan lupa untuk riset lebih lanjut. Saya membangun sistem ini dari BlankOn 9 hasil debootstrap.

Memasang Hal-hal Dasar

Mari kita hal-hal dasar sebelum memasang Senayan

Memasang Sistem Dasar

Mari memasang aplikasi-aplikasi yang diperlukan.

$ sudo apt-get install nginx php5-fpm mysql-server php5-mysqlnd php5-gd

NGINX, PHP5-FPM, dan MySQL dipasang. Saya menggunakan MySQL Native Driver (MySQL ND) bukan libmysqlclient. Hal ini karena MySQL ND lebih efisien.(Andrea Usu, 2010) Tak lupa saya juga memasang PHP GD karena SLiMS menggunakannya untuk memroses gambar dan kode batang.

Membuat Basisdata

Lalu mari buat sebuah basisdata Senayan:

$ sudo mysql --defaults-file=/etc/mysql/debian.cnf

Debian menggunakan berkas konfigurasi untuk masuk sebagai administrator MySQL. Berkas konfigurasi ini tidak dapat diakses kecuali oleh root.

mysql> create database senayandb;
mysql> grant all privileges on senayandb.* to senayan@localhost identified by 'senayan123';
mysql> flush privileges;

Setelah itu, keluar dari klien PostgreSQL.

mysql> \q

Anda tentunya tidak akan menggunakan senayan, senayandb, dan “senayan123”, ‘kan? Anda tidak sebodoh itu, ‘kan? Gunakan nama yang lain yang lebih aman!

Memasang Senayan

Saatnya mengunduh Senayan:

$ wget http://slims.web.id/download/slims7-cendana-stable.tar.gz

Lalu memekarkan berkas tersebut:

$ tar xvfz slims7-cendana-stable.tar.gz

Entah mengapa seluruh berkas yang saya ekstraksi memiliki izin 755. Artinya, setiap berkas tersebut rawan untuk bisa dieksekusi. Sebelum diolah lebih lanjut, mari kita betulkan:

$ find slims7_cendana-slims7-cendana/ -type f -exec chmod 644 {} \;

Pindahkan ke /var/www dan buat menjadi milik www-data

$ sudo mv slims7_cendana-slims7-cendana /var/www
$ sudo chown -R 33:33 /var/www

Saatnya mengaktifkan NGINX. Buat konfigurasi situs. Saat ini saya membuat konfigurasi situs berdasarkan /etc/nginx/sites-available/default. Anda dapat mengutak-atik lebih lanjut.

$ cat >> slims < EOF
server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www;
    index index.html index.htm index.php;

    # Make site accessible from http://localhost/
    server_name localhost;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

        # With php5-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny all;
    }
}
EOF
$ sudo cp slims /etc/nginx/sites-available/slims
$ rm slims

Cara menyunting konfigurasi ini sebenarnya dapat dilakukan dengan mudah menggunakan penyunting favorit Anda (ViM, EMACS, pico, dll.)

$ sudo $EDITOR /etc/nginx/sites-available/slims

Isi dengan konfigurasi yang diwarnai merah. Perhatikan, ganti localhost dengan domain Anda yang benar.

Sekarang, saatnya mengaktifkan SLiMS dan menonaktifkan konfigurasi baku.

$ sudo rm -f /etc/nginx/sites-enabled/default
$ sudo ln -sf /etc/nginx/sites-available/slims /etc/nginx/sites-enabled/slims

Setelah itu, saatnya menyalakan ulang NGINX.

$ sudo invoke-rc.d nginx restart

Selesai. Selanjutnya tinggal mengarahkan peramban kepada situs kita.

Mengonfigurasi Situs

Kalau Anda telah selesai mengonfigurasi dengan benar, maka tampilan pertama dari SLiMS di peramban adalah laman pemasangan.

A Welcome screen for SLiMS setup.

01. A welcoming start for SLiMS setup.

Pilih "Let's Start The Installation" untuk lanjut. Maka pada laman berikutnya akan ditampilkan isian untuk mengonfigurasi.

Setup configuration for SLiMS

02. Setup configuration for SLiMS

Halaman kedua intinya untuk mengonfigurasi basisdata dan admin SLiMS. Contoh yang saya isi untuk isian tersebut:

Database Host localhost
Database Name senayandb
Database Username senayan
Database Password **********
Generate Sample Data Yes
Username pustakawan
Password *************
Retype Password *************

Saya memilih untuk memasang data contoh agar mendapatkan gambaran mengenai apa itu SLiMS. Nanti kalau sudah digunakan secara penuh, tentunya data contoh ini tak perlu dipasang. Bahkan, dapat dihapus begitu saja. Setelah mengisi itu semua, pilih "Continue" untuk lanjut ke halaman terakhir.

Setup completed

03. Setup completed

Halaman terakhir memberikan rekomendasi untuk menghapus direktori "install/". Namun sebelumnya, mari memulai SLiMS dengan memilih "OK, start the SLiMS". Maka, Anda akan dibawa ke laman depan SLiMS.

SLiMS frontpage

SLiMS frontpage

Seperti rekomendasi pemasang SLiMS, mari hapus direktori pemasangan dan juga membetulkan perizinan berkas yang ada.

$ sudo rm -rf /var/www/install
$ sudo chmod 644 /var/www/sysconfig.local.inc.php

Sampai sini proses konfigurasi awal berhasil. Anda sudah dapat berpuas diri dan berpesta ria. Selanjutnya adalah proses yang saya hendak lakukan di dalam SLiMS agar lebih bagus. Tapi, itu, 'kan, tergantung selera masing-masing.

Bacaan Lebih Lanjut

Daftar Pustaka

Andrea Usu (2010, August 3). Benchmark: libmysql vs mysqlnd. Retrieved Jan 16, 2014 from https://usu.li/benchmark-libmysql-vs-mysqlnd/.^