Заставьте ремесленника Laravel играть с бродягой с локального хоста

Когда я подключаюсь по ssh к своей локальной бродячей машине, я могу выполнять все команды ремесленника. Однако за его пределами любые команды, которым требуется доступ к базе данных, такие как artisan migrate, дают Access denied for user 'root'@'localhost'. Если возможно, как я могу использовать ремесленника без входа в бродячую машину?

Я также хотел бы сделать например Artisian::call('migrate') например во время тестирования. Но это дает ту же ошибку.


person Simon Bengtsson    schedule 26.05.2014    source источник
comment
Вы можете сделать это без входа в систему (AFAIK). Думайте о VM как об удаленном сервере, и перед выполнением любой команды ему требуется аутентификация.   -  person The Alpha    schedule 27.05.2014
comment
Я не уверен, что понимаю тебя. Вы говорите, что это можно сделать? У меня просто плохая конфигурация?   -  person Simon Bengtsson    schedule 27.05.2014
comment
Извините за путаницу. Нет, это невозможно.   -  person The Alpha    schedule 27.05.2014


Ответы (1)


Причина ошибки access denied в том, что mysql по умолчанию ограничивает доступ к базам данных локальной машиной. Можно открыть для удаленных подключений, как описано здесь, но это не лучшая идея для рабочей среды.

Лучше всего добавить псевдонимы для нужных команд, как описано здесь.

Для выполнения вызовов artisan и т. д. в коде Laravel имеет встроенный способ запуска команд на удаленных серверах. Сначала добавьте информацию о подключении в файл app/config/remote.php. Для бродяги это должно выглядеть примерно так:

'connections' => array(

    'production' => array(
        'host'      => 'localhost',
        'username'  => 'vagrant',
        'password'  => 'vagrant',
        'key'       => '',
        'keyphrase' => '',
        'root'      => '/vagrant',
    ),

),

Затем выполните ремесленную миграцию следующим образом:

SSH::run(array('cd /vagrant', 'php artisan migrate'));

Вы можете делать и более продвинутые вещи. Вот документация.

person Simon Bengtsson    schedule 30.05.2014