How to setup phpmyadmin on a Laravel Homestead box

2019-01-29 17:23发布

问题:

I installed it by running sudo apt-get install phpymyadmin and then running

sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html and sudo service nginx restart

but it's not working.

note: I didn't select any of apache2 or lighttpd options when installing.

回答1:

Option 1:

This will install the latest version of PhpMyAdmin from a shell script I've written. You are welcome to check it out on Github.

  1. Run the following command from your code/projects directory:

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

Option 2:

This will install PhpMyAdmin (not the latest version) from Ubuntu's repositories. Assuming that your projects live in /home/vagrant/Code :

  1. sudo apt-get install phpmyadmin Do not select apache2 nor lighttpd when prompted. Just hit tab and enter.

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

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

Note: If you encounter issues creating the symbolic link on step 2, try the first option or see Lyndon Watkins' answer below.

Final steps:

  1. Open the /etc/hosts file on your main machine and add:

    127.0.0.1  phpmyadmin.test
    
  2. Go to http://phpmyadmin.test:8000



回答2:

Step 1:

Go to the phpMyAdmin website, download the latest version and unzip it into your code directory

Step 2:

Open up homestead.yaml file and add these lines

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

Step 3:

Open your hosts file and add this line:

127.0.0.1 phpmyadmin.test

Step 4:

You may need to run vagrant provision to load the new configuration if vagrant is already running.


Thats it

Go to http://phpmyadmin.test:8000. It should work from there. Great thing about this method is that if you ever need to destroy your box, you won't ever have to set up phpMyAdmin again so long as you keep your homestead.yaml file and phpMyAdmin in your code directory.

===========

Important update from DaneSoul:

I tried this instruction on Homestead 5.3 and have met a problem "No input file specified" when trying open http://phpmyadmin.test.

And finnaly I found solution:

You need unpack phpmyadmin to

/home/vagrant/Code/phpMyAdmin/public

And write in homestead.yaml

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

So almost all the same, but this /public directory in paths makes it working!

Also, in my configuration I use http://phpmyadmin.test, not http://phpmyadmin.test:8000.

Update Note: Follow this article to change your domain extension.



回答3:

The answer from Nikos Gr worked for me; however I needed to amend steps 2 and 3 as my host system has issues creating the symlink.

I changed:

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

To:

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

(Couldn't comment on the original solution as my rep isn't high enough!)



回答4:

A simplified version of Jyeon's Answer. You don't need to share the ~/Code folder in the Homestead.yaml file:

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

Just download the latest version of PhpMyAdmin from PhpMyAdmin and put the unzipped file in the ~/Code/phpMyAdmin folder and just follow the 2 step here:

Step 1: Open up homestead.yaml file and add these lines

sites: - map: phpmyadmin.app to: /home/vagrant/Code/phpMyAdmin

Step 3: Open up your hosts file and add this line:

192.168.10.10 phpmyadmin.app

Now run the vagrant reload --provision command and you're good to go.

Open up the phpmyadmin.app address in your browser and you'll see the phpmyadmin interface.



回答5:

Install phpMyAdmin

  • SSH into Homestead vagrant box with vagrant ssh and type the following command:

     sudo apt-get install phpmyadmin
    
  • When prompted to select the Web server, select apache2 and press Enter, just to get pass it.

  • When prompted to config database for phpmyadmin with dbconfig-common, select Yes and press Enter.

  • When prompted for Password of the database's administrative user, enter secret and press Enter.

  • When prompted for MySQL application password for phpmyadmin, enter secret and press Enter.

  • When prompted for Password confirmation, enter secret again and press Enter.

Then Create and config site for 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

Adding phpMyAdmin.app to your hosts file

 127.0.0.1   phpmyadmin.app

Navigate to http://phpmyadmin.app:8000 and you should now see phpMyAdmin login page.

More info available here if you need it



回答6:

A variation on Nikos Gr's answer that seemed a bit simpler (in that it doesn't require a new symbolic link for each project on your Homestead box) and worked for me.

  1. Inside the Homestead box, run sudo apt-get install phpmyadmin. Don't select any of the options during install.
  2. On your host machine, add the following lines to your Homestead.yaml file:

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

  3. On your host machine, add the following line to your hosts file:

    192.168.10.10 phpmyadmin.dev

...and Homestead's phpMyAdmin will be available at phpmyadmin.dev



回答7:

You can install phpmyadmin automatically when you vagrant up or provision your homestead by adding the following snippet to your Homestead\scripts\homestead.rb file after # 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

Your hoomestead.rb file should now look somehow like this

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"

some other entries are truncated to keep this short

    # 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

Save file and run vagrant destroy then vagrant up or just vagrant reload

NB: This uses Nikos Gr script located here https://raw.githubusercontent.com/grrnikos/pma/master/pma.sh



回答8:

Finally it worked for me, few things I had to fix:

Homestead.yaml file:

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

I had to delete /public from the end. I installed phpmyadmin (after vagrant ssh command from Homestead directory) into the 'code' folder where the other projects are. When 'code' is with lowercase, it has to be everywhere so (or other way around): folder name, yaml file or even after installation performing these commands:

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


回答9:

For another alternative that I found super simple and that worked right out of the box I set up a new Nginx site from inside the Homestead box using the serve.sh script:

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

And then in there I dropped the one page successor to phpmyadmin, Adminer. I also renamed it to "index.php" to make it just work. Then after adding the adminer.app entry to my hosts file I was good to go.

Had not used a web based MySQL interface in years since I just didn't like maintaining phpMyAdmin but this one is sweet. One file (plus an optional CSS file if you want a nicer theme) and that is all. Easy to maintain and update.



回答10:

This is the most simple solution. No mapping and all needed.

  1. Download latest phpmyadmin version from here https://www.phpmyadmin.net/downloads

  2. Make a folder named phpmyadmin inside your main root/public folder and unzip phpmyadmin here.

  3. Run yourwebsite.com/phpmyadmin



回答11:

In my case accepted solution works ok except:

$ 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

For an unknown reason serve command files creating configuration file as seen in:

$ 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

Edit config:

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

and add 80 to Listen directive at line 2. Apply changes with:

$ sudo service nginx reload


回答12:

I installed phpMyAdmin from here

then put these settings in 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;

and opened via Apache (I had a xampp). In my case i placed phpMyAdmin in D:\xampp\htdocs\pma which allowed me to open at localhost/pma url.

Everything worked!



回答13:

adminer index file is located in adminer/adminer so try :

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


回答14:

As I couldn't comment on the Jyeon solution as my rep isn't high enough, I contribute with this answer; worked for me in Linux (openSUSE Leap) with Vagrant 1.8.1 and laravel/homestead (virtualbox, 0.4.0):

Step 1:

Go to phpMyAdmin website, download the latest version and unzip it into your project directory.

Step 2:

Add to your Homestead.yaml file the following lines:

folders:
    - map: ~/Code/phpMyAdmin
      to: /home/vagrant/Code/phpMyAdmin

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

Step 3:

Add to your hosts file the following line:

192.168.10.10   phpmyadmin.app

Step 4:

After start your vagrant environment and connects to machine via SSH, set your virtual host to work with phpMyAdmin with the command serve:

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

Thats it!

Go to http://phpmyadmin.app it should work, and you can login with your user and password homestead default. The great thing about this method is that you can set up your phpmyadmin so long as you keep it in your Homestead.yaml file and phpMyAdmin in your Code directory.