Install Vagrant and VirtualBox.
Go to https://app.vagrantup.com/boxes
and choose vagrant box that suits you best.
After that you need to create vagrant file by typing in console:
vagrant init ubuntu/xenial64
– ubuntu/xenial64 – stands for the name of the box you selected
You will notice that file was created in your folder. Open it and replace it with this.
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| # Box Settings config.vm.box = "ubuntu/xenial64" # Provider Settings config.vm.provider "virtualbox" do |vb| vb.memory = 2048 vb.cpus = 2 end # Network Settings # config.vm.network "forwarded_port", guest: 80, host: 8080 # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" config.vm.network "private_network", ip: "192.168.33.10" # config.vm.network "public_network" # Folder Settings config.vm.synced_folder "../aqualife", "/var/www/html/", :nfs => { :mount_options => ["dmode=777","fmode=666"] } # Provision Settings # config.vm.provision "shell", inline: <<-SHELL # apt-get update # apt-get install -y apache2 # SHELL end
- aqualife - is the name of the folder in localmachine that will be synced with virtualBox.
Go back to console and write:
vagrant up
There are useful vagrant commands like
-vagrant destroy (will delete the box)
-vagrant suspend (will suspend the virtualBox)
-vagrant resume (will resume the virtualBox)
-vagrant reload (will reload the virtualBox)
-vagrant ssh (will shh to container)
To shh to your container type:
vagrant ssh
So we are in!!!Now we need to update repositories and install LAMP.
sudo apt update sudo apt install -y git sudo apt install -y apache2 a2enmod rewrite sudo apt-add-repository ppa:ondrej/php sudo apt update sudo apt install -y php7.2 sudo apt install -y libapache2-mod-php7.2 sudo service apache2 restart sudo apt install -y php7.2-common sudo apt install -y php7.2-mcrypt sudo apt install -y php7.2-zip debconf-set-selections <<< 'mysql-server mysql-server/root_password root' debconf-set-selections <<< 'mysql-server mysql-server/root_password_again root' sudo apt install -y mysql-server sudo apt install -y php7.2-mysql sudo apt install -y php-xml sudo service apache2 restart
Ideal will be to insert these commands (without sudo) in vagrant file between "config.vm.provision "shell", inline: <<-SHELL" and "SHELL". So when we start the vagrant these command to be executed and LAMP stack to be ready for use. To make it possible to open the apache server outside the container, you need to add the private network IP from configuration file to /etc/hosts in your local machine like this:
192.168.33.10 vgdemo.local www.vgdemo.local
Now from browser you can open vgdemo.local and continue working the project.