Creating Laravel 5 Web Application Project using Composer

Posted on

Operating System            : Ubuntu 16.04 (Xenial Xerus)
Laravel                             : Laravel 5

To be able to create a simple Laravel project, here is the thing which is actually needed based on my trial and error :

  1. If you are installing or creating Laravel based web application from composer, off course you need a composer.
  2. Make sure that your user can create folder which is used for the Laravel web application based. In my opinion, since I use /var/www/html as the main or default root directory since I used Apache Web Server and the owner of that directory itself is www-data in this operating system, I have to register my username which is I currently login in order for the username itself is a member of www-data group so that I have enough privileges to write or to create a Laravel based web application project. To check whether the user is already part of the group or not, I try to execute the following command :
id username

username@hostname:/var/www/html$ id username
uid=1000(username) gid=1000(username) groups=4(adm),24(cdrom),27(sudo),30(dip),33(www-data),46(plugdev),108(lpadmin),124(sambashare),125(vboxusers),134(libvirtd),1000(username)

As we can see that the username has already part of www-data group.

  1. First of all, check your own composer whether it is already the latest version or not. But the composer itself will normally warn ourselves if it is being used to install utilities or packages whether it needs to be updated or not. Simply execute the following command to check the version :
composer --version
username@hostname:/var/www/html$ composer --version
Composer version 1.2.0 2016-07-19 01:28:52
  1. Check whether your composer can be used to create a new Laravel based web application without any common problems by executing the following command :
composer diagnose

or you can just type the following :

composer diag

Below is the full output of the command :

username@hostname:/var/www/html$ composer diag
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: Warning: Accessing over http which is an insecure protocol.
Checking https connectivity to packagist: OK
Checking rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E328C AD90147D AFE50952
Checking composer version: OK
  1. Execute the following command to create new Laravel based web application :
username@hostname:/var/www/html$ composer create-project --prefer-dist laravel/laravel test
Installing laravel/laravel (v5.2.31)
  - Installing laravel/laravel (v5.2.31)
    Loading from cache
Created project in test
> php -r "copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing vlucas/phpdotenv (v2.3.0)
    Loading from cache
  - Installing symfony/polyfill-mbstring (v1.2.0)
    Loading from cache
  - Installing symfony/var-dumper (v3.0.9)
    Downloading: 100%
  - Installing symfony/translation (v3.0.9)
    Downloading: 100%
  - Installing symfony/routing (v3.0.9)
    Downloading: 100%
  - Installing symfony/process (v3.0.9)
    Downloading: 100%
  - Installing symfony/polyfill-util (v1.2.0)
    Loading from cache
  - Installing symfony/polyfill-php56 (v1.2.0)
    Loading from cache
  - Installing symfony/http-foundation (v3.0.9)
    Downloading: 100%
  - Installing symfony/event-dispatcher (v3.1.3)
    Downloading: 100%
  - Installing psr/log (1.0.0)
    Loading from cache
  - Installing symfony/debug (v3.0.9)
    Downloading: 100%
  - Installing symfony/http-kernel (v3.0.9)
    Downloading: 100%
  - Installing symfony/finder (v3.0.9)
    Downloading: 100%
  - Installing symfony/console (v3.0.9)
    Downloading: 100%
  - Installing swiftmailer/swiftmailer (v5.4.3)
    Downloading: 100%
  - Installing jakub-onderka/php-console-color (0.1)
    Loading from cache
  - Installing jakub-onderka/php-console-highlighter (v0.3.2)
    Loading from cache
  - Installing dnoegel/php-xdg-base-dir (0.1)
    Loading from cache
  - Installing nikic/php-parser (v2.1.0)
    Loading from cache
  - Installing psy/psysh (v0.7.2)
    Loading from cache
  - Installing paragonie/random_compat (v1.4.1)
    Loading from cache
  - Installing nesbot/carbon (1.21.0)
    Loading from cache
  - Installing mtdowling/cron-expression (v1.1.0)
    Loading from cache
  - Installing monolog/monolog (1.21.0)
    Downloading: 100%
  - Installing league/flysystem (1.0.25)
    Downloading: 100%
  - Installing jeremeamia/superclosure (2.2.0)
    Loading from cache
  - Installing doctrine/inflector (v1.1.0)
    Loading from cache
  - Installing classpreloader/classpreloader (3.0.0)
    Loading from cache
  - Installing laravel/framework (5.2.41)
    Downloading: 100%
  - Installing fzaninotto/faker (v1.6.0)
    Loading from cache
  - Installing hamcrest/hamcrest-php (v1.2.2)
    Loading from cache
  - Installing mockery/mockery (0.9.5)
    Loading from cache
  - Installing symfony/yaml (v3.1.3)
    Downloading: 100%
  - Installing sebastian/version (1.0.6)
    Loading from cache
  - Installing sebastian/global-state (1.1.1)
    Loading from cache
  - Installing sebastian/recursion-context (1.0.2)
    Loading from cache
  - Installing sebastian/exporter (1.2.2)
    Loading from cache
  - Installing sebastian/environment (1.3.7)
    Loading from cache
  - Installing sebastian/diff (1.4.1)
    Loading from cache
  - Installing sebastian/comparator (1.2.0)
    Loading from cache
  - Installing doctrine/instantiator (1.0.5)
    Loading from cache
  - Installing phpunit/php-text-template (1.2.1)
    Loading from cache
  - Installing phpunit/phpunit-mock-objects (2.3.8)
    Loading from cache
  - Installing phpunit/php-timer (1.0.8)
    Loading from cache
  - Installing phpunit/php-file-iterator (1.4.1)
    Loading from cache
  - Installing phpunit/php-token-stream (1.4.8)
    Loading from cache
  - Installing phpunit/php-code-coverage (2.2.4)
    Loading from cache
  - Installing webmozart/assert (1.0.2)
    Loading from cache
  - Installing phpdocumentor/reflection-common (1.0)
    Loading from cache
  - Installing phpdocumentor/type-resolver (0.2)
    Loading from cache
  - Installing phpdocumentor/reflection-docblock (3.1.0)
    Loading from cache
  - Installing phpspec/prophecy (v1.6.1)
    Loading from cache
  - Installing phpunit/phpunit (4.8.27)
    Downloading: 100%
  - Installing symfony/css-selector (v3.0.9)
    Downloading: 100%
  - Installing symfony/dom-crawler (v3.0.9)
    Downloading: 100%
