This script will automate the setup of a PHP developement box.
- Ubuntu 18.04 (LTS)
- Nginx 1.14+
- PHP 7.2+
- MariaDB 10.1+ (~MySQL 5.7+)
- Redis 5.0+
- Memcached
- Composer
- MacOS (Windows and Linux might work but aren't covered here)
- VirtualBox
- Vagrant
You clone this repo in a folder called Vagrant in your home directory.
git clone https://github.com/milhouse1337/vagrant-lemp.git ~/Vagrant
cd ~/VagrantYou need to remove the .git folder, it will cause conflicts with your own Git repos later.
rm -rf .gitOpen the following file:
~/Vagrant/_install/bootstrap.sh
- Update the MySQL root password.
- Validate if the rest of the script feels right for you and update as needed.
When everything seems fine you launch it. ๐
vagrant upYou will have to wait a few seconds (minutes) โ๏ธ for the script to complete. When everything is done you have a complete LEMP setup to play with. ๐ค
Create the following folders and PHP file:
mkdir -p ~/Vagrant/127.0.0.1/public
echo "<?php phpinfo(); ?>" > ~/Vagrant/127.0.0.1/public/index.phpOpen the link on your browser:
You should see a phpinfo() output. ๐
Note: If you want Vagrant to listen on port 80 (or 443 for TLS) you might have to forward the ports with pfctl (the built-in MacOS firewall). More information on this Stack Overflow if you want to know why and how to fix it.
We use the $host variable from Nginx on the default vhost so the document root is /var/www/{$host}/public for the VM and ~/Vagrant/{$host}/public on your local machine. This emulates the same behavior as VirtualDocumentRoot from Apache but for Nginx.
This means you can use ANY hostname you want (make sure it resolves to 127.0.0.1) then you create the above folder structure (~/Vagrant/{$hostname}/public) to make it work, pretty cool! ๐
vagrant up # Boot. (install if not already provisioned)
vagrant ssh # Login as user "vagrant".
vagrant reload # Reboot.
vagrant halt # Poweroff.
vagrant destroy # Delete.The MIT License (MIT). Please see License File for more information.