Seringkali saya lihat di forum pertanyaan dan kebingungan saat menjalankan Laravel. Seperti menghilangkan /public di URL. Semua teman-teman yang punya masalah ini, pasti menggunakan XAMPP. Ntah itu XAMPP di Windows atau XAMPP di Linux.

Padahal /public itu dimaksudkan agar directory tersebut yang di-serve oleh web server. Agar file-file yang sebenarnya tidak bisa diakses langsung dari luar.

Yang memisahkan directory ini bukan cuma Laravel. Symfony2 dan Yii2 juga ada directory web khusus untuk di-serve. Sedangkan CakePHP menggunakan webroot.

PHP Built-In Web Server

Anda tidak butuh XAMPP!!

Jika anda menggunakan PHP 5.4+, cukup gunakan command line. Anda tidak perlu install Apache, Nginx atau web server lainnya untuk menjalankan PHP. Untuk mengecek versi PHP anda, gunakan php --version

Berikut beberapa contoh command pada PHP framework yang sudah menyediakan perintah untuk menjalankan web server.

Laravel

Di Laravel cukup gunakan

php artisan serve

PHP web server by default akan jalan di port 8000. Anda bisa buka localhost:8000 di browser.

Bila ingin menggunakan port yang berbeda anda bisa tambahkan --port=[port]. Misalnya

php artisan serve --port=9090

Agar web server di local anda bisa diakses oleh komputer lain, anda bisa mengganti host dengan --host=[ip/host]. Misalnya

php artisan serve --host=0.0.0.0

artisan-serve

Symfony

Di Symfony juga ada. Cukup jalankan perintah ini

php app/console server:start

Juga by default jalan di port 8000. Detailnya untuk mengganti host dan port, bisa dilihat di http://symfony.com/doc/current/cookbook/web_server/built_in.html

CakePHP

Di CakePHP, gunakan cake command

bin/cake server

By default akan jalan di port 8765. Detailnya bisa anda baca di http://book.cakephp.org/3.0/en/installation.html#development-server

cakephp-builtin-webserver

Yii, CodeIgniter, FuelPHP, lainnya

Jika anda tidak menggunakan framework, atau ternyata di PHP framework yang anda gunakan tidak menyediakan command untuk menjalankan web server, anda bisa menggunakan php -S [host:port]. By default akan jalan pada current directory. Misalnya di CodeIgniter

php -S localhost:8000

Bila directory yang mau di-serve bukan current directory, gunakan -t [directory].

Misalnya pada Yii2, directory yang digunakan dan mengandung index.php adalah web. Maka perintahnya

php -S localhost:8000 -t web

UPDATE 20 Desember 2016

Sejak Yii 2.0.7 sudah bisa menggunakan php yii serve yang akan membuka akses web ke localhost:8080

php-builtin-webserver-yii2

Tips

Terkadang saya cuma butuh sedikit experiment. Mengetik php -S localhost:8000 saya rasa masih terlalu panjang 😦

Solusinya saya buat alias dengan nama phpserver. Tambahkan ini di file yang di-load oleh shell anda. Misalnya di ~/.bashrc.

phpserver() {
    php -S 0.0.0.0:${2:-8080} -t ${1:-.}
}

Kini bila butuh php web server, cukup gunakan phpserver. By default akan jalan pada current directory dan port 8080. Bila directory berbeda, gunakan

phpserver directory

Bila port-nya beda gunakan

phpserver directory 9123

Apa saya harus menggunakan ini?

Jika website/aplikasi yang anda buat cukup sederhana, anda bisa menggunakan PHP built-in web server ini. Tapi jika aplikasi yang anda buat sudah sangat serius atau untuk production, silahkan gunakan solusi lain.

Informasi detail mengenai built-in web server ini bisa anda lihat di http://php.net/manual/en/features.commandline.webserver.php

That’s all 😀

Jika ada pertanyaan silahkan tanyakan langsung di kolom komentar yang sudah disediakan.

Iklan

15 pemikiran pada “You don’t need XAMPP!!

    1. Ini digunakan untuk development, bukan untuk production.

      Kalau mau maksa, bisa aja. Tapi paling tidak pakai VPS. Tinggal jalankan aja seperti biasa.

      Tapi problem-nya, jika crash atau error, web server ini mati. Solusinya pakai tools yang bisa menjaga suatu program tetap jalan seperti supervisord.

      1. Yaa pakai aja yang sudah disediakan disana. Seperti yang tertulis di dokumentasinya, Ini lebih untuk development.

    1. Hoo, itu gak ada masalah sama sekali sebenernya. PHPMyAdmin itu kan cuma MySQL client yang “kebetulan” jalan diatas PHP.

      Tinggal pakai aja php -S kalau mau run PHPMyAdmin.

      Kalau sering butuh PHPMyAdmin, bikin aja script sederhana untuk aktifin. Misalnya:

      alias phpmyadmin='nohup -- php -S phpmyadmin.app:8080 -t /usr/local/share/phpmyadmin 2>&1 &'
      
    1. Yaa tinggal aktifin aja database server seperti biasanya 😐 Ini kan web server, bukan database server.

      Di OS X, saya cukup pakai mysql.server start untuk aktifin MySQL.

      Di ArchLinux saya cukup pakai sc-start mysqld

      Atau gunakan aja mysqld kalau gak mau dijadiin background service.

      1. mungkin maksudnya karena tidak butuh xampp.
        kita bisa download window.php.net untuk php.exenya
        tapi utk mysql mungkin krn terbiasa pake phpmyadmin apakah ada info ttg Mysql GUI yang biasa digunakan diwindows?
        ato bisakah menggunakan mysql – phpmyadmin tanpa xampp?

      2. Yup, untuk jalanin PHP butuhnya cuma PHP. Web server seperti Apache Httpd, Nginx atau lainnya komunikasi dengan PHP via CGI atau module.

        Untuk PHPMyAdmin, itu kategorinya MySQL client, bukan MySQL server.

        Tentu saja bisa MySQL+PHPMyAdmin tanpa XAMPP. Sebelum XAMPP ada di dunia kan jalanin MySQL dan PHPMyAdmin tanpa XAMPP. 😐

  1. klo sya lihat diatas keseluruhannya itu pake non windows,…. klo di windows kan nggak ada bawaan php yaa!, trus gimana ? saya di windows dan terbiasa pake bundle seperti xampp maupun wamp ….. adakah solusi lainnn, supaya otomatis redirect ke public folder,
    ….
    terima kasiiih sebelumnyaaa

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s