Welcome to this course where I you will teach how to create a custom development environment that fits your needs with Vagrant and Virtualbox.
My name is Valentine, I am a web developer , I have been working with Vagrant for some years now and I will be leading you through the course.
Before Vagrant was introduced, the preferred method of developing a web application was either by uploading files to a web server or by manually installing and configuring all the software needed locally on the development machine (usually Apache, MySQL, PHP) or using already packed and ready to use solutions such as XAMPP.
Unfortunately in the recent years the number of technologies used to create web applications has increased dramatically, having multiple relational and nonrelational databases (just to mention PostgreSQL, Redis, Cassandra), different web servers (Apache, Nginix), messaging queues (like RabbitMQ) or search platforms like Solr and much more. Not too mention all the different configurations.
Vagrant has emerged as part of the solution for this problem and together with Virtualbox has become the defacto standard for building local development environments. Now I cannot imagine doing it the “old way” anymore.
If you are currently using PHP, think for a second what it would mean for your current setup to use PHP7 instead of PHP 5.5? How about just editing a configuration file, typing a command and while automation does its work, you grab a cup of coffee and relax?
Vagrant brings the development environment setup time to a minimum, increases productivity and introduces the idea of disposable compute resources (similar to the cloud) but for desktop computers by encouraging the use of automation.
Even if your needs are not that complex (yet), you will still benefit from this course, by improving your workflow, learning more about Linux environments and maybe changing the way you see things.
Together we will install all the tools needed, understand their purpose and learn to maintain them but most valuably we will be creating custom configurations which fit you own needs using an online GUI.
The goal of this course is not to make you a Vagrant expert, but to give you enough information in order to feel comfortable working with Vagrant as a web developer. I will also try to keep you engaged with a lot of practical exercises and quizzes.
Feel free to look over the course description and I am looking forward to seeing you inside.
In this lecture I will give a short introduction to the course, tell you how you can get the most out of it and will directly start by showing how it is possible to create a virtual machine and to install WordPress by investing just 2 minutes of work.
In this lecture we will look over the course objectives:
We will do a lot of exercises, to make sure that you learn as much as possible.
A virtual machine is a machine that sits on top of your own machine. The operating system has no idea that it is not working directly with a real computer.
In this lecture you will lear the most important advantages of virtual machines (and disadvantages of (X)AMP solutions).
In this lecture we have a look at some of the disadvantages of using a virtual machine (VM).
Advantages and disadvantages of using virtual machines
In this lecture we will briefly introduce the tools that we will use throughout this course: Vagrant and Virtualbox, try to understand what each is doing and why we need them and after this proceed with the installation.
I will guide you in this lecture through the installation process for Windows. Together we will install Virtualbox, Vagrant, Git and a proper text editor, such as atom.io or Notepad++.
I will guide you in this lecture through the installation process for macOS. Together we will install Virtualbox, Vagrant and a proper text editor, such as atom.io.
Briefly explaining that some examples might not work due to different configurations, software bugs etc.
This is the first exercise where we do an integration test between your computer, Vagrant and Virtualbox to see if all component work properly together.
With this lecture we conclude this section. Any encountered problems while using Vagrant and Virtualbox are welcome.
This lecture will present the basics of working with the Virtualbox Manager, by creating, inspecting, editing and removing virtual machines.
This lecture will discuss a couple of terms, such as machine, virtual machine, host OS, guest OS.
In this exercise we will install a virtual appliance in Virtualbox containing a Windows installation. Additionally working with snapshots and saving the current state will be presented as well.
This lecture introduces VBoxManage, a CLI tool which can be used to control Virtualbox.
This lecture introduces the most important command while dealing with the Vagrant command-line interface (Vagrant CLI). We will discuss vagrant status, up, halt, suspend/resume, version, reload.
This lecture will explain the Vagrantfile, which is a configuration file that instructs Vagrant how to create the virtual environment
This lecture will discuss the advantages and disadvantages of using shared folders with Vagrant.
In this lecture we will have a look at networking in Vagrant.
If you want to access with your browser the web server that is running on the virtual machine, you need to expose it to the outside world.
Vagrant offers 3 networking options to achieve that: forwarded ports, private networks and public networks.
In this lecture we will discuss the DOs and DONTs of sharing your VM.
You can either share the Vagrantfile (preferably git) or repackage your virtual machine as a box.
In this lecture I will present some general advice regarding updating and maintaining Vagrant.
with vagrant status you can check if your installation is still up to date.
recommend making a note of your current version (Vagrant and/or Virtualbox)
needs to remain compatible with virtualbox
This lecture will try to explain the meaning of the term "provisioning".
Automated provisioning shares many of the benefits: easy to use, repeating leads to the same result and brings the production configuration in sync with the development configuration.
This lecture will introduce you to shell scripts first, doing a basic example. If already familiar with shell scripting, this will give you the opportunity to see very fast some results. Shell scripts are easier to understand.
This lecture will introduce puphpet.com and will demonstrate a simple provisioning example.
In this lecture I will introduce you to the section where we will create from scratch a custom virtual environment and automatically install Apache, MySQL, PHP and WordPress.
This lecture will discuss the available web servers (Ngnix and Apache) and the programming languages supported.
Together we will install and configure Apache and PHP.
In this lecture we will install additional PHP modules and make some php.ini settings.
In this lecture we will discuss the available relational database engines and install MariaDB, a drop-in replacement for MySQL.
Using a custom bash script, in this lecture we will automatically install WordPress.
In this lecture we are going to use version control (Git and Github), in order to keep track of the changes i the project.
In this lecture we will review the steps needed in order to maintain such a custom configuration on the long run.
Sometimes things do not work as expected, so this is why it is important to know where to search for help. In this lecture we will do exactly that.
Introduce the private support group.
Enterprise software developer with a strong background in computer science.
I am a former member of the Joomla! CMS Bug Squad, Joomla! Stack Exchange moderator and current member in the TYPO3 CMS Security Team. As you can guess, I am dedicated software developer and open source lover.
I decided to join Udemy because of my desire to share my know-how in specific areas.