Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing Laravel 5.1 on OSX with MAMP

I tried to install Laravel 5.1 on OSX Yosemite with MAMP, and ran across a couple of road blocks. Specifically, I got the following error when trying to migrate the database.

[PDOException] SQLSTATE[HY000] [2002] No such file or directory
like image 730
Marty Thomas Avatar asked Sep 10 '15 14:09

Marty Thomas


1 Answers

1) Install Composer

If you don't yet have composer installed, you will need to do that. You can test weather you have composer installed by simply typing in the composer command into mac's terminal. You should see a list of available commands if composer is installed.

Screen Shot 2015-08-17 at 1.34.05 PM.png

If you don't yet have composer installed, you can see Getting Started with Composer

2) Install Laravel

Laravel has good documentation in installing Laravel. I'll walk through exactly what steps I took to get Laravel up and running on OSX Yosemite.

Install via Laravel Installer. Type the following into terminal.

cd ~/
composer global require "laravel/installer=~1.1"

Add the composer executable to the Path environment, so to that the laravel executable can be found.

PATH=$PATH:~/.composer/vendor/bin

Install a fresh Laravel instance, and give it a name. In our case we'll name the project saas.

laravel new saas

I'm using MAMP PRO to run sites locally on my mac. So I just need to create a new host in MAMP, and point it to the saas/public directory.

laravel_mamp.png

Then, visiting http://saas:8888 will show you Laravel's beautiful welcome screen.

laravel5_1.png

3) Create Database

I like to use Navicat to manage my databases. With Navicat for MySQL, I create a new local database.

Then, define it's connection in the .env file.

 DB_HOST=localhost
 DB_DATABASE=saas
 DB_USERNAME=root
 DB_PASSWORD=xxxxxxx

The trigger the migration with the following command:

php artisan migrate

Since I'm using MAMP, I got this error when trying to migrate.

[PDOException]                                    

SQLSTATE[HY000] [2002] No such file or directory

Solution was to add the unix_socket key with a value of the path that the mysql.sock resides in MAMP.

'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'forge'),
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
        'unix_socket'   => '/Applications/MAMP/tmp/mysql/mysql.sock',
    ],

4) Wrap-UP

Directories within the storage and the bootstrap/cache directories should be writable. We'll do that with the following?

chmod -R 777 storage
chmod -R 777 bootstrap/cache

Rename the environment file.

mv .env.example .env

5) PHP Path

Since were using MAMP, we have multiple version of PHP installed on our machine. So if we try to run php artisan, we will be given an error.

Mcrypt PHP extension required

If you also receive that error, first check to see what version of PHP your using with MAMP. You can check that through MAMP's Main Window > PHP. In my case, were using version 5.6.10.

Then we can edit our ~/.bash_profile file, by adding the following line:

export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH

Restart terminal, and you should then be able to run the php artisan command.

And that's it. Create something awesome!

like image 161
Marty Thomas Avatar answered Oct 05 '22 23:10

Marty Thomas