symfony/var-dumper suggests installing ext-symfony_debug ()
symfony/translation suggests installing symfony/config ()
symfony/routing suggests installing doctrine/annotations (For using the annotation loader)
symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
symfony/routing suggests installing symfony/dependency-injection (For loading routes from a service)
symfony/routing suggests installing symfony/expression-language (For using expression matching)
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/http-kernel suggests installing symfony/browser-kit ()
symfony/http-kernel suggests installing symfony/class-loader ()
symfony/http-kernel suggests installing symfony/config ()
symfony/http-kernel suggests installing symfony/dependency-injection ()
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server)
league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2)
league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3)
league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage)
league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching)
league/flysystem suggests installing league/flysystem-copy (Allows you to use storage)
league/flysystem suggests installing league/flysystem-dropbox (Allows you to use Dropbox storage)
league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem)
league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files)
league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib)
league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage)
league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter)
laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS queue driver and SES mail driver (~3.0).)
laravel/framework suggests installing doctrine/dbal (Required to rename columns and drop SQLite columns (~2.4).)
laravel/framework suggests installing guzzlehttp/guzzle (Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).)
laravel/framework suggests installing league/flysystem-aws-s3-v3 (Required to use the Flysystem S3 driver (~1.0).)
laravel/framework suggests installing league/flysystem-rackspace (Required to use the Flysystem Rackspace driver (~1.0).)
laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (~3.0).)
laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (~1.0).)
laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (~2.0).)
laravel/framework suggests installing symfony/psr-http-message-bridge (Required to psr7 bridging features (0.2.*).)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (>=2.2.1)
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1) Writing lock file Generating autoload files > Illuminate\Foundation\ComposerScripts::postUpdate > php artisan optimize Generating optimized class loader > php artisan key:generate Application key [base64:2Aq45q6+lJ+fsjcbYN/riRqMqRGQBU04FFOeEJBSwLw=] set successfully.

The process has already finished successfully.

One thought on “Creating Laravel 5 Web Application Project using Composer

Leave a Reply