【问题标题】:How do I set up phpMyAdmin on a Laravel Homestead box?如何在 Laravel Homestead 盒子上设置 phpMyAdmin?
【发布时间】:2014-07-10 09:14:57
【问题描述】:

我通过运行sudo apt-get install phpymyadmin 安装它,然后运行

sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/htmlsudo service nginx restart

但它不起作用。

注意:安装时我没有选择任何 apache2 或 lighttpd 选项。

【问题讨论】:

    标签: nginx laravel laravel-4 phpmyadmin


    【解决方案1】:

    选项 1:

    这将从我编写的 shell 脚本安装最新版本的 PhpMyAdmin。欢迎您查看on Github

    1. 从您的代码/项目目录运行以下命令:

       curl -sS https://raw.githubusercontent.com/grrnikos/pma/master/pma.sh | bash
      

    选项 2:

    这将从 Ubuntu 的存储库安装 PhpMyAdmin(不是最新版本)。假设您的项目位于/home/vagrant/Code

    1. sudo apt-get install phpmyadmin 提示时不要选择 apache2 或 lighttpd。只需点击标签并输入。

    2. sudo ln -s /usr/share/phpmyadmin/ /home/vagrant/code/phpmyadmin

    3. cd ~/Code && serve phpmyadmin.test /home/vagrant/code/phpmyadmin

    注意:如果您在第 2 步创建符号链接时遇到问题,请尝试第一个选项或查看下面 Lyndon Watkins 的回答。

    最后的步骤:

    1. 在你的主机上打开/etc/hosts文件并添加:

       127.0.0.1  phpmyadmin.test
      
    2. 转到http://phpmyadmin.test:8000

    【讨论】:

    • @Nikos Gr 有没有像这样简单的方法来更新到新的 phpmyadmin 版本?
    • 我得到的链接错误为“ln: failed to create symbolic link ‘phpmyadmin’: Protocol error”。所以我在第 2 步和第 3 步中将链接目标更改为 home/vagrant/phpmyadmin”,一切都开始运行良好。
    • 最初一切正常,但是一旦我安装了一个新项目并且不得不运行homestead up --provision服务结束,通过将phpmyadmin.app映射到/home/Code/vagrant/phpmyadmin来解决它
    • 不工作,安装工作但在phpmyadmin.app:8000 我看到的只是 Laravel 欢迎页面。
    • 不要使用serve 命令。只需在 Homstead.yaml 中添加 phpmyadmin 站点,然后运行 ​​vagrant provisionhomestead provision,就可以了。并且不要忘记更新您的主机文件。
    【解决方案2】:

    第 1 步:

    phpMyAdmin网站,下载最新版本并解压到你的代码目录

    第 2 步:

    打开homestead.yaml 文件并添加这些行

    folders:
        - map: /Users/{yourName}/Code/phpMyAdmin
          to: /home/vagrant/Code/phpMyAdmin
    sites:
        - map: phpmyadmin.test
          to: /home/vagrant/Code/phpMyAdmin
    

    第 3 步:

    打开你的主机文件并添加这一行:

    127.0.0.1 phpmyadmin.test
    

    第四步:

    如果 vagrant 已经在运行,您可能需要运行 vagrant provision 来加载新配置。


    就是这样

    转到http://phpmyadmin.test:8000。它应该从那里开始工作。这种方法的好处在于,如果您需要销毁您的盒子,只要您将 homestead.yaml 文件和 phpMyAdmin 保存在您的代码目录中,您就不必再次设置 phpMyAdmin。

    ============

    来自 DaneSoul 的重要更新

    我在 Homestead 5.3 上尝试了此指令,但在尝试打开 http://phpmyadmin.test 时遇到了“未指定输入文件”的问题。

    最后我找到了解决方案:

    你需要解压phpmyadmin到

    /home/vagrant/Code/phpMyAdmin/public
    

    并写信homestead.yaml

    - map: phpmyadmin.test
      to: /home/vagrant/Code/phpMyAdmin/public
    

    所以几乎都一样,但是路径中的这个 /public 目录使它工作!

    另外,在我的配置中,我使用http://phpmyadmin.test,而不是http://phpmyadmin.test:8000

    更新说明:按照此article 更改您的域扩展。

    【讨论】:

    • 我试过了,phpmyadmin.app:8000 加载到 laravel 主页,就像homestead.app 一样。我可能会错过什么。
    • 尝试运行 vagrant provisionvagrant reload --provision 并尝试加载 phpmyadmin.app:8000。
    • 优雅的解决方案,使用 Homestead 开箱即用。只需要记住默认用户名/密码是 Homestead/secret,而不是 root/[null]!
    • 好的,我设法找到了至少对我来说是什么问题。看起来 windows 出于某种原因不喜欢 .app 并且 nginx 没有路由到正确的文件夹,因为请求不是来自 phpmyadmin.app 所以它默认到 laravel 文件夹。我所做的只是将 nginx 配置更改为使用 phpmyadmin 而不是 phpmyadmin.app。 SSH 进入机器并运行sudo nano /etc/nginx/sites-available/phpmyadmin.app 编辑这一行server_name phpmyadmin.app; 到这个server_name phpmyadmin; 就是这样。也不要忘记你的主机文件现在是192.168.10.10 phpmyadmin
    • 如果用户名/密码 'Homestead/secret' 不起作用,试试这个 'homestead/secret',我的工作是小写的。希望它可以帮助某人。谢谢
    【解决方案3】:

    Nikos Gr 的回答对我有用;但是我需要修改第 2 步和第 3 步,因为我的主机系统在创建符号链接时遇到问题。

    我变了:

    sudo ln -s /usr/share/phpmyadmin/ /home/vagrant/Code/phpmyadmin
    cd ~/Code && serve phpmyadmin.app /home/vagrant/Code/phpmyadmin
    

    收件人:

    cd ~/Code && serve phpmyadmin.app /usr/share/phpmyadmin/
    

    (无法评论原始解决方案,因为我的代表不够高!)

    【讨论】:

      【解决方案4】:

      Jyeon's Answer 的简化版。您无需共享 Homestead.yaml 文件中的 ~/Code 文件夹:

      folders:
          - map: /Users/{yourName}/Code/phpMyAdmin
            to: /home/vagrant/Code/phpMyAdmin
      

      只需从PhpMyAdmin 下载最新版本的 PhpMyAdmin 并将解压缩的文件放在~/Code/phpMyAdmin 文件夹中,然后按照此处的 2 步操作即可:

      第 1 步: 打开homestead.yaml 文件并添加这些行

      网站: - 地图:phpmyadmin.app 到:/home/vagrant/Code/phpMyAdmin

      第 3 步: 打开你的主机文件并添加这一行:

      192.168.10.10 phpmyadmin.app

      现在运行 vagrant reload --provision 命令,一切顺利。

      在浏览器中打开 phpmyadmin.app 地址,您将看到 phpmyadmin 界面。

      【讨论】:

      • 这是我开始工作的第一种方式,使用@Nikos 建议的步骤 1 中的脚本得到了一个错误的网关
      【解决方案5】:

      安装 phpMyAdmin

      • 使用 vagrant ssh SSH 进入 Homestead vagrant box 并输入以下命令:

         sudo apt-get install phpmyadmin
        
      • 当提示选择 Web 服务器时,选择 apache2 并按 Enter 键即可通过。

      • 当提示使用 dbconfig-common 为 phpmyadmin 配置数据库时,选择 Yes 并按 Enter。

      • 当提示输入数据库管理用户的密码时,输入 secret 并按 Enter。

      • 当提示输入 phpmyadmin 的 MySQL 应用程序密码时,输入 secret 并按 Enter。

      • 当提示输入密码确认时,再次输入 secret 并按 Enter。

      然后为 Nginx 创建和配置站点

      sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html/phpmyadmin
      
      cd /etc/nginx/sites-available
      sudo cp homestead.app phpmyadmin.app
      
      sudo sed -i 's/homestead.app/phpmyadmin.app/g' /etc/nginx/sites-available/phpmyadmin.app
      sudo sed -i 's/home\/vagrant\/Code\/Laravel\/public/usr\/share\/nginx\/html\/phpmyadmin/g' /etc/nginx/sites-available/phpmyadmin.app
      
      sudo ln -s /etc/nginx/sites-available/phpmyadmin.app /etc/nginx/sites-enabled/phpmyadmin.app
      sudo service nginx restart
      sudo service php5-fpm retart
      

      将 phpMyAdmin.app 添加到您的主机文件

       127.0.0.1   phpmyadmin.app
      

      导航到http://phpmyadmin.app:8000,您现在应该会看到 phpMyAdmin 登录页面。

      More info available here if you need it

      【讨论】:

      • 它不起作用。你确定sed 命令正确吗?
      • http://phpmyadmin.app:8000 返回我在Homestead.yaml 中设置的第一个服务器块(vhost)。我还尝试创建一个简单的服务器块,其根位于usr/share/nginx/html,但 nginx 抛出 403 错误。这对你有用吗?
      • 您在尝试这些步骤之前是否销毁并重建了盒子?还是您从当前的框中尝试过?
      • 不,没有理由这样做,因为Homestead.yaml 文件没有任何变化
      • 好的,我想出了一个更简单的方法,我已经在这里发布了。感谢您的帮助。
      【解决方案6】:

      Nikos Gr 的 answer 的一个变体,看起来更简单一些(因为它不需要为您的 Homestead 盒子上的每个项目创建新的符号链接)并且对我有用。

      1. 在 Homestead 框内,运行 sudo apt-get install phpmyadmin。在安装过程中不要选择任何选项。
      2. 在您的主机上,将以下行添加到您的 Homestead.yaml 文件中:

        - map: phpmyadmin.dev to: /usr/share/phpmyadmin

      3. 在您的主机上,将以下行添加到您的 hosts 文件中:

        192.168.10.10 phpmyadmin.dev

      ...Homestead 的 phpMyAdmin 将在phpmyadmin.dev 提供

      【讨论】:

        【解决方案7】:

        您可以在vagrant upprovision 您的宅基地时自动安装phpmyadmin,方法是将以下sn-p 添加到您的Homestead\scripts\homestead.rb 文件中# Update Composer On Every Provision

        # Install phpMyAdmin on every provision
            config.vm.provision "shell" do |s|
              s.inline = "curl -sS https://raw.githubusercontent.com/grrnikos/pma/master/pma.sh | sh"
            end
        

        您的 homestead.rb 文件现在应该看起来像这样

        class Homestead
          def Homestead.configure(config, settings)
            # Configure The Box
            config.vm.box = "laravel/homestead"
            config.vm.hostname = "homestead"
        
            # Configure A Private Network IP
            config.vm.network :private_network, ip: settings["ip"] ||= "192.168.10.10"
        

        其他一些条目被截断以保持简短

            # Update Composer On Every Provision
            config.vm.provision "shell" do |s|
              s.inline = "/usr/local/bin/composer self-update"
            end
        
            # Install phpMyAdmin on every provision
            config.vm.provision "shell" do |s|
              s.inline = "curl -sS https://raw.githubusercontent.com/grrnikos/pma/master/pma.sh | sh"
            end
        
            # Configure Blackfire.io
            if settings.has_key?("blackfire")
              config.vm.provision "shell" do |s|
                s.path = "./scripts/blackfire.sh"
                s.args = [settings["blackfire"][0]["id"], settings["blackfire"][0]["token"]]
              end
            end
          end
        end
        

        保存文件并运行vagrant destroy 然后vagrant up 或只是vagrant reload

        注意:这里使用位于 https://raw.githubusercontent.com/grrnikos/pma/master/pma.sh 的 Nikos Gr 脚本

        【讨论】:

          【解决方案8】:

          最后它对我有用,我必须解决一些问题:

          Homestead.yaml 文件:

          - map: phpmyadmin.test
            to: /home/vagrant/code/phpmyadmin/
          

          我不得不从最后删除/public。我将 phpmyadmin(在 Homestead 目录中的 vagrant ssh 命令之后)安装到其他项目所在的“代码”文件夹中。当“代码”是小写时,它必须无处不在(或其他方式):文件夹名称、yaml 文件,甚至在安装后执行这些命令:

          sudo ln -s /usr/share/phpmyadmin/ /home/vagrant/code/phpmyadmin
          cd ~/code && serve phpmyadmin.test /home/vagrant/code/phpmyadmin
          

          【讨论】:

            【解决方案9】:

            我在这里写作的方式是为了让我当地的流浪者环境更适合工作。

            第 1 步 - 启动 vagrant 并登录

            vagrant up 
            vagrant ssh
            

            第 2 步 - 转到正确的目录。 (取决于你的文件树)

            cd <VagrantDirectory>
            

            第 3 步 - 安装 phpmyadmin。

            curl -sS https://raw.githubusercontent.com/grrnikos/pma/master/pma.sh | bash
            

            第 4 步 - 配置 Homestead.yaml

            map: phpmyadmin.test
            to: /home/vagrant/<VagrantDirectory>/phpmyadmin
            

            第 5 步 - 重新加载 vagrant。

            vagrant reload
            

            第 6 步 - 配置 phpmyadmin

            转到您的 phpmyadmin 目录。将config.sample.inc.php复制到config.inc.php

            cp config.sample.inc.php config.inc.php
            

            第 7 步 - 使用文本编辑器编辑 config.inc.php 并将新配置放在那里。

            //Comment out the old configuration that was already here.
            $cfg['Servers'][$i]['auth_type'] = 'config';
            $cfg['Servers'][$i]['host'] = 'localhost'; // Also works with the IP address.
            $cfg['Servers'][$i]['user'] = 'homestead'; // Username of MySQL, Default is homestead.
            $cfg['Servers'][$i]['password'] = 'secret'; // Password. Default password is secret
            $cfg['Servers'][$i]['extension'] = 'mysqli';
            $cfg['Servers'][$i]['compress'] = false;
            $cfg['Servers'][$i]['AllowNoPassword'] = false;
            $cfg['CheckConfigurationPermissions'] = false; // Since you are on local, Leave this false.
            

            第 8 步 - 现在在您最喜欢的浏览器上浏览新的 PHPMyAdmin。

            http://phpmyadmin.test

            【讨论】:

              【解决方案10】:

              对于另一种我发现超级简单且开箱即用的替代方法,我使用 serve.sh 脚本从 Homestead 框内设置了一个新的 Nginx 站点:

              服务 adminer.app /home/vagrant/Code/adminer/

              然后我将一页后继者放到 phpmyadmin,Adminer。我还将它重命名为“index.php”以使其正常工作。然后将 adminer.app 条目添加到我的主机文件后,我就可以开始了。

              由于我只是不喜欢维护 phpMyAdmin,所以多年来没有使用基于 Web 的 MySQL 界面,但这个界面很不错。一个文件(如果你想要一个更好的主题,加上一个可选的 CSS 文件),仅此而已。易于维护和更新。

              【讨论】:

              • 嘿,我试过这个,当我转到 adminer.app:8000 时得到 403。知道为什么会这样吗?
              【解决方案11】:

              由于我的代表不够高,我无法对 Jyeon 解决方案发表评论,因此我贡献了这个答案;在 Linux (openSUSE Leap) 中使用 Vagrant 1.8.1 和 laravel/homestead (virtualbox, 0.4.0) 为我工作:

              第 1 步:

              phpMyAdmin网站,下载最新版本并解压到你的项目目录中。

              第 2 步:

              在您的 Homestead.yaml 文件中添加以下行:

              folders:
                  - map: ~/Code/phpMyAdmin
                    to: /home/vagrant/Code/phpMyAdmin
              
              Sites:
                  - map: phpmyadmin.app
                    to: /home/vagrant/Code/phpMyAdmin
              

              第 3 步:

              在您的主机文件中添加以下行:

              192.168.10.10   phpmyadmin.app
              

              第 4 步:

              在启动您的 vagrant 环境并通过 SSH 连接到机器后,使用命令 serve 将您的虚拟主机设置为与 phpMyAdmin 一起使用:

              cd ~/Code
              serve phpmyadmin.app /home/vagrant/Code/phpMyAdmin/
              

              就是这样!

              转到http://phpmyadmin.app 它应该可以工作,您可以使用您的用户名和密码 homestead 默认登录。这种方法的好处是你可以设置你的 phpmyadmin,只要你把它保存在你的 Homestead.yaml 文件和你的 Code 目录中的 phpMyAdmin。

              【讨论】:

              • 我不知道为什么这被否决了。这是正确的答案,对我有用。我唯一推荐的是不要运行serve 命令,只需运行vagrant provision,因为您编辑了 Homestead.yaml 文件并打开 phpmyadmin.app:8000
              【解决方案12】:

              这是最简单的解决方案。无需映射,一切都需要。

              1. 从这里下载最新的 phpmyadmin 版本https://www.phpmyadmin.net/downloads

              2. 在您的主根/公共文件夹中创建一个名为 phpmyadmin 的文件夹,然后在此处解压缩 phpmyadmin。

              3. 运行yourwebsite.com/phpmyadmin

              【讨论】:

                【解决方案13】:

                在我的情况下,接受的解决方案工作正常,除了:

                $ cd ~/Code && serve phpmyadmin.app /home/vagrant/Code/phpmyadmin
                dos2unix: converting file /vagrant/scripts/serve.sh to Unix format ...
                 * Restarting nginx nginx                                                                                                                            [fail] 
                php5-fpm stop/waiting
                php5-fpm start/running, process 4112
                

                由于未知原因,提供命令文件创建配置文件,如下所示:

                $ sudo tail -f /var/log/nginx/error.log 
                2015/03/18 11:54:16 [emerg] 3671#0: invalid number of arguments in "listen" directive in /etc/nginx/sites-enabled/phpmyadmin.app:2
                

                编辑配置:

                $ editor /etc/nginx/sites-enabled/phpmyadmin.app
                

                并在第 2 行将 80 添加到 Listen 指令。应用更改:

                $ sudo service nginx reload
                

                【讨论】:

                  【解决方案14】:

                  adminer 索引文件位于adminer/adminer 所以试试:

                  serve adminer.app /home/vagrant/Code/adminer/adminer
                  

                  【讨论】:

                    【解决方案15】:

                    我从here安装了phpMyAdmin

                    然后将这些设置放入config.inc.php

                    /* Server parameters */
                    $cfg['Servers'][$i]['host'] = '127.0.0.1';
                    $cfg['Servers'][$i]['port'] = '33060';
                    $cfg['Servers'][$i]['compress'] = false;
                    $cfg['Servers'][$i]['AllowNoPassword'] = false;
                    

                    并通过 Apache 打开(我有一个 xampp)。在我的情况下,我将 phpMyAdmin 放在 D:\xampp\htdocs\pma 中,这让我可以在 localhost/pma url 打开。

                    一切正常!

                    【讨论】:

                      猜你喜欢
                      • 2018-07-13
                      • 2020-04-25
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2016-01-09
                      相关资源
                      最近更新 更多