• Indonesian
  • English
  • Cara Install Composer di Shared Hosting cPanel Melalui

    Kecepatan:

    Pendahuluan

    Suatu hari saya dapat request dari client: “Saya ingin install Laravel di shared hosting, tapi kok composer-nya tidak ada?” Pertanyaan ini sebenarnya sangat umum — banyak developer yang terbiasa pakai VPS atau dedicated server lupa bahwa shared hosting biasanya tidak menyediakan Composer secara default. Di VPS, kamu bisa tinggal jalankan apt install composer atau yum install composer. Tapi di shared hosting, kamu tidak punya akses root dan harus install secara manual.

    Yang bikin menarik, beberapa tahun lalu saya sempat mengira bahwa install Composer di shared hosting itu mustahil. Ternyata tidak — asalkan hosting kamu support terminal (cPanel Terminal), kamu bisa install Composer dengan satu command panjang yang dijalankan dari terminal cPanel. Tidak perlu SSH, tidak perlu akses root, tidak perlu compile dari source. Cukup satu command, selesai.

    Di artikel ini saya akan tunjukkan cara install Composer di shared hosting cPanel menggunakan fitur terminal, langkah demi langkah. Saya juga akan jelaskan apa yang dilakukan setiap bagian command agar kamu paham, bukan hanya copy-paste buta.

    Apa Itu Composer?

    Sebelum masuk ke command install, penting untuk memahami apa itu Composer dan kenapa kamu membutuhkannya.

    Composer Adalah Package Manager untuk PHP

    Composer adalah tool dependency management untuk PHP. Secara sederhana, Composer membantu kamu menginstall, mengupdate, dan mengelola library/package PHP yang dibutuhkan oleh project kamu. Mirip seperti npm untuk JavaScript atau pip untuk Python.

    Ketika kamu install package menggunakan Composer, Composer akan:

    • Download package yang diminta beserta semua dependensinya
    • Install package ke direktori vendor/ di project kamu
    • Membuat file composer.json yang berisi daftar dependensi
    • Membuat file composer.lock yang mengunci versi spesifik dari setiap package

    Kenapa Composer Penting?

    Banyak framework dan library PHP modern membutuhkan Composer untuk installasi:

    • Laravel — framework PHP paling populer, wajib pakai Composer
    • Symfony — framework PHP enterprise
    • PHPUnit — testing framework untuk PHP
    • PHPMailer — library untuk mengirim email
    • Guzzle — HTTP client untuk PHP
    • Dan ratusan library PHP lainnya

    Tanpa Composer, kamu tidak bisa install framework modern atau library PHP yang dibutuhkan oleh banyak aplikasi.

    Persiapan: Pastikan Hosting Support Terminal

    Cek Apakah Hosting Kamu Support Terminal

    Sebelum mencoba install Composer, pastikan hosting kamu menyediakan fitur cPanel Terminal. Tidak semua shared hosting support fitur ini — beberapa hosting hanya menyediakan File Manager dan PHPMyAdmin tanpa akses terminal.

    Cara mengecek:

    1. Login ke cPanel
    2. Cari menu “Terminal” atau “SSH Access” di bagian “Advanced”
    3. Jika menu tersebut ada dan bisa diklik, hosting kamu support terminal
    4. Jika tidak ada, hubungi provider hosting untuk menanyakan apakah fitur terminal tersedia

    Alternatif Jika Terminal Tidak Tersedia

    Jika hosting kamu tidak support terminal, ada beberapa alternatif:

    • Install via File Manager — download composer.phar dari website resmi, upload via File Manager, lalu jalankan dari cron job
    • Minta provider hosting installkan Composer — beberapa provider hosting bersedia install Composer untukmu
    • Upgrade ke VPS — jika kamu serius menggunakan Composer, pertimbangkan upgrade ke VPS yang memberikan akses root penuh

    Cara Install Composer di cPanel

    ⚠️ PERINGATAN KEAMANAN: Backup Dulu!

    Sebelum menjalankan command install, pastikan kamu sudah backup file yang penting di home directory. Meskipun install Composer tidak menghapus file yang ada, lebih baik waspada.

    # Backup file penting di home directory
    # (jalankan dari File Manager cPanel atau terminal sebelum install)
    cp -r ~/public_html /tmp/backup-public_html-$(date +%Y%m%d-%H%M) 2>/dev/null
    cp ~/.bashrc /tmp/backup-bashrc-$(date +%Y%m%d-%H%M) 2>/dev/null

    Langkah 1: Buka cPanel Terminal

    1. Login ke cPanel
    2. Cari menu “Terminal” di bagian “Advanced”
    3. Klik menu “Terminal”
    4. Kamu akan melihat terminal seperti SSH — ini adalah terminal berbasis web yang memungkinkan kamu menjalankan command di server

    ⚠️ PENTING: Terminal cPanel berjalan dengan user kamu (bukan root). Semua command yang kamu jalankan akan berjalan dengan permission user kamu. Ini artinya kamu tidak bisa menginstall package system-wide, tapi kamu bisa install Composer di home directory.

    Langkah 2: Jalankan Command Install Composer

    Berikut command lengkap untuk install Composer di shared hosting cPanel:

    cd ~ && curl -4sS https://getcomposer.org/installer -o composer-setup.php && php composer-setup.php --checksum=$(curl -4sS https://composer.github.io/installer.sig) && mkdir -p $HOME/bin && mv composer.phar $HOME/bin/composer && chmod +x $HOME/bin/composer && rm composer-setup.php && composer --version

    Jangan langsung copy-paste — baca dulu penjelasan setiap bagian command di bawah agar kamu paham apa yang dilakukan.

    Penjelasan Tiap Bagian Command

    1. cd ~ — Pindah ke home directory (~ adalah shorthand untuk home directory user). Ini memastikan semua operasi berjalan di direktori yang benar — yaitu direktori milik kamu.

    2. curl -4sS https://getcomposer.org/installer -o composer-setup.php — Download installer Composer dari website resmi. Penjelasan flag: -4 = pakai IPv4 saja (menghindari masalah DNS dual-stack), -s = silent mode (tidak ada progress bar), -S = show errors (tampilkan error jika ada). File installer disimpan sebagai composer-setup.php.

    3. php composer-setup.php --checksum=$(curl -4sS https://composer.github.io/installer.sig) — Jalankan installer Composer. Flag --checksum memverifikasi bahwa installer yang di-download tidak corrupt atau dimodifikasi. Checksum di-download dari https://composer.github.io/installer.sig dan dibandingkan dengan checksum dari file installer. Jika tidak cocok, installasi akan gagal — ini langkah keamanan untuk memastikan kamu mendapatkan installer yang asli.

    4. mkdir -p $HOME/bin — Buat direktori bin di home directory jika belum ada. Flag -p berarti “parents” — tidak error jika direktori sudah ada. Direktori bin ini akan menyimpan executable files yang bisa dijalankan dari command line tanpa perlu full path.

    5. mv composer.phar $HOME/bin/composer — Pindahkan file composer.phar (file executable Composer yang sudah di-install) ke direktori bin dan rename menjadi composer. Dengan cara ini, kamu bisa menjalankan composer dari direktori manapun tanpa perlu php composer.phar.

    6. chmod +x $HOME/bin/composer — Berikan permission execute (+x) pada file composer. Tanpa permission ini, file tidak bisa dijalankan sebagai executable.

    7. rm composer-setup.php — Hapus file installer yang sudah tidak diperlukan. File ini hanya dibutuhkan untuk proses install saja — setelah Composer terinstall, file installer bisa dihapus.

    8. composer --version — Verifikasi bahwa Composer berhasil diinstall dengan menampilkan versi Composer yang terinstall. Jika command ini menghasilkan output seperti “Composer version 2.6.5”, berarti install berhasil.

    Langkah 3: Konfigurasi PATH (Opsional tapi Direkomendasikan)

    Agar command composer bisa dijalankan dari direktori manapun tanpa perlu full path, pastikan $HOME/bin ada di PATH:

    # Cek apakah $HOME/bin sudah ada di PATH
    echo $PATH | grep -q "$HOME/bin" && echo "PATH sudah benar" || echo "Perlu konfigurasi PATH"
    
    # Tambahkan $HOME/bin ke PATH (untuk sesi ini)
    export PATH=$HOME/bin:$PATH
    
    # Tambahkan ke .bashrc agar persisten
    echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc

    Setelah konfigurasi ini, kamu bisa menjalankan composer dari direktori manapun tanpa perlu ~/bin/composer.

    Langkah 4: Verifikasi Installasi

    Setelah install, verifikasi bahwa Composer berfungsi dengan benar:

    # Cek versi Composer
    composer --version
    
    # Cek help Composer
    composer --help
    
    # Test buat project baru (opsional)
    mkdir /tmp/test-composer && cd /tmp/test-composer
    composer init --name="test/project" --no-interaction
    ls -la

    Contoh Output Verifikasi

    $ composer --version
    Composer version 2.6.5 2023-10-06 10:11:52
    
    $ composer --help
    Description:
      Composer Command Line Interface
    
    Usage:
      composer [options] [command] [arguments]
    
    Options:
      --help (-h)           Display this help message
      --quiet (-q)          Do not output any message
      --verbose (-v|vv|vvv) Increase the verbosity of messages
      --version (-V)        Display this application version
      --ansi                Force ANSI output
      --no-ansi             Disable ANSI output
      ...
    

    Cara Menggunakan Composer Setelah Install

    Install Package ke Project

    Setelah Composer terinstall, kamu bisa menggunakannya untuk install package ke project kamu:

    # Pindah ke direktori project
    cd ~/public_html/myproject
    
    # Install package (misalnya PHPMailer)
    composer require phpmailer/phpmailer
    
    # Install semua dependensi dari composer.json
    composer install
    
    # Update semua dependensi ke versi terbaru
    composer update

    Membuat Project Baru dengan Composer

    Composer juga bisa digunakan untuk membuat project baru langsung dari template:

    # Buat project Laravel baru
    composer create-project laravel/laravel myproject
    
    # Buat project Symfony baru
    composer create-project symfony/skeleton myproject

    Cek Status Dependensi

    # Lihat semua package yang terinstall
    composer show
    
    # Cek package yang sudah outdated
    composer outdated
    
    # Cek audit keamanan package
    composer audit

    Troubleshooting: Install Gagal

    Masalah 1: “curl: (6) Could not resolve host”

    Error ini muncul karena masalah DNS atau koneksi. Solusinya:

    # Coba pakai IP langsung (opsional)
    curl -4sS https://151.101.2.49/installer -o composer-setup.php
    
    # Atau cek koneksi internet
    ping -c 3 getcomposer.org

    Masalah 2: “php: command not found”

    Beberapa shared hosting menggunakan nama PHP yang berbeda:

    # Coba pakai php8.1, php8.2, atau php-cgi
    php8.2 composer-setup.php
    # atau
    /usr/bin/php-cgi composer-setup.php

    Masalah 3: “Permission denied” saat menjalankan composer

    Pastikan permission file sudah benar:

    # Cek permission
    ls -la ~/bin/composer
    
    # Jika belum +x, jalankan chmod
    chmod +x ~/bin/composer

    Masalah 4: “checksum mismatch” saat install

    Error ini muncul karena checksum tidak cocok — bisa jadi file corrupt atau versi installer berubah. Solusinya:

    # Download ulang installer
    rm -f composer-setup.php
    curl -4sS https://getcomposer.org/installer -o composer-setup.php
    
    # Jalankan install tanpa checksum (opsional, kurang aman)
    php composer-setup.php

    Pro Tips: Penggunaan Composer di Shared Hosting

    1. Install di home directory, bukan public_html — Composer dan file vendor/ sebaiknya tidak berada di direktori yang bisa diakses publik. Install Composer di ~/bin dan jalankan install di direktori project yang sesuai.
    2. Gunakan composer install di production — di production, gunakan composer install (bukan composer update) untuk memastikan versi package sesuai dengan composer.lock.
    3. Add vendor/ ke .gitignore — jangan commit direktori vendor/ ke Git. Direktori ini bisa di-generate ulang dengan composer install.
    4. Gunakan composer audit — jalankan composer audit secara berkala untuk mengecek apakah ada package yang punya vulnerability keamanan.
    5. Optimasi autoloader — di production, jalankan composer install --optimize-autoloader untuk mempercepat loading time.
    6. Backup composer.lock — file composer.lock sangat penting karena mengunci versi package. Backup file ini ke tempat yang aman.
    7. Gunakan --no-dev di production — jika kamu tidak membutuhkan package development (testing, debugging), gunakan composer install --no-dev untuk mengurangi ukuran installasi.

    FAQ

    Apakah Composer bisa diinstall di semua shared hosting?

    Tidak semua. Composer membutuhkan PHP (minimal PHP 5.3.2) dan fitur terminal di cPanel. Jika hosting kamu tidak support terminal atau PHP version-nya terlalu lama, Composer tidak bisa diinstall. Cek dengan provider hosting kamu apakah fitur terminal tersedia.

    Apakah Composer akan mempengaruhi performa website?

    Tidak langsung. Composer hanya tool untuk menginstall package — package yang diinstall akan berjalan seperti biasa. Tapi Composer sendiri tidak boleh berada di direktori public (public_html) karena bisa mengekspos informasi sensitif. Pastikan Composer di-install di home directory, bukan di public_html.

    Bagaimana cara update Composer setelah install?

    Jalankan command composer self-update dari terminal. Command ini akan mengupdate Composer ke versi terbaru. Untuk mengupdate ke versi major tertentu, gunakan composer self-update --2 atau composer self-update --1.

    Apakah saya bisa pakai Composer tanpa terminal cPanel?

    Ya, tapi lebih ribet. Kamu bisa download composer.phar langsung dari website resmi, upload via File Manager, lalu jalankan via cron job atau PHP script. Tapi cara ini tidak direkomendasikan karena kurang praktis dan kurang aman.

    Related Issues

    Kesimpulan

    Install Composer di shared hosting cPanel sebenarnya tidak serumit yang dibayangkan. Dengan satu command panjang yang dijalankan dari cPanel Terminal, Composer bisa terinstall dan langsung digunakan. Kunci utamanya adalah pastikan hosting kamu support terminal, jalankan command di home directory (bukan public_html), dan verifikasi setelah install.

    Yang terpenting, jangan install Composer di direktori public (public_html) karena Composer bisa mengekspos informasi sensitif. Install di home directory, jalankan composer install atau composer create-project di direktori project yang sesuai, dan pastikan vendor/ tidak bisa diakses publik. Lebih baik install dengan benar sejak awal daripada harus menjelaskan ke client kenapa ada file sensitive yang terekspos di website — percaya deh, saya pernah ngalamin dan tidak mau ngalamin lagi.