使用MAMP在OSX上安装Laravel 5.1

Mar*_*mas 9 macos mamp laravel laravel-5.1

我尝试在OSX Yosemite上使用MAMP安装Laravel 5.1,并遇到了几个障碍.具体来说,我在尝试迁移数据库时遇到以下错误.

[PDOException] SQLSTATE[HY000] [2002] No such file or directory
Run Code Online (Sandbox Code Playgroud)

Mar*_*mas 33

1)安装Composer

如果您还没有安装composer,则需要执行此操作.只需在composermac 终端输入命令,即可测试安装了作曲家的天气.如果安装了composer,您应该会看到可用命令的列表.

屏幕截图2015-08-17 at 1.34.05 PM.png

如果您还没有安装composer,可以看到Composer入门

2)安装Laravel

Laravel在安装Laravel方面有很好的文档.我将详细介绍我为了让Laravel在OSX Yosemite上运行而采取的步骤.

通过Laravel Installer安装.在终端中键入以下内容.

cd ~/
composer global require "laravel/installer=~1.1"
Run Code Online (Sandbox Code Playgroud)

将composer可执行文件添加到Path环境中,以便laravel可以找到可执行文件.

PATH=$PATH:~/.composer/vendor/bin
Run Code Online (Sandbox Code Playgroud)

安装一个新的Laravel实例,并为其命名.在我们的例子中,我们将项目命名为saas.

laravel new saas
Run Code Online (Sandbox Code Playgroud)

我正在使用MAMP PRO在我的Mac上本地运行网站.所以我只需要在MAMP中创建一个新主机,并将其指向saas/public目录.

laravel_mamp.png

然后,访问http:// saas:8888将向您展示Laravel的美丽欢迎屏幕.

laravel5_1.png

3)创建数据库

我喜欢使用Navicat来管理我的数据库.使用Navicat for MySQL,我创建了一个新的本地数据库.

然后,在.env 文件中定义它的连接.

 DB_HOST=localhost
 DB_DATABASE=saas
 DB_USERNAME=root
 DB_PASSWORD=xxxxxxx
Run Code Online (Sandbox Code Playgroud)

使用以下命令触发迁移:

php artisan migrate
Run Code Online (Sandbox Code Playgroud)

由于我正在使用MAMP,因此在尝试迁移时出现此错误.

[PDOException]                                    
Run Code Online (Sandbox Code Playgroud)

SQLSTATE [HY000] [2002]没有这样的文件或目录

解决方案是使用mysql.sock驻留在MAMP中的路径值添加unix_socket密钥.

'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',
    ],
Run Code Online (Sandbox Code Playgroud)

4)总结

存储中的目录和引导/缓存目录应该是可写的.我们将通过以下方式做到这一点?

chmod -R 777 storage
chmod -R 777 bootstrap/cache
Run Code Online (Sandbox Code Playgroud)

重命名环境文件.

mv .env.example .env
Run Code Online (Sandbox Code Playgroud)

5)PHP路径

由于使用MAMP,我们的机器上安装了多个版本的PHP.因此,如果我们尝试运行php artisan,我们将会收到错误.

Mcrypt PHP extension required
Run Code Online (Sandbox Code Playgroud)

如果您还收到该错误,请首先查看您使用MAMP的PHP版本.你可以通过MAMP的主​​窗口> PHP来检查.就我而言,正在使用版本5.6.10.

然后我们可以 ~/.bash_profile通过添加以下行来编辑我们的文件:

export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

重新启动终端,然后您应该能够运行该php artisan命令.

就是这样.创造出令人敬畏的东西!


Jam*_*ole 5

将本地配置添加到config/database.php这样的文件似乎对我不对 - 因为对它的任何更改也会上传到Git仓库.

发现这个其他解决方案工作正常,没有代码更改:

mkdir /var/mysql
ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)

这可以立即工作,不会改变PHP或Git-able文件.

希望能帮助到你.