【问题标题】:Accessing phpMyAdmin in Laravel Homestead with XAMPP使用 XAMPP 访问 Laravel Homestead 中的 phpMyAdmin
【发布时间】:2015-12-06 12:19:03
【问题描述】:

在对设置 Laravel Homestead 的陡峭学习曲线并让它毫无问题地工作而感到沮丧一夜之后,我遇到了一个我似乎无法找到解决方案的问题。如何使用 phpmyadmin 在 Laravel Homestead 实例中管理我的数据库?

理想情况下,我想从位于C:/xampp/ 的 XAMPP 中预先配置的 phpMyAdmin 访问它。但是我没有在C:/xampp/htdocs/ 中设置我的 Laravel 项目,这似乎是 XAMPP 获取其数据库的地方。我在~\Google Drive\College\...\Project\ 中创建了 Laravel 项目,因此它与我的 XAMPP 安装无关。如何使用 XAMPP 为我的 Laravel 项目管理/创建数据库?

我尝试直接在 Laravel Homestead 中安装 phpmyadmin,但它只是将其创建为另一个“项目”,就在我尝试使用它的项目旁边,如 ~\Google Drive\College\...\phpMyAdmin\。 (如果这是应该的,那么我如何使用该 phpMyAdmin 安装/实例来访问和修改我的项目的数据库?)

转到localhost:8000/home 可以在我的项目的公共目录中正确提供我的索引页面,但是转到localhost:8000/home/phpMyAdminlocalhost:8000/phpMyAdmin 无法访问phpMyAdmin。但是,在 XAMPP 中使用我的 Apache 和 mySQL 服务器时,我可以使用其数据库访问我的本地(但在项目外部)phpMyAdmin 安装。

我错过了哪些方面,无法使用数据库?我会很感激任何帮助。我整晚都在想办法解决这个问题。

【问题讨论】:

  • 可以劫持xampp的phpmyadmin配置,去xampp\phpmyadminconfig.inc.php。更改$cfg['Servers'][$i]['host'] = '127.0.0.1'; 以指向您的宅基地IP 地址。假设你的homestead is ready。或者你可以简单地install phpmyadmin to your homestead,它基本上是一个 ubuntu 14.04。

标签: php mysql database laravel phpmyadmin


【解决方案1】:

劫持 XAMPP 的 phpMyAdmin 配置无效。真正的问题是文件目录的正确映射,设置配置文件以匹配,然后重新配置以应用配置更改。甚至从未需要 XAMPP。详细地说,这是有效的配置:

在 Homestead.yaml 中:

folders: 
# The iMeetUp project folder is contained within the project folder specified here:
- map: C:/Users/****/******/******/Project Files/ 
  to: /home/vagrant/Code
# The above directory is where the local project folder should be mapped to within your Homestead VM. So the mapping works as follows: Map from local, to VM.

sites:
- map: imeetups.local
  to: /home/vagrant/Code/iMeetUp/public
# This mapping, when combined with the hosts file edit, enables you to access your app at http://imeetups.local:8000

databases:
- iMeetUp

将此添加到位于C:\Windows\System32\drivers\etchosts 文件中(确保使用您选择的代码编辑器(我的是Sublime Text)打开该文件,并且您在启用Run As Administrator 的情况下启动了该编辑器):

127.0.0.1 imeetups.local

在您的 Laravel 项目中,更改此文件的以下部分以匹配: iMeetUp/app/config/local/database.php:

  'mysql' => array(
        'driver'    => 'mysql',
        'host'      => '127.0.0.1',
        'database'  => 'iMeetUp',
        'username'  => 'homestead',
        'password'  => 'secret',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

使用的是宅基地数据库的用户名和密码,与documentation 中描述的相同。

最后,你必须重新初始化项目——不需要vagrant destroy整个事情。只需在命令提示符下的 Homestead 文件夹中运行此命令,无论您保存 Homestead 安装的位置:

Git bash init.sh

如果这不起作用,请确保您已安装 Git bash 并将其包含在 PATH 文件中。然后你可以从 Homestead 文件夹中运行init.sh,它应该会自动启动一个 Git bash 窗口。 在对话框中,选择 yes 以覆盖它将询问的所有 3 个配置文件。我首先错误地假设第一个文件询问是否覆盖 homestead.yaml 文件,但后来我注意到它指的是文件的缓存版本,所以你绝对应该对它说是而不是否。

初始化后,您需要重新配置整个项目。在您的 Homestead 目录中运行:

vagrant up --provision

或者,如果您的虚拟机当前正在运行,

vagrant reload --provision

这将强制项目重新应用其配置文件的缓存设置。 现在您的应用应该可以运行并连接到数据库,并且应该可以通过以下任一地址访问该站点:

http://localhost:8000
http://127.0.0.1:8000
http://imeetup.local:8000

另外,如果您打算使用 Laravel 内置的 Auth:: 框架,则需要更改框架以使用数据库。例如:

iMeetUp/app/config/auth.php:

'driver' => 'database', 
'model' => 'member', 
'table' => 'members',

该表应与数据库中的默认/主要用户/成员表匹配,并且模型应引用您在 iMeetUps/app/models 中使用的用户/成员模型文件的名称。

通过此设置,您的应用应正确使用 Homestead 的数据库。对于这个问题,我找不到任何广泛、清晰、详细的解决方案,所以我决定自己写一个。我希望这可以帮助其他人节省周末的时间,这是我花了多长时间才弄清楚的。

【讨论】:

    猜你喜欢
    • 2016-01-02
    • 2016-06-15
    • 2017-08-11
    • 2020-04-25
    • 2016-04-02
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    相关资源
    最近更新 更多