Cara Mudah Install Linux, Apache, MySQL & PHP (LAMP) + WordPress Menggunakan Tuxlite di Debian/Ubuntu

Salah satu hal yang ditakuti pemilik website ketika memutuskan upgrade hosting dari share ke VPS/Dedicated Server adalah bayangan rumitnya install komponen web server.
Untungnya dengan Tuxlite, hal itu tidak berlaku lagi. Dengan menggunakan Tuxlite, proses instalasi Linux, Apache, MySQL & PHP sangatlah mudah. Bahkan bagi pemula sekalipun!

Apa Itu Tuxlite?

Tuxlite adalah sebuah script shell yang berisi baris perintah instalasi Linux, Apache, MySQL & PHP (LAMP) atau Linux, Nginx, MySQL & PHP (LEMP). Tuxlite akan melakukan instalasi dan konfigurasi secara otomatis agar VPS/Dedicated Server anda bisa digunakan secepatnya. Dengan Tuxlite, anda hanya memerlukan waktu beberapa menit untuk membangun sebuah web server yang siap pakai dan aman!

Tuxlite sangat cocok bagi yang ingin menghosting situsnya ke VPS/Dedicated Server tanpa memerlukan kontrol panel yang mahal & banyak memakan resource server.

Tuxlite akan menginstal komponen berikut:

  1. Apache2 dengan mpm_worker atau Nginx
  2. MySQL
  3. PHP-FPM atau PHP-CGI (dengan suexec) + beberapa modul PHP yang biasa dipakai.
  4. Server email Postfix (hanya diatur untuk mengirim email keluar).
  5. Varnish cache (opsional)

Mengapa menggunakan Tuxlite?

  1. Tuxlite mengkonfigurasi Apache dengan mpm_worker dan PHP dengan fastcgi. Hal ini memberikan performa yang lebih tinggi, namun dengan konsumsi memori lebih rendah dibandingkan dengan instalasi LAMP yang menggunakan mod_php.
  2. Aplikasi yang diinstal 100% asli dari repo resmi! Jaminan keamanan dan update aplikasi.
  3. Tidak membutuhkan resource yang besar, fresh install hanya membutuhkan memori 50-60 MB saja.
  4. Konfigurasi virtual host otomatis, dengan rotasi log, statistik trafik dengan Awstats dan PHPmyAdmin untuk mengelola database.
  5. Instalasi Varnish untuk mempercepat kinerja server!
  6. Gratis dan sumber terbuka (open source). Kita bebas mengubah script Tuxlite sesuai keinginan & kebutuhan kita.

Note: Di tutorial ini kita akan menginstall LAMP, untuk tutorial LEMP akan saya tulis di tutorial terpisah.

Sebelum memulai instalasi, anda harus memiliki minimal sebuah VPS dengan RAM sebesar 80 MB atau lebih. Dianjurkan 256 MB atau lebih.

Proses Instalasi

  1. Buat sebuah direktori untuk menyimpan script Tuxlite. Misal /tuxlite/, maka jalankan perintah berikut:
    mkdir /tuxlite && cd /tuxlite
  2. Download script tuxlite
    wget http://tuxlite.com/scripts/tuxlite.tar.gz
  3. Ekstrak file dengan perintah:
    tar zxvf tuxlite.tar.gz
  4. Edit file options.sh untuk memasukkan alamat IP server, usernam MySQL, dll
    nano options.conf
  5. Ganti parameter sesuai dengan informasi server anda:
    • HOSTNAME, ganti dengan hostname server, semisal HOSTNAME=node1
    • HOSTNAME_FQDN, ganti dengan nama lengkap domain hostname, misal HOSTNAME_FQDN=node1.serversaya.com
    • SERVER_IP, masukkan alamat IP server anda, misal SERVER_IP=202.28.123.123
    • SSHD_PORT, ganti nilai 22 dengan angka lain jika ingin mengubah port SSH, atau lewati saja jika anda ingin tetap menggunakan port 22.
    • APT_REGION, ubah dengan 2 huruf kode negara yang paling deket dengan server kita. Misal jika server kita ada di Singapore, kita bisa ganti menjadi APT_REGION=sg.
    • WEBSERVER, karena kita akan menginstall Apache, maka masukkan pilihan 2, hingga menjadi WEBSERVER=2
    • MYSQL_ROOT_PASSWORD, masukkan password yang ingin anda gunakan untuk MySQL, anda bebas memilih, tetapi harus diingat karena kita akan membutuhkannya saat proses instalasi MySQL berjalan dan untuk mengelola database kita nanti, misal parameter MYSQL_ROOT_PASSWORD=kad837gas7g
    • PMA_LINK, adalah link lokasi file instalasi PHPmyAdmin. Lihat ke situs PHPmyAdmin (http://http://www.phpmyadmin.net), jika ada versi yang lebih baru, masukkan linknya disini.
    • DB_GUI, tuxlite memberikan pilihan tool untuk mengelola database server kita, apakah menggunakan PHPmyAdmin ataukah Adminer. Jika anda ingin menggunakan PHPmyAdmin masukkan angka 1.
    • VARNISH_CACHE_SIZE, masukkan besarnya cache yang ingin anda gunakan untuk varnish.
    • AWSTATS_ENABLE, jika anda ingin menginstal dan mengaktifkan tool memonitor trafik Awstats, masukkan variabel yes, jika tidak masukkan no.
    • MISC_PACKAGES, jika anda ingin menginstal paket lain selain yang dibutuhkan tuxlite, silahkan masukkan disini.
    • Untuk variabel bisa anda biarkan sesuai default.
  6. Kemudian kita chmod script agar bisa dijalankan
    chmod 700 *.sh && chmod 700 options.conf
  7. Kemudian kita perbarui database APT dulu dan instal aptitude:
    apt-get update && apt-get -y install aptitude
  8. Jika anda ingin mengeksplor fungsi script tuxlite, jalankan perintah ini:
    ./setup.sh
  9. Kemudian kita siap menginstal Linux, Apache, MySQL dan PHP dengan menjalan script instalasi:
    ./install.sh
  10. Buat user baru selain root
    adduser userbaru

    ganti userbaru dengan nama sesuai keinginan. Kemudian masukkan password untuk user ini.

  11. Tambahkan nama domain yang ingin anda hosting di server anda ini, semisal anda ingin menghosting domain situsku123.com, maka jalankan perintah:
    ./domain.sh add userbaru situsku123.com

    Maka otomatis tuxlite akan membuat direktori untuk situsku123.com di /home/userbaru/domains/situsku123. Anda bisa upload file-file situs anda di /home/userbaru/domains/situsku123/public_html

  12. Selanjutnya kita akan menginstal PHPMyAdmin atau Adminer agar kita bisa membuat database, import dan juga mengelola database situs kita. Jalankan perintah:
    ./setup.sh dbgui
  13. Kemudian anda bisa mengaktifkan atau menonaktifkan penggunaan PHPMyAdmin/Adminer dengan perintah:
    ./domain.sh dbgui on

    untuk menonaktifkan gunakan perintah:

    ./domain.sh dbgui off

    NOTE: Jika sekiranya anda sudah selesai menggunakan PHPMyAdmin/Adminer, alangkah baiknya anda menonaktifkannya. Dan mengaktifkan kembali jika diperlukan. Ini untuk keamanan server kita, meminimalisir brute force attack.

  14. Kemudian jika anda ingin mengaktifkan tool Awstats, jalankan perintah:
    ./domain.sh stats on

    Dan jalankan perintah ini untuk mematikan Awstats:

    ./domain.sh stats off
  15. Jika anda ingin menginstall varnish, jalankan perintah ini:
    ./varnish.sh install

    Jalankan perintah ini untuk mengaktifkan varnish:

    ./varnish.sh on

    Dan untuk mematikannya:

    ./varnish.sh off

    NOTE: Jangan menginstal varnish jika anda tidak tahu cara mengkonfigurasi ACL varnish! Fitur ini bersifat opsional saja, dianjurkan untuk yang memiliki skill tingkat lanjut.

  16. Jika anda ingin menginstall WordPress di domain anda, tuxlite memberikan kemudahan instalasinya. Hanya dengan satu baris perintah ini otomatis situs wordpress anda sudah terinstal:
    ./wordpress.sh

    Kemudian akan muncul pertanyaan domain mana yang ingin anda install dengan WordPress, masukkan angka yang didepan domain yang ingin anda pakai. Kemudian masukkan nama database, terserah anda variabelnya. Lalu script akan menanyakan lokasi folder instalasi, jika alamat situs wordpress anda nantinya www.situsku123.com, tekan enter saja. Tetapi jika alamat situs wordpress anda www.situsku123.com/blog, maka masukkan “blog” di pertanyaan tersebut dan tekan enter.

    Untuk database wordpress, tuxlite akan membuatnya secara otomatis. Setelah semua sudah di set oleh tuxlite, sekarang silahkan akses situs anda untuk melengkapi proses instalasi wordpress.

Mudah bukan? Untuk menambah domain lain, anda hanya perlu menjalankan perintah ./domain.sh add user namadomain.com dan untuk install wordpress tinggal mengeksekusi perintah ./wordpress.sh.

Selanjutnya untuk keamanan server, anda perlu menginstall iptables, install fail2ban, dan install (D)DoS Deflate. Ikuti tutorial Tips Mengamankan Server atau VPS Linux. Dan jangan lupa untuk Backup File & Database dari Server Linux ke Amazon S3 Dengan Menggunakan S3cmd.

Comments 29

  1. Sedikit panik setelah install tuxlite, karena gak bisa ssh dg login root langsung. Mungkin kena disable sama tuxlite.

    Solusinya login dulu dg user yg baru dibuat, lalu masuk dg perintah su.

    Tapi bagaimana kalo belum sempat bikin user baru, trus gak bisa ssh root ? :D

    1. Kalau di panel kontrol VPSnya pake SolusVM, bisa coba login via “Serial Console”. Tapi kalau gak ada fitur ini, ya terpaksa harus install ulang VPS :D

  2. Mas gimana cara install script sendiri, misal install script iklan baris,
    trus gimana jika kita migrasi dari server lain , tentunya kita akan import database, gimana caranya mohon pencerahan

    1. Gampang sih mas kalo install script berbasis PHP. Biasanya di setiap script, ada file readme yang berisi cara instalasinya. Ikuti aja mas. Tapi ingat, pastikan server anda sudah memenuhi requirement dari script tersebut.

      Migrasi ke server lain juga mudah mas, ada 2 komponen yang dipindah, yakni file-file situs (semisal script php-nya, gambar, dll) & file databasenya.
      Untuk mindah file, jika antar VPS tinggal pake perintah wget, scp atau rsync. Jika di shared server, bisa di download manual dulu dari server lama, kemudian di upload ke server baru.
      Untuk database, cara mudah adalah menggunakan perintah export & import via PHPMyAdmin.

    1. Gampang mas, sama prosesnya dengan main domain. Caranya, buat subdomain di DNS server, arahkan ke IP server, kemudian di VPS jalankan perintah “./domain.sh add userbaru subdomain.situsku123.com”

    1. Sudah cek di error_log nya mas? Apakah VPSnya install & manage sendiri? Apache/Nginx? Apakah ada proxy di depan Apache/Nginx nya? Bisa minta url web nya? Biar kita bisa cek sama-sama.

  3. gan, misalnya kita mau ngisi vps kita dengan banyak domain (multiple domain), nah kita perlu mengedit file options.conf lagi ga? soalnya di file itu kan ada FQDN hostname.domainawal.com

    1. nggak perlu, utk nambah domain, kita cuma perlu mengeksekusi perintah “./domain.sh add user subdomain.domainawal.com”.
      Untuk FQDN yang di options.conf isi sembarang aja gan, nggak terlalu penting itu.

          1. Ini hasil query domain good-travels.com & http://www.good-travels.com
            ===================================================

            pakdoz@pakdoz:~$ dig good-travels.com

            ; <> DiG 9.8.4-rpz2+rl005.12-P1 <> good-travels.com

            ;; global options: +cmd

            ;; Got answer:

            ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40143

            ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

            ;; QUESTION SECTION:

            ;good-travels.com. IN A

            ;; ANSWER SECTION:

            good-travels.com. 1800 IN A 128.199.243.140

            ;; Query time: 215 msec

            ;; SERVER: 127.0.0.1#53(127.0.0.1)

            ;; WHEN: Mon Apr 7 08:55:26 2014

            ;; MSG SIZE rcvd: 50
            ====================================================
            pakdoz@pakdoz:~$ dig http://www.good-travels.com

            ; <> DiG 9.8.4-rpz2+rl005.12-P1 <> http://www.good-travels.com

            ;; global options: +cmd

            ;; Got answer:

            ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 26426

            ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

            ;; QUESTION SECTION:

            ;www.good-travels.com. IN A

            ;; AUTHORITY SECTION:

            good-travels.com. 1733 IN SOA NS1.DIGITALOCEAN.com. hostmaster.good-travels.com. 1396522409 3600 900 1209600 1800

            ;; Query time: 0 msec

            ;; SERVER: 127.0.0.1#53(127.0.0.1)

            ;; WHEN: Mon Apr 7 08:55:33 2014

            ;; MSG SIZE rcvd: 102
            ===============================================================

            Sepertinya sampeyan salah setting IP untuk www di DNS server Digital Ocean.

            TTL biasanya saya isi 1 hari, atau dalam detiknya 86400 seconds.

            Jika sampeyan mengikuti tutorial setting server di artikel ini, gak perlu 2 kali, cukup sekali saja saja, hanya domain saja yang dimasukkan, gak perlu pake www.

          2. makasih mas sudah bisa,,,
            boleh tanya lagi ga mas?
            untuk multiple domain
            saya sudah pake perintah “/domain.sh add user subdomain.domainawal.com”
            tapi munculnya ini

            “Welcome to nginx!

            If you see this page, the nginx web server is successfully installed and
            working. Further configuration is required.

            For online documentation and support please refer to
            nginx.org.

            Commercial support is available at
            nginx.com.

            Thank you for using nginx.”
            itu kenapa ya mas.makasih banyak.

  4. normal itu, sudah bener settngannya. itu file index.html bawaan nginx. Tinggal hapus file index.html di folder subdomain tsb.

  5. Pingback: Mudahnya Install Linux, Apache, MySql, PHP dan WordPress Dengan Tuxlite | bodi

  6. gan kalau buat web debian wordpres langkah awalnya gimana,pusing ni ydah 2 hari buat web nya kagak selesai selesai,

    anak sekolah

    1. kalau untuk pemula, lebih baik jangan install wordpress di debian. coba aja sewa hosting murah yg ada cpanelnya. Biasanya mereka punya fitur install WordPress dengan satu kali klik, situs wordpress sdh siap dipakai.

  7. Pingback: Mudahnya Install Linux, Apache, MySql, PHP dan WordPress Dengan TuxliteBlog Bodi - Blog Bodi

  8. Pingback: EasyEngine, Cara Mudah Instal Nginx, MySQL, PHP dan Wordpress

Leave a Reply

Your email address will not be published. Required fields are marked *