Installing Laravel on a Mac — a newbie’s insights
I am new to using a Mac, so forgive me if you spot something I should have known better.
Also, I’m a Laravel newbie, so don’t take what I say seriously
I just managed to get Laravel up and running because I’ll need to know how to work with it for my next project.
While I have heard good things about the framework, the ease of use, etc, I am yet to see what the fuss is all about. Setting up wasn’t entirely easy and I had to reach out to the PHP community on DevCenter for help in the process.
Shout out to ibrahimlawal and @acekyd for the assistance.
It started with PHP …
Laravel wasn’t so difficult to install. I had to learn about composer which is like the NPM for PHP.
For some reason, Mac OS installations come bundled with PHP (and ruby, so I saw), which is well … still don’t know what to make of that. In my case, it was PHP 5.6.0
I decided to use HomeBrew to install PHP 7.0 which Laravel 5.5 runs on and it wasn’t so bad. It was a bunch of commands which:
Updated HomeBrew (always update, ehn?)
Attempted to unlink PHP 5.6 which didn’t work because it was not installed with HomeBrew
Installed PHP 7.0
Now, there was a problem. I had both PHP 7.0 and PHP 5.6 installed on my system, because the brew unlink php56
command didn’t work.
php artisan serve in my newly created laravel app kept giving
Parse error: parse error in ./vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 233
The errant line of code:
return app(‘cache’)->get($arguments[0], $arguments[1] ?? null);
Took a while to figure out what was going on … Apparently, ??
is a new operator that was introduced to PHP 7.0. It’s called the null coalesce operator and we’ve had it in C# for years. Lol!
Figured out that php —- version
was returning 5.6 because the PATH was still pointing to the php56 installation.
Unfortunately, either Mac OS does not have the flair of windows and provide you with a sweet GUI for editing environment variables, or I just still don’t know how to use it well enough.
So with the help of sudo nano /etc/paths
, and some fiddling with the directory to figure where brew
saved the php70 installation, I was able to add /usr/local/cellar/php70/7.0.24_16
to my PATH
.
Now, php --version
returns 7.0 which is awesome!
php artisan serve
now actually serves my app. Yaaay!(?)
But I get a Whoops! Something has gone wrong!
What’s up again?
Apparently, there’s no .env
file.
Where is that supposed to come from?
I was supposed to copy the generated .env.example
file to .env
and enter a value for the APP_KEY which is supposed to be a base64 string.
How was I supposed to know that?
The laravel new
command was supposed to have handled that, but it didn’t, I think.
So, I do run the:
php artisan key:generate #to generate a new APP_KEY
php artisan config:clear #just in case the empty key is in cache
Then I run php artisan serve
and finally, it’s up.
Perfecto!
We have joined the guild of PHP devs!!!
Again, all I see is the Laravel homepage, which I must say is a little disappointing. There’s a whole lot of generated PHP for it to just say:
I mean, where’s all the power of Laravel at? Show me something cool! Authentication, Cool Routing features, etc.
I know I am a newbie at this, and it’ll get cooler soon, at least I hope it does. But till then, I’ll be working on figuring out how Laravel is put together.
Bye, I have work to do.
Update: for php artisan
to work, you need to run composer update — no-scripts
first.