Tutorial Laravel: Install Laravel Menggunakan Composer

Pastikan anda telah menginstall Composer pada komputer anda, jika belum silahkan ikuti tutorial Cara Install Composer pada Windows.

1. Pastikan composer telah terinstall dengan membuka Command Prompt dan menjalan perintah berikut ini:

C:\Users\r00t>composer -V
Composer version 2.0.8 2020-12-03 17:20:38

2. Install Laravel Framework
Masuk telebih dahulu ke dalam directory kerja anda, disini saya menggunakan C:\Dev\laravel.

cd c:\Dev\laravel
composer create-project --prefer-dist laravel/laravel nama_project
Creating a "laravel/laravel" project at "./nama_project" Installing laravel/laravel (v8.5.8) - Installing laravel/laravel (v8.5.8): Extracting archive Created project in c:\Dev\laravel\nama_project > @php -r "file_exists('.env') || copy('.env.example', '.env');" Loading composer repositories with package information Updating dependencies Lock file operations: 105 installs, 0 updates, 0 removals - Locking asm89/stack-cors (v2.0.2) - Locking brick/math (0.9.1) - Locking dnoegel/php-xdg-base-dir (v0.1.1) - Locking doctrine/inflector (2.0.3) - Locking doctrine/instantiator (1.4.0) - Locking doctrine/lexer (1.2.1) - Locking dragonmantank/cron-expression (v3.1.0) - Locking egulias/email-validator (2.1.25) - Locking facade/flare-client-php (1.3.7) - Locking facade/ignition (2.5.8) - Locking facade/ignition-contracts (1.0.2) - Locking fakerphp/faker (v1.13.0) - Locking fideloper/proxy (4.4.1) - Locking filp/whoops (2.9.1) - Locking fruitcake/laravel-cors (v2.0.3) - Locking graham-campbell/result-type (v1.0.1) - Locking guzzlehttp/guzzle (7.2.0) - Locking guzzlehttp/promises (1.4.0) - Locking guzzlehttp/psr7 (1.7.0) - Locking hamcrest/hamcrest-php (v2.0.1) - Locking laravel/framework (v8.22.1) - Locking laravel/sail (v1.1.0) - Locking laravel/tinker (v2.5.0) - Locking league/commonmark (1.5.7) - Locking league/flysystem (1.1.3) - Locking league/mime-type-detection (1.5.1) - Locking mockery/mockery (1.4.2) - Locking monolog/monolog (2.2.0) - Locking myclabs/deep-copy (1.10.2) - Locking nesbot/carbon (2.43.0) - Locking nikic/php-parser (v4.10.4) - Locking nunomaduro/collision (v5.2.0) - Locking opis/closure (3.6.1) - Locking phar-io/manifest (2.0.1) - Locking phar-io/version (3.0.4) - Locking phpdocumentor/reflection-common (2.2.0) - Locking phpdocumentor/reflection-docblock (5.2.2) - Locking phpdocumentor/type-resolver (1.4.0) - Locking phpoption/phpoption (1.7.5) - Locking phpspec/prophecy (1.12.2) - Locking phpunit/php-code-coverage (9.2.5) - Locking phpunit/php-file-iterator (3.0.5) - Locking phpunit/php-invoker (3.1.1) - Locking phpunit/php-text-template (2.0.4) - Locking phpunit/php-timer (5.0.3) - Locking phpunit/phpunit (9.5.1) - Locking psr/container (1.0.0) - Locking psr/event-dispatcher (1.0.0) - Locking psr/http-client (1.0.1) - Locking psr/http-message (1.0.1) - Locking psr/log (1.1.3) - Locking psr/simple-cache (1.0.1) - Locking psy/psysh (v0.10.5) - Locking ralouphie/getallheaders (3.0.3) - Locking ramsey/collection (1.1.1) - Locking ramsey/uuid (4.1.1) - Locking sebastian/cli-parser (1.0.1) - Locking sebastian/code-unit (1.0.8) - Locking sebastian/code-unit-reverse-lookup (2.0.3) - Locking sebastian/comparator (4.0.6) - Locking sebastian/complexity (2.0.2) - Locking sebastian/diff (4.0.4) - Locking sebastian/environment (5.1.3) - Locking sebastian/exporter (4.0.3) - Locking sebastian/global-state (5.0.2) - Locking sebastian/lines-of-code (1.0.3) - Locking sebastian/object-enumerator (4.0.4) - Locking sebastian/object-reflector (2.0.4) - Locking sebastian/recursion-context (4.0.4) - Locking sebastian/resource-operations (3.0.3) - Locking sebastian/type (2.3.1) - Locking sebastian/version (3.0.2) - Locking swiftmailer/swiftmailer (v6.2.5) - Locking symfony/console (v5.2.1) - Locking symfony/css-selector (v5.2.1) - Locking symfony/deprecation-contracts (v2.2.0) - Locking symfony/error-handler (v5.2.1) - Locking symfony/event-dispatcher (v5.2.1) - Locking symfony/event-dispatcher-contracts (v2.2.0) - Locking symfony/finder (v5.2.1) - Locking symfony/http-client-contracts (v2.3.1) - Locking symfony/http-foundation (v5.2.1) - Locking symfony/http-kernel (v5.2.1) - Locking symfony/mime (v5.2.1) - Locking symfony/polyfill-ctype (v1.22.0) - Locking symfony/polyfill-iconv (v1.22.0) - Locking symfony/polyfill-intl-grapheme (v1.22.0) - Locking symfony/polyfill-intl-idn (v1.22.0) - Locking symfony/polyfill-intl-normalizer (v1.22.0) - Locking symfony/polyfill-mbstring (v1.22.0) - Locking symfony/polyfill-php72 (v1.22.0) - Locking symfony/polyfill-php73 (v1.22.0) - Locking symfony/polyfill-php80 (v1.22.0) - Locking symfony/process (v5.2.1) - Locking symfony/routing (v5.2.1) - Locking symfony/service-contracts (v2.2.0) - Locking symfony/string (v5.2.1) - Locking symfony/translation (v5.2.1) - Locking symfony/translation-contracts (v2.3.0) - Locking symfony/var-dumper (v5.2.1) - Locking theseer/tokenizer (1.2.0) - Locking tijsverkoyen/css-to-inline-styles (2.2.3) - Locking vlucas/phpdotenv (v5.2.0) - Locking voku/portable-ascii (1.5.6) - Locking webmozart/assert (1.9.1) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 105 installs, 0 updates, 0 removals - Downloading doctrine/inflector (2.0.3) - Downloading doctrine/lexer (1.2.1) - Downloading symfony/polyfill-ctype (v1.22.0) - Downloading webmozart/assert (1.9.1) - Downloading dragonmantank/cron-expression (v3.1.0) - Downloading symfony/polyfill-php80 (v1.22.0) - Downloading symfony/polyfill-mbstring (v1.22.0) - Downloading symfony/var-dumper (v5.2.1) - Downloading symfony/polyfill-intl-normalizer (v1.22.0) - Downloading symfony/polyfill-intl-grapheme (v1.22.0) - Downloading symfony/string (v5.2.1) - Downloading psr/container (1.0.0) - Downloading symfony/service-contracts (v2.2.0) - Downloading symfony/polyfill-php73 (v1.22.0) - Downloading symfony/console (v5.2.1) - Downloading psr/log (1.1.3) - Downloading monolog/monolog (2.2.0) - Downloading voku/portable-ascii (1.5.6) - Downloading phpoption/phpoption (1.7.5) - Downloading graham-campbell/result-type (v1.0.1) - Downloading vlucas/phpdotenv (v5.2.0) - Downloading symfony/css-selector (v5.2.1) - Downloading tijsverkoyen/css-to-inline-styles (2.2.3) - Downloading symfony/deprecation-contracts (v2.2.0) - Downloading symfony/routing (v5.2.1) - Downloading symfony/process (v5.2.1) - Downloading symfony/polyfill-php72 (v1.22.0) - Downloading symfony/polyfill-intl-idn (v1.22.0) - Downloading symfony/mime (v5.2.1) - Downloading symfony/http-foundation (v5.2.1) - Downloading symfony/http-client-contracts (v2.3.1) - Downloading psr/event-dispatcher (1.0.0) - Downloading symfony/event-dispatcher-contracts (v2.2.0) - Downloading symfony/event-dispatcher (v5.2.1) - Downloading symfony/error-handler (v5.2.1) - Downloading symfony/http-kernel (v5.2.1) - Downloading symfony/finder (v5.2.1) - Downloading symfony/polyfill-iconv (v1.22.0) - Downloading egulias/email-validator (2.1.25) - Downloading swiftmailer/swiftmailer (v6.2.5) - Downloading ramsey/collection (1.1.1) - Downloading brick/math (0.9.1) - Downloading ramsey/uuid (4.1.1) - Downloading psr/simple-cache (1.0.1) - Downloading opis/closure (3.6.1) - Downloading symfony/translation-contracts (v2.3.0) - Downloading symfony/translation (v5.2.1) - Downloading nesbot/carbon (2.43.0) - Downloading league/mime-type-detection (1.5.1) - Downloading league/flysystem (1.1.3) - Downloading league/commonmark (1.5.7) - Downloading laravel/framework (v8.22.1) - Downloading filp/whoops (2.9.1) - Downloading facade/ignition-contracts (1.0.2) - Downloading facade/flare-client-php (1.3.7) - Downloading facade/ignition (2.5.8) - Downloading fakerphp/faker (v1.13.0) - Downloading fideloper/proxy (4.4.1) - Downloading asm89/stack-cors (v2.0.2) - Downloading fruitcake/laravel-cors (v2.0.3) - Downloading psr/http-message (1.0.1) - Downloading psr/http-client (1.0.1) - Downloading ralouphie/getallheaders (3.0.3) - Downloading guzzlehttp/psr7 (1.7.0) - Downloading guzzlehttp/promises (1.4.0) - Downloading guzzlehttp/guzzle (7.2.0) - Downloading laravel/sail (v1.1.0) - Downloading nikic/php-parser (v4.10.4) - Downloading dnoegel/php-xdg-base-dir (v0.1.1) - Downloading psy/psysh (v0.10.5) - Downloading laravel/tinker (v2.5.0) - Downloading hamcrest/hamcrest-php (v2.0.1) - Downloading mockery/mockery (1.4.2) - Downloading nunomaduro/collision (v5.2.0) - Downloading phpdocumentor/reflection-common (2.2.0) - Downloading phpdocumentor/type-resolver (1.4.0) - Downloading phpdocumentor/reflection-docblock (5.2.2) - Downloading sebastian/version (3.0.2) - Downloading sebastian/type (2.3.1) - Downloading sebastian/resource-operations (3.0.3) - Downloading sebastian/recursion-context (4.0.4) - Downloading sebastian/object-reflector (2.0.4) - Downloading sebastian/object-enumerator (4.0.4) - Downloading sebastian/global-state (5.0.2) - Downloading sebastian/exporter (4.0.3) - Downloading sebastian/environment (5.1.3) - Downloading sebastian/diff (4.0.4) - Downloading sebastian/comparator (4.0.6) - Downloading sebastian/code-unit (1.0.8) - Downloading sebastian/cli-parser (1.0.1) - Downloading phpunit/php-timer (5.0.3) - Downloading phpunit/php-text-template (2.0.4) - Downloading phpunit/php-invoker (3.1.1) - Downloading phpunit/php-file-iterator (3.0.5) - Downloading theseer/tokenizer (1.2.0) - Downloading sebastian/lines-of-code (1.0.3) - Downloading sebastian/complexity (2.0.2) - Downloading sebastian/code-unit-reverse-lookup (2.0.3) - Downloading phpunit/php-code-coverage (9.2.5) - Downloading doctrine/instantiator (1.4.0) - Downloading phpspec/prophecy (1.12.2) - Downloading phar-io/version (3.0.4) - Downloading phar-io/manifest (2.0.1) - Downloading myclabs/deep-copy (1.10.2) - Downloading phpunit/phpunit (9.5.1) - Installing doctrine/inflector (2.0.3): Extracting archive - Installing doctrine/lexer (1.2.1): Extracting archive - Installing symfony/polyfill-ctype (v1.22.0): Extracting archive - Installing webmozart/assert (1.9.1): Extracting archive - Installing dragonmantank/cron-expression (v3.1.0): Extracting archive - Installing symfony/polyfill-php80 (v1.22.0): Extracting archive - Installing symfony/polyfill-mbstring (v1.22.0): Extracting archive - Installing symfony/var-dumper (v5.2.1): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.22.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.22.0): Extracting archive - Installing symfony/string (v5.2.1): Extracting archive - Installing psr/container (1.0.0): Extracting archive - Installing symfony/service-contracts (v2.2.0): Extracting archive - Installing symfony/polyfill-php73 (v1.22.0): Extracting archive - Installing symfony/console (v5.2.1): Extracting archive - Installing psr/log (1.1.3): Extracting archive - Installing monolog/monolog (2.2.0): Extracting archive - Installing voku/portable-ascii (1.5.6): Extracting archive - Installing phpoption/phpoption (1.7.5): Extracting archive - Installing graham-campbell/result-type (v1.0.1): Extracting archive - Installing vlucas/phpdotenv (v5.2.0): Extracting archive - Installing symfony/css-selector (v5.2.1): Extracting archive - Installing tijsverkoyen/css-to-inline-styles (2.2.3): Extracting archive - Installing symfony/deprecation-contracts (v2.2.0): Extracting archive - Installing symfony/routing (v5.2.1): Extracting archive - Installing symfony/process (v5.2.1): Extracting archive - Installing symfony/polyfill-php72 (v1.22.0): Extracting archive - Installing symfony/polyfill-intl-idn (v1.22.0): Extracting archive - Installing symfony/mime (v5.2.1): Extracting archive - Installing symfony/http-foundation (v5.2.1): Extracting archive - Installing symfony/http-client-contracts (v2.3.1): Extracting archive - Installing psr/event-dispatcher (1.0.0): Extracting archive - Installing symfony/event-dispatcher-contracts (v2.2.0): Extracting archive - Installing symfony/event-dispatcher (v5.2.1): Extracting archive - Installing symfony/error-handler (v5.2.1): Extracting archive - Installing symfony/http-kernel (v5.2.1): Extracting archive - Installing symfony/finder (v5.2.1): Extracting archive - Installing symfony/polyfill-iconv (v1.22.0): Extracting archive - Installing egulias/email-validator (2.1.25): Extracting archive - Installing swiftmailer/swiftmailer (v6.2.5): Extracting archive - Installing ramsey/collection (1.1.1): Extracting archive - Installing brick/math (0.9.1): Extracting archive - Installing ramsey/uuid (4.1.1): Extracting archive - Installing psr/simple-cache (1.0.1): Extracting archive - Installing opis/closure (3.6.1): Extracting archive - Installing symfony/translation-contracts (v2.3.0): Extracting archive - Installing symfony/translation (v5.2.1): Extracting archive - Installing nesbot/carbon (2.43.0): Extracting archive - Installing league/mime-type-detection (1.5.1): Extracting archive - Installing league/flysystem (1.1.3): Extracting archive - Installing league/commonmark (1.5.7): Extracting archive - Installing laravel/framework (v8.22.1): Extracting archive - Installing filp/whoops (2.9.1): Extracting archive - Installing facade/ignition-contracts (1.0.2): Extracting archive - Installing facade/flare-client-php (1.3.7): Extracting archive - Installing facade/ignition (2.5.8): Extracting archive - Installing fakerphp/faker (v1.13.0): Extracting archive - Installing fideloper/proxy (4.4.1): Extracting archive - Installing asm89/stack-cors (v2.0.2): Extracting archive - Installing fruitcake/laravel-cors (v2.0.3): Extracting archive - Installing psr/http-message (1.0.1): Extracting archive - Installing psr/http-client (1.0.1): Extracting archive - Installing ralouphie/getallheaders (3.0.3): Extracting archive - Installing guzzlehttp/psr7 (1.7.0): Extracting archive - Installing guzzlehttp/promises (1.4.0): Extracting archive - Installing guzzlehttp/guzzle (7.2.0): Extracting archive - Installing laravel/sail (v1.1.0): Extracting archive - Installing nikic/php-parser (v4.10.4): Extracting archive - Installing dnoegel/php-xdg-base-dir (v0.1.1): Extracting archive - Installing psy/psysh (v0.10.5): Extracting archive - Installing laravel/tinker (v2.5.0): Extracting archive - Installing hamcrest/hamcrest-php (v2.0.1): Extracting archive - Installing mockery/mockery (1.4.2): Extracting archive - Installing nunomaduro/collision (v5.2.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing phpdocumentor/type-resolver (1.4.0): Extracting archive - Installing phpdocumentor/reflection-docblock (5.2.2): Extracting archive - Installing sebastian/version (3.0.2): Extracting archive - Installing sebastian/type (2.3.1): Extracting archive - Installing sebastian/resource-operations (3.0.3): Extracting archive - Installing sebastian/recursion-context (4.0.4): Extracting archive - Installing sebastian/object-reflector (2.0.4): Extracting archive - Installing sebastian/object-enumerator (4.0.4): Extracting archive - Installing sebastian/global-state (5.0.2): Extracting archive - Installing sebastian/exporter (4.0.3): Extracting archive - Installing sebastian/environment (5.1.3): Extracting archive - Installing sebastian/diff (4.0.4): Extracting archive - Installing sebastian/comparator (4.0.6): Extracting archive - Installing sebastian/code-unit (1.0.8): Extracting archive - Installing sebastian/cli-parser (1.0.1): Extracting archive - Installing phpunit/php-timer (5.0.3): Extracting archive - Installing phpunit/php-text-template (2.0.4): Extracting archive - Installing phpunit/php-invoker (3.1.1): Extracting archive - Installing phpunit/php-file-iterator (3.0.5): Extracting archive - Installing theseer/tokenizer (1.2.0): Extracting archive - Installing sebastian/lines-of-code (1.0.3): Extracting archive - Installing sebastian/complexity (2.0.2): Extracting archive - Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive - Installing phpunit/php-code-coverage (9.2.5): Extracting archive - Installing doctrine/instantiator (1.4.0): Extracting archive - Installing phpspec/prophecy (1.12.2): Extracting archive - Installing phar-io/version (3.0.4): Extracting archive - Installing phar-io/manifest (2.0.1): Extracting archive - Installing myclabs/deep-copy (1.10.2): Extracting archive - Installing phpunit/phpunit (9.5.1): Extracting archive 81 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: fruitcake/laravel-cors Discovered Package: laravel/sail Discovered Package: laravel/tinker Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully. 73 packages you are using are looking for funding. Use the `composer fund` command to find out more! > @php artisan key:generate --ansi Application key set successfully.

Jika pada proses ini anda mendapati error extentsion php missing, silahkan tambahkan extension=fileinfo pada php.ini dan sebelumnya hapus telebih dahulu folder project yang dibuat oleh composer tadi (nama_project).
3. Jika tidak ada masalah pada proses installasi sampai selesai seharusnya anda akan menemukan tampilan CMD seperti pada screenshot berikut ini:

4. Setelah semuanya selesai, silahkan masuk kedalam folder project dan jalankan perintah berikut untuk menjalankan Development server-nya Laravel, dengan ini anda tidak perlu menginstall XAMPP dan aplikasi lainnya.

c:\Dev\laravel\nama_project>php artisan serve
Starting Laravel development server: http://127.0.0.1:8000
[Mon Jan 18 05:00:00 2021] PHP 7.4.14 Development Server (http://127.0.0.1:8000) started

Buka browser dan masukan alamat http://127.0.0.1:8000 enter dan anda akan mendapati halaman seperti berikut: