Selamat datang di klub persekongkolan Dojo

Nah, kalau belum tahu apa itu Dojo, yuk kenalan dulu!
Kenalan dengan Dojo
  • buchin
    55
    r6z69i2ku2i8i86q.png

    Assalamualaikum sob,

    Terimakasih sudah menyempatkan diri membaca tutorial ini.
    Manfaat sphinx:
    Karena pencarian dihandle sphinx, load situs lebih cepet, kerja mysql lebih ringan. Ototmatis InsyaAllah SERP potensi naik karena speednya nambah.

    Sebenarnya selain sphinx ada mesin pencari lain seperti ElasticSearch, Algolia, Lucene, dll. Namun, untuk database mysql, sphinx lebih mudah diinstall dan dipakai. Sphinx adalah sebuah mesin pencari yang lebih cepat daripada mysql default fulltext sendiri.
    Sehingga, untuk keperluan AGC data besar, sphinx paling cocok buat kita-kita.

    Nah tutorial ini terdiri dari beberapa pembahasan:


    (Bila list di atas belum ada linknya, artinya tutorial tersebut masih dalam pengerjaan )

    Ane berusaha membuat tutorialnya agar mudah dipahami. Namun, jika ada kekurangan, jangan sungkan untuk nanya.

    Terimakasih banyak,

    Mochammad Masbuchin
    Attachment
    sphinxsearch_-_Google_Nggoleki (57K)
  • buchin
    55
    Instalasi Sphinx di VPS Ubuntu

    Alat dan Bahan:

    • VPS Ubuntu, pake hosting terserah, bisa DO, Vultr dll
    • VPS tersebut sudah terinstall MySQL atau panel lain, seperti Serverpilot, Laravel Forge, dll
    • SSH Client seperti Putty atau Bitvise jika pakai windows, iTerm atau Terminal jika pakai MacOS

    1. Silakan SSH ke server anda sebagai root
    fkd9voxs109hz94g.png
    2. Install sphinxsearch menggunakan apt, jalankan perintah berikut, jika ditanya "Do you want to continue", ketik aja Y:
    apt install sphinxsearch
    

    qqmqfg68ck50wh4h.png
    3. Buat file /etc/sphinxsearch/sphinx.conf dengan mengetik:
    nano /etc/sphinxsearch/sphinx.conf
    
    aaejogb8xfczcrwi.png

    4. Isi file sphinx.conf tersebut dengan kode sebagai berikut:
    indexer
    {
        mem_limit    = 256M
        write_buffer = 8M
    }
    searchd
    {
      listen            = 9312:sphinx       #SphinxAPI port
      listen            = 9306:mysql41      #SphinxQL port
      log               = /var/log/sphinxsearch/searchd.log
      query_log         = /var/log/sphinxsearch/query.log
      read_timeout      = 5
      max_children      = 30
      pid_file          = /var/run/sphinxsearch/searchd.pid
      seamless_rotate   = 1
      preopen_indexes   = 1
      unlink_old        = 1
      binlog_path       = /var/lib/sphinxsearch/data
    }
    

    Ketik Ctrl+X untuk menutup file, lalu jika ditanya save file, ketik Y trus tekan Enter.

    5. Ketik perintah berikut agar sphinx otomatis jalan ketika server restart:
    sudo sed -i 's/START=no/START=yes/g' /etc/default/sphinxsearch
    
    Attachments
    1__root_tutorial_____ssh_ (34K)
    1__root_tutorial_____ssh_ (42K)
    1__root_tutorial_____ssh_ (36K)
  • buchin
    55
    Cara memakai Sphinx untuk AGC harga produk
    Setelah menginstall sphinx, berikutnya adalah mengatur supaya sphinx bisa terhubung dengan MySQL yang dipakai di AGC kita. Kali ini, kita akan bahas cara memakai sphinx dengan AGC Harga Produk.

    1. Mari kita mulai dengan konfigurasi tabel dan database untuk sphinx.conf
    Ubah konfirgurasi database sesuai dengan username, password database ente
    Buka file /etc/sphinxsearch/sphinx.conf dan masukkan konfigurasi berikut. Biasanya saya taruh di atas sendiri, sebelum directive indexer dan searchd
    source product_source
    {
        type            = mysql
        sql_host        = 127.0.0.1
        sql_user        = user_db_ente
        sql_pass        = password_db_ente
        sql_db          = nama_db_ente
        sql_port        = 3306    # optional, default is 3306
        sql_query        = SELECT id, name, brand, marketplace, created_at, updated_at FROM products
    }
    
    index products
    {
        source        = product_source
        path          = /var/lib/sphinxsearch/data/products
        docinfo       = extern
        charset_type  = utf-8
    }
    

    Contoh sphinx.conf yang sudah diedit: sphinx.conf

    2. Coba nyalakan sphinx. SSH sebagai root, dan Ketik:
    sudo systemctl restart sphinxsearch.service
    
    Jika error, coba jalankan kodenya lagi :)
    j0x7aofigtdscsxq.png

    3. Jika indexer belum pernah dijalankan, jalankan indexer agar data produk masuk ke index sphinx
    indexer --all
    

    4. Selanjutnya untuk mengupdate data apabila ada perubahan, cukup ketik:
    indexer --all --rotate
    96e6i4c4glmf7m4n.png


    Saat ini sphinx sudah terinstall dan sudah mengindex products. Langkah selanjutnya adalah menginstall paket sphinx untuk laravel. Karena kita memakai serverpilot, maka tutorial ini berasumsi kita memakai serverpilot.

    1. Ubah file composer.json dalam agc harga produk, tambahkan repositories untuk sphinx. Cari Baris 64 yang isinya repositories, cari:
    1ns177zuevukavdw.png
    Tambahkan jadi:
    o3h220f436lhugxv.png

    Isi repositories jadinya:
    "repositories": [
            {
                "type": "vcs",
                "url": "https://github.com/buchin/laravel-scout-mysql-driver"
            },
            {
                "type": "vcs",
                "url": "https://github.com/buchin/laravel-scout-sphinx"
            }
        ]
    

    2. Lalu, ubah file composer.json, tambahkan di baris 7 bagian
    require
    
    jadikan:
    "require": {
            "php": ">=7.0.0",
            "artesaos/seotools": "^0.11.1",
            "cviebrock/eloquent-sluggable": "^4.3",
            "fideloper/proxy": "~3.3",
            "graham-campbell/markdown": "^8.0",
            "jedrzej/pimpable": "0.0.4",
            "laravel/framework": "5.5.*",
            "laravel/scout": "^3.0",
            "laravel/tinker": "~1.0",
            "roumen/sitemap": "^2.7",
            "yab/laravel-scout-mysql-driver": "dev-master",
            "hocnt/laravel-scout-sphinx": "dev-master"
        },
    

    Contoh composer.json setelah ditambahkan baris-baris tersebut:
    https://www.dojo.cc/discussion/download/292/composer.json

    3. Install paket composer tadi dengan ketik:
    composer update
    
    Tunggu sampai selesai

    4. Ubah config/scout.php, tambahkan baris berikut di posisi di bawah konfigurasi mysql:
    ,
    'sphinx'  => [
            'host' => 'localhost',
            'port' => '9306',
            // 'charset' => '',
            // 'socket'  => '',
        ],
    
    Contoh:
    e7gbrtna01miq28q.png

    5. Ubah file .env, tambahkan SCOUT_DRIVER=sphinxsearch
    3p4f6trhbgevkq1b.png

    6. Buka config/app.php, di bagian package service provider tambahkan:
    Hocnt\LaravelScoutSphinx\Provider\SphinxEngineProvider::class,
    
    (Kira2 setelah baris 178:
    5z7eeze7iij5u8te.png



    Sekarang coba jalankan search di agc harga produk. Jika tampil, maka ente udah berhasil make sphinx :D
    Attachments
    composer.json (2K)
    scout_php_—_pris (105K)
    _env_—_pris (99K)
    scout_php_—_pris (107K)
    app_php_—_shuriken (168K)
  • buchin
    55
    Cara memakai Sphink untuk AGC Shuriken
    Tutorial sama dengan AGC harga produk, cuman beda di step 1, penambahan index dan source di sphinx.conf . Berikut adalah kode sphinx.conf yang ditambahkan di AGC Shuriken, kalau bisa, taruh di atas kode searchd dan indexer:
    source image_source
    {
        type            = mysql
        sql_host        = 127.0.0.1
        sql_user        = user_db_ente
        sql_pass        = password_db_ente
        sql_db          = nama_db_ente
        sql_port        = 3306    # optional, default is 3306
        sql_query       = SELECT id, title, alt, keyword, filetype, width, height, source, created_at, updated_at FROM images
    }
    
    index images
    {
        source = image_source
        path = /var/lib/sphinxsearch/data/images
        docinfo = extern
        charset_type = utf-8
    }
    
  • hariawan
    9
    saya masih belum mudeng om , ini fungsinya sebenernya untuk memaksimalkan halaman search agar lebih cepat & teroptimasi, atau agar fungsi akses ke mysql datanya jadi lebih ringan?
  • buchin
    55
    DUa2nya sob, karena dihandle sphinx, pencarian lebih cepet, kerja mysql lebih ringan. Ototmatis SERP potensi naik karena speednya nambah :)

    Ane dah praktekin di agc harga dan shuriken, hasilnya, indexing lebih cepet :) alhamdulillah dan server ga gampang koit.
  • axa2016
    1
    sob, tutorial instal cpanelnya kapan sob :(
  • hariawan
    9
    ternyata lebih asik pake serverpilot om :D >:) >:)
    klo lg ada saldo buat beli vps sih, wkwkwkwk >:) >:) >:) >:) >:) >:)
  • Alimuddin zarkasyi
    44
    kalo untuk spp ada om? :)
    semoga produk lama tak dilupakan
  • sikilkiwo
    1
    alhamdulillah lancar,
    kalau nanti error,, coba direstart lewat rootnya
    Ampuh bener, ram 512mb 7k kw lancar jaya kenceng pakai sphinx

    thanks om buchin
  • hariawan
    9
    om dan , ini barusan praktekin, ditempat saya kok webnya jadi blank ya om? sdh sesuai step by step nya, sdh reboot juga vps nya
  • buchin
    55
    :) blank gmn sob, coba kirim ssnya
  • hariawan
    9
    blank, putih bersih banget om :D , tak pm aja urlnya
  • buchin
    55
    itu pake serverpilot? Coba upload storage/log/laravel.log sob :)
  • Harun Subeno
    2
    gampang mas? ane masih pakai centos versi lnmp nih mumet......
  • Harun Subeno
    2
    punya saya ada error koneksi database..padahal user password sama kek env nya agchargaproduk....ERROR: index 'products': sql_connect: Access denied for user '100001'@'localhost' (using password: YES) ..bgmn mas?
  • hariawan
    9
    ini om
    Attachment
    laravel.log (13M)
  • hariawan
    9
    blm jadi nih om, blank situsnya
  • buchin
    55
    Bisa jadi urutannya di sphinx.conf ketuker sob antara database dan password, coba cek lebih teliti. Soalnya urutannya berbeda antara .env dan sphinx.conf :)
  • buchin
    55
    Sepertinya file tidak terextract dengan sempurna sob. Kok banyak class yang nggak terbaca. Solusinya coba reupload dan unzip lagi :)
  • hariawan
    9
    , itu saya modelnya edit offline dulu om, unzip di pc, edit2 semua yg harus diedit, trus di zip, baru diupload ke vps. apa sprti itu yang mempengaruhi om? haruskah file aslinya di unzip di vps, dan diedit secara online?
  • buchin
    55
    Ane biasanya unzip di server sob, baru file2 yang butuh edit ane edit offline, terus upload gpp. Soalnya kadang ada hidden files yang ga ngikut kalo unzip di local
  • hariawan
    9
    duwh..., sdh beberapa site saya gituin :D [ niatnya sih buat backup langsung, jika vps nya trouble ], oke deh om, ntar site yg baru saya edit online. makasih
  • buchin
    55
    kalau mau backup, nanti setelah fix, ente zip lagi dari server sob :3
    zip -r namafile.zip namafolder
    
  • hariawan
    9
    sip om, dulu penginya sekali kerja , ngirit kuota gak upload download lagi , hehehe... ntar tak praktekin om
  • buchin
    55
    semangat ya sob :D
  • hariawan
    9
    mantap om :-$
  • Harun Subeno
    2
    sudah mas....setelah semedi beberapa jam, ternyata kesalahan ada pada password db saya yang mengandung #......tks
  • Wal Aspal
    0
    Selamat siang mas.
    Maaf pertanyaanya pemula bngt.
    Misal dalam satu server (vps) terdapat lebih dr satu domain (db). Bagaimanya caranya?

    Sudah terjawab di Sini
  • Oliver
    0
    om @buchin , pas update composer ada minta token om ke githubnya
    Attachment
    token github sphink (134K)
bold
italic
underline
strike
code
quote
ulist
image
url
mention
reveal
youtube
tweet
Add a Comment

Selamat datang sob

Dojo membantu internet marketer menghasilkan lebih banyak uang dari Internet. Silakan gabung disini.