3h 52m – Beginner
Need a fast, powerful, and free development environment? Learn how to set up a virtual Linux web server on your Mac or Windows computer quickly—no additional formatting, dual booting, or hardware required. Author Jon Peck shows you how to set up a virtual machine with VirtualBox, download and install a Linux server, and then configure the additional LAMP stack elements: Apache, MySQL, and PHP. The course also describes how to create a database and users, install development tools like Xdebug, manage your source code with Git, and troubleshoot common installation and configuration issues.
The demonstrations are performed with the Ubuntu LTS distribution of Linux, but the skills taught here are also applicable to other Linux distributions. Every command is described in detail in context, and a comprehensive quick reference is provided for convenience.
Topics include:
What is Linux, and why should I use it?
What’s a LAMP, and why does it matter?
Creating and configuring a virtual machine
Working with the Linux command line
Configuring the servers, including Apache virtual hosts
Building a development server dashboard
Using PHP package managers like Composer and PEAR
Installing Drupal, WordPress, and more on the server
Self-hosting Git repositories, including a web interface
Enhancing the server with debugging and profiling
Exporting a virtual appliance to use on another machine
Server troubleshooting techniques
Introduction – 6m 37s
Welcome – 45s
Exercise files – 2m 25s
What you should know – 3m 27s
1. Getting Started – 22m 55s
Where should I be developing? – 6m 56s
What is Linux, and why should I use it? – 7m 14s
Introducing system virtual machines with VirtualBox – 3m 32s
What’s a LAMP, and why does it matter? – 5m 13s
2. Creating a Virtual Machine – 17m 39s
Preparing your workstation – 2m 10s
Creating the virtual machine (VM) – 3m 19s
Configuring the VM – 4m 55s
Installing Ubuntu Server 14.04 LTS – 7m 15s
3. Using the Server Command-Line Interface – 30m 6s
Talking to yourself with local networking – 6m 17s
Logging in using Secure Shell (SSH) – 4m 19s
Using SSH with and without a password on Mac – 5m 42s
Using SSH with and without a password on Windows – 3m 39s
Introducing the command-line interface – 10m 9s
4. Initial Server Configuration – 34m 33s
Upgrading and installing packages – 4m 38s
Installing VirtualBox Guest Additions – 3m 1s
Configuring group permissions for access – 3m 1s
Configuring the Apache web server – 7m 9s
Configuring PHP for development – 7m 6s
Configuring the MySQL database server – 5m 41s
Installing the Exim email server – 3m 57s
5. Building a Development Server Dashboard – 17m 53s
Installing phpMyAdmin to manage databases – 4m 2s
Creating databases and users – 3m 23s
Creating a server dashboard – 4m 31s
Installing Ajenti to monitor your server – 5m 57s
6. Installing PHP Applications for Site Development – 26m 6s
Installing Composer and PEAR for PHP dependency management – 3m 30s
Installing community PHP extensions with PECL – 1m 36s
Installing WordPress and WP-CLI – 3m 57s
Installing Drupal and Drush – 2m 39s
Installing Symfony – 3m 2s
Installing CakePHP and DebugKit – 5m 50s
Installing CodeIgniter – 2m 30s
Best practices for installing PHP frameworks and applications – 3m 2s
7. Source Code Management – 27m 21s
Introducing Git – 2m 16s
Hosting Git repositories with gitolite – 6m 29s
Browsing your git repositories with gitweb – 7m 9s
Adding the dashboard to Git using SourceTree – 2m 5s
Automatically storing server config with etckeeper – 9m 22s
8. Enhancing the Development Server – 12m 19s
Installing Xdebug for debugging – 3m 7s
Installing webgrind for profiling – 5m 22s
Installing Memcached data and object caching – 1m 46s
Installing the Redis key-value store – 2m 4s
9. Advanced VirtualBox Techniques – 10m 35s
Using snapshots to turn back time – 3m 53s
Exporting a virtual appliance to use on another host – 3m 36s
Automating dev environment creation with Vagrant – 3m 6s
10. Troubleshooting – 19m 52s
Troubleshooting SSH – 5m 31s
Troubleshooting Apache – 4m 56s
Troubleshooting MySQL – 5m 0s
Troubleshooting PHP – 2m 25s
Troubleshooting Exim – 2m 0s
Conclusion – 6m 45s
Keeping the server and VirtualBox up to date – 1m 55s
Best practices for managing multiple development projects – 1m 36s
Where to go from here – 2m 11s
Farewell – 1m 3s