Menjalankan Aplikasi PHP Menggunakan Built-in Web Server


Tak harus menginstall web server seperti Apache atau Nginx untuk menjalankan Laravel melalui peramban (browser). Kita dapat memanfaatkan built-in web server yang disediakan oleh PHP melalui artisan untuk menjalankannya.

PHP: Built-in web server – Manual

URI requests are served from the current working directory where PHP was started, unless the -t option is used to specify an explicit document root. If a URI request does not specify a file, then either index.php or index.html in the given directory are returned.

Sebelum menjalankan beberapa perintah di bawah, pastikan PHP yang terinstal di mesin minimal versi 5.4. Versinya sendiri dapat dicek dengan perintah php -v.

Warning: This web server was designed to aid application development. It may also be useful for testing purposes or for application demonstrations that are run in controlled environments. It is not intended to be a full-featured web server. It should not be used on a public network.

Built-in Web Server MelaluiĀ Artisan

$ php artisan serve

Laravel development server started on http://localhost:8000/

Secara bawaan, port yang digunakan adalah 8000, tentunya kita bisa mengubah pengaturan port dengan opsi --port.

$ php artisan serve --port=8080

Built-in Web Server Menggunakan PHP

Jika karena suatu sebab kita tidak dapat menjalankan built-in web server melalui artisan, misal karena sudah dimodifikasi sedemikian rupa. Maka bisa menjalankannya langsung melalui perintah PHP.

$ php -S localhost:8000

PHP 7.0.11 Development Server started at Wed Oct 19 08:56:06 2016
Listening on http://localhost:8000
Document root is /home/yugo/PHP/newsletter
Press Ctrl-C to quit.

Sudah cukup jelas di sana, paramater dari opsi -S difungsikan untuk menentukan URL dan port yang akan digunakan. Cukup ganti parameter ini untuk mengubah port yang diinginkan.

Pada dasarnya jika kita menjalankan built-in web server melalui artisan, perintah yang akan dijalankan sama persis dengan contoh di atas. Hanya saja di-bundle dalam Commands Laravel untuk kemudahan dalam penggunaan.

<?php

/**
 * Execute the console command.
 *
 * @return void
 *
 * @throws \Exception
 */
public function fire()
{
    chdir($this->laravel->publicPath());
 
    $host = $this->input->getOption('host');
 
    $port = $this->input->getOption('port');
 
    $base = ProcessUtils::escapeArgument($this->laravel->basePath());
 
    $binary = ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false));
 
    $this->info("Laravel development server started on http://{$host}:{$port}/");
 
    passthru("{$binary} -S {$host}:{$port} {$base}/server.php");
}

Ada beberapa variasi dan opsi tambahan sepuar penggunaan built-in web server. Semisal, jika kita ingin menjalankan web server pada direktori spesifik, cukup tambahkan opsi -t.

$ php -S localhost:8000 -t /public_html

Atau, bisa juga menampilkan berkas default dengan nama selain index.php.

$ php -S localhost:8000 bootstrap.php

Cara kedua ini lebih fleksibel digunakan, karena dapat diimplementasikan pada framework atau plain PHP yang tidak menyertakan tool built-in web server seperti Laravel dan Symfony. Untuk menjalankan CodeIgniter atau WordPress misalnya.

Sebagai tips, gunakan kombinasi tombol Ctrl + C untuk mematikan server. Pastikan juga fokus window berada pada terminal. šŸ˜‰

Tak Berkategori

Yugo Purwanto

Pemrogram PHP dan JavaScript yang sedang sibuk mengembangkan aplikasi Glosarium Bahasa Indonesia.

1 comment

Tinggalkan Balasan