Hands-on Linux: Self-Hosted WordPress for Linux Beginners
4.8 (784 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
2,978 students enrolled

Hands-on Linux: Self-Hosted WordPress for Linux Beginners

A practical, project-based crash course to take you from 'Linux Beginner' to 'Junior Sysadmin'
4.8 (784 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
2,980 students enrolled
Created by David Cohen
Last updated 11/2018
English [Auto]
Current price: $16.99 Original price: $24.99 Discount: 32% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 8.5 hours on-demand video
  • 1 article
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Learn basic Linux system administration by setting up a WordPress hosting platform
  • Configure a production-grade WordPress install on Linux
  • Set up and configure the popular MySQL database
  • Tune webserver performance and set up caching for lightning-fast page loads
  • Be comfortable working with an nginx web server
  • Configure monitoring for your web hosting server
  • Create and manage Linux system users
  • Manage Linux file permissions
  • Understand the basics of how HTTP, the Web protocol, works
  • Understand basic and more advanced Bash shell concepts and skills
  • Schedule commands to run periodically on Linux with Cron
  • Manage remote servers using SSH
  • Automate repetitive tasks with Ansible, a powerful automation and configuration management tool
  • Create and Restore website backups, both on the filesystem and in the MySQL database
  • Effectively perform security hardening on Linux servers and services
  • Know what Linux is
  • Know what servers and web hosting are
  • Know what an IP address and a domain name are
  • Have a working Internet connection and a Windows, Macintosh, or Linux computer to follow along on
  • If you already have a webserver somewhere, great! If not, I'll show you how to set one up for around $5/month.

Learn Linux and System Administration basics in a practical, project-based course designed to get you *using* new skills as soon as you learn them.

By the time you finish, this course will have taken you from 'Linux beginner' to the skill level of 'Junior Sysadmin,' and you'll have a production-grade WordPress hosting platform that you can use to host any number of WordPress sites for friends, family, and clients.

Other courses focus on slow memorization of theory, which doesn't always produce the best results. This one throws you into the mix from the word "go." Even if you've never installed Linux before, you'll be installing and configuring software from the command line, managing system services, working with a remote server, hardening security, scheduling backups and testing your disaster recovery plan, performing basic scripting and automation, and setting up monitoring for your infrastructure.

While you're doing this, you'll get a slow drip of theory, giving you just enough background to hang your new practical knowledge on and ensuring that you know what's going on underneath the covers.

Over the course of a few afternoons, you'll have completed a serious (and seriously useful) project, understand the basics of Linux and system administration, and be comfortable on the Linux terminal; ready to take on larger and more complicated projects or build on the foundation of your WordPress hosting platform.

Who this course is for:
  • This course assumes little to no knowledge of Linux, and will teach the basics of Linux and Infrastructure Engineering.
  • The course is designed for people who learn technical material best when it's presented in a practical, project-based way.
  • Aspiring Linux, Cloud Infrastructure, or Devops Engineers
  • The course is designed for people who want to set up a professional-grade WordPress hosting platform (running a WordPress blog or e-commerce site), NOT for people who just want to get a simple WordPress site set up for blogging.
Course content
Expand all 72 lectures 08:24:29
+ Introduction
4 lectures 19:03

If you want to learn Linux and basic system administration, and you like to learn using a practical, real-life project to get usable skills fast, this is the course for you.

Preview 02:50

An introduction to the course, along with a quick overview of the requirements/prerequisites you'll need to make the most out of it.

Preview 01:51

A bit about the instructor and the theory behind the course.

Preview 04:52

A full introduction to what will be covered in the course.

Preview 09:30
+ Let's Get Started
6 lectures 21:31

If you're not using Linux as your everyday operating system, you will want to use Virtualbox to set up a Linux install on your existing Windows or Mac system. This will make it possible to launch a virtual Linux operating system from your desktop like any other application.

Throughout the course, we'll be using this Linux virtual machine (VM) as our administration and development platform for the practical part of this course (administrating a live web server).

Option 1: Install Virtualbox

Just to make sure you understand what you need for this course.

The Basics Quiz
2 questions

If you're on Windows, and you want an alternative to Virtualbox, you can try VMWare player. This is essentially the same: an application which allows you to run a Linux operating system *inside* of your existing Windows operating system. There's no major advantage or difference here; I just want to provide more than one option in case you can't use Virtualbox for some reason.

Install VMWare Player

Here, you'll download an image file (.iso) of the Ubuntu Desktop operating system. If you're comfortable with Linux, or running a different distribution which you want to use for this course, that's perfectly fine.

Download Ubuntu

If you've never installed Linux before, this lesson will walk you through the process of installing it side-by-side with your existing operating system (Windows or Mac OS) using the Virtualbox software we downloaded earlier.

Install Ubuntu on Virtualbox

If you're using Virtualbox to run your Ubuntu Linux virtual machine (VM), you'll want to install the Guest Additions. This will make life much more pleasant by giving you a resizable VM window, shared clipboard between your Windows/Mac and Linux virtual machine, and more.

Configure Guest Additions on Virtualbox

If you're using VMWare instead of Virtualbox to run your virtual machine, the install process is slightly different. This video will walk you through the process, if you need help.

ALTERNATIVE: Install Ubuntu on VMWare Player
+ Your First Linux Server
10 lectures 59:36

In this lecture, you'll learn about the difference between running a machine at home and running a web-accessible server on the Internet. I'll show you some of the most popular cloud providers where you can rent a Virtual Private Server (VPS) to use for this course. There's even a free option!

Hosting Basics -- Why You Need a Virtual Private Server

In this lecture, I demonstrate setting up a Virtual Private Server (VPS) in one of DigitalOcean's datacenters. The whole process takes about two minutes, and you'll be able to easily adapt the process I show here to other "Cloud" providers, in case you're not using DigitalOcean.

By the end of the lecture you'll have your own little Linux virtual machine (VM), happily running in a datacenter somewhere on the planet. This VM will be where we set up our WordPress hosting platform.

Provisioning and Connecting to Your First Remote Linux Server

If you're taking this course before Ubuntu 16.04 has been released, you'll want to provision an Ubuntu 15.10 VPS for yourself, to make sure you are running systemd (older Ubuntu versions, like 14.04, don't have systemd installed by default).

SUPPLEMENT: Provisioning an Ubuntu 15.10 VPS

After this lecture, you'll have a basic grasp of how working in a command-line environment works. You'll know some basic commands and be able to move around your Linux machine without using the graphical user interface (GUI).

Preview 10:52

As a system administrator, you'll be using one tool more than anything else: Secure Shell (SSH). SSH allows you to log into machines halfway across the planet and work on them as if they're right in front of you. In this lecture, we'll get connected to your web hosting server.

Connecting to Your Server: Basic SSH

Here, you'll learn the most basic system administration tasks on your server: updating and installing software. We cover basic apt-get commands, along with background theory on how software is managed on modern Linux distributions. After this lecture, you'll also understand the difference between normal users and the 'root' (administrator) account.

Updating and Installing Software on Ubuntu

In this lesson, you'll install all the software that's required to turn your brand new server into a web hosting platform. I'll walk you through all the different moving parts: the PHP programming language/interpreter, the MySQL database, the nginx web server, and the monit monitoring service.

PLEASE NOTE: Due to Ubuntu operating system updates, the package names may be slightly different than the ones I'm using in this video. The "source code on github for installing software" resource will always have the most up-to-date commands you'll need when following along with the video, regardless of your Ubuntu version.

Installing Required Software for our Hosting Platform

This lecture is an overview of software, services, and daemons on Unix and Linux. After watching, you'll have the necessary knowledge (and understand the necessary jargon) to start managing the services you'll be using for your WordPress hosting server.

Linux Services Overview

In this lecture, you'll learn how to manage the services you'll be running on your WordPress hosting platform: web services, your PHP services, database services, and monitoring services. We'll cover the following systemd service management commands:

systemctl: start, stop, enable, disable, status

journalctl: (for checking service logs and performing troubleshooting)

Service Management with systemd

A quick review of the fundamentals we've covered in Module 1.

Module 1 Review
+ Setting Up Your Hosting Platform
13 lectures 01:58:15

An introduction to the most important module of the course: here, you'll be setting up and configuring the software and services that make up your WordPress hosting platform. As you do this, you'll gain the basic Linux skills that every system administrator, devops, and software developer needs.

Module 2 Introduction

Edit files on the command line, the easy way: with nano! After this lesson, you'll feel comfortable editing text without the help of a graphical user interface.

How to Edit Files with nano

You'll need more than just the absolute basics of command-line/shell usage with Bash to be a competent system administrator. Here's the rest of the bash basics you need to have under your belt. In this video, I'll cover:

  1. Hidden files and directories.
  2. Input and output redirection (appending to files, overwriting files, taking input from a file).
  3. Logical AND; Logical OR
  4. Command substitution (how to insert the output of one command into a string, or another command).
  5. How to use the 'grep' command to search for matching lines in files.
  6. How to use Pipes in Linux, to connect the output of one command to the input of another command.
Preview 18:34

You'll want to have the very basics of bash covered before continuing. That will make the commands you see in the rest of the course much easier to learn.

Bash Basics Quiz
5 questions

In this lecture, you'll get an overview of how software is configured in Linux and Unix. This background theory is essential, and being comfortable with this knowledge will make the rest of this course much easier.

How Configuration Files Work in Linux

An overview of users and groups in Linux: basic theory which you'll use every day while managing systems.

Creating a System User: Linux Users and Groups

Take 15 minutes for this lecture, and you'll have a solid basic grasp on one of the more confusing parts of Linux system administration. As a bonus, you'll be able to impress your friends by reading binary code!

Changing Ownership and Permissions (and Reading Binary Code!)

A quick quiz to make sure you have command over the basic ownership and permission management ideas.

Ownership and Permissions Quiz
4 questions

This lecture walks you through the basic configuration we need for our nginx web server. You'll find out what all those strange-sounding configuration options are for, and when you finish the lecture your web services will be properly configured for running WordPress.

Basic nginx Webserver Configuration

A quick introduction to basic HTTP concepts: requests, responses, and headers.

HTTP Basics: How the Web Works

In this lesson, you'll set up the PHP interpreter which will be running the WordPress application code for all of your sites. You'll learn how this is configured and *why*, and you'll get a better idea of how all of these services we're configuring actually work together to deal with requests from website visitors.

Basic php-fpm Configuration

Every sysadmin and developer who works with Unix and Linux needs to know about the basic filetypes, and what they are used for. Buckle up; it's much easier than it sounds!

Interprocess Communication (IPC) and Linux/Unix Filetypes

A quick quiz on some Linux/Unix filetypes.

Filetypes Quiz
2 questions

A high-level overview of what a "relational" database actually does, using as little technical jargon as possible. This lecture won't make you a database admin, but it will teach you *why* and *how* a relational database is used for WordPress.

How Relational Databases Work

Here, you'll deal with the basic configuration (and security hardening) of your MySQL service.

MySQL Database Setup and Security

This module is the *core* of the course. It contains not only the practical foundation of your WordPress hosting platform, but also the theoretical foundation of the Linux knowledge and skills we're covering. Make sure you're comfortable with this material!

Module 2 Review
+ WordPress Application Setup
11 lectures 01:02:11

Finally; the WordPress install you've been waiting for! In this module, we'll set up our first WordPress site. This module is also a repeatable process which you can use to set up further sites on your platform.

Preview 02:19

In this lecture, I'll walk you through creating your first site-specific configuration file (virtual host, or vhost) for your webserver.

Configuring an nginx Virtual Host for your Website

The first time you set up a site (but not for future sites), you'll want to remove the default nginx website that was set up for you when you installed the web server on your server.

Removing the Default nginx vhost Configuration

In this lecture, you'll create a PHP pool configuration for your WordPress site. This will provide all PHP services that nginx will need, in a safe and isolated way.

Configuring the php-fpm Pool for your Website

Just making sure you know which parts to automate later...

Site Setup Process Quiz
3 questions

To tighten up security (and teach you more Linux system administration basics), we'll create a system user for your WordPress site. This will make things safer and easier to administrate, besides teaching you an important basic skill which you'll use all the time.

Creating a System User for your Website

Our WordPress site needs a database. This lecture will walk you through creating one, along with a database user and a secure password.

Create a Database and DB User in MySQL

Time to download and install WordPress! In this lecture, you'll learn about downloading files from the command line, decompressing and unarchiving files, and setting up your first WordPress site.

Downloading and Installing the WordPress Application

Some basic security tweaks for your new website, along with a quick tour of the filesystem.

Ownership and Permissions on WordPress Files

A guided tour of the most important files and directories in your WordPress install, along with some configuration tweaks to make administrating each WordPress site easier and less time-consuming. This lecture will also give you the theoretical knowledge you'll need for the "backup and restore" section later.

WordPress Application Layout and Configuration Tweaks

You've got a web server and a website. Now all that's missing is the configuration needed to point your domain name (e.g. udemy.com) to your server. If you've already bought a domain name, this video will show you how to change your DNS settings to point to your web server.

If you haven't yet bought a domain name for your site, I recommend getting started with namecheap.com.

Making Your First Website Live

We've got a live WordPress site! You can now use your WordPress hosting platform to serve this site, or start adding more websites by simply repeating the steps from this module.

Module 3 Review
+ Day-to-Day WordPress Administration: Set Up an e-commerce Store!
8 lectures 38:39

In this module, you'll get an overview of how to run a WordPress site as an administrator. This will be important knowledge for troubleshooting, teaching, and helping clients later on.

Module 4 Introduction

In this lecture, you'll see where the most important WordPress settings are kept.

General WordPress Site Settings

Proper user management in WordPress makes the difference between a secure site and a security nightmare. This lecture will teach you the most important points you need to remember, and demonstrate a proper admin/editor setup.

WordPress User Management

WordPress publishing basics: pages, posts, and comments.

WordPress Pages, Posts, and Comments

Menus can be a bit tricky in WordPress: this lecture shows you the basics, so you'll finally be able to create the perfect top menu (or show your clients how to do this).

WordPress Menus

Themes and plugins are what made WordPress the success it is today. Learn the basics of managing themes and plugins, along with some security considerations.

WordPress Themes and Plugins

One of the most powerful plugins for WordPress is the WooCommerce e-commerce plugin. This turns a WordPress site into a fully featured online store, and can compete with $10,000 solutions from competitors. A webshop like this is an amazing feature for your customers, so this lecture shows you the very basics.

WooCommerce Store Setup and Configuration

Although this course isn't about becoming a WordPress site admin, you still need some basic admin chops to help clients/customers/friends/family. Let's make sure you have a handle on the most important topics.

WordPress Quiz
2 questions

Even if you don't anticipate spending much time in the WordPress admin interface, a competent sysadmin always understands the software he's hosting. Taking a bit of time to understand the basics (and the most common misunderstandings) will save you hours in troubleshooting, frustration, and communicating with your clients.

Module 4 Review
+ Professional Grade: Performance, Security, Automation, Monitoring, Backups
16 lectures 02:27:21

Although most tutorials end after the successful setup of a platform, this is where the real job of system administration *begins*. This module will show you the most common real-life admin tasks which any good sysadmin needs to have at their command.

Module 5 Introduction

This lecture is an overview of performance tuning: what you've already done (perhaps without knowing it), and what you can do in the future to make your site load faster, perform better, and be able to handle more concurrent visitors.

Performance Tuning

A quick walkthrough of the performance optimization I've already baked into the configuration files you used to set up your WordPress hosting platform (and site configuration). If you're wondering what those strange caching rules actually look like, this is the lecture you're looking for. 

Performance Tuning Review for Your WordPress Hosting Platform

Security is one of the most important topics that any tech person needs to understand. Unfortunately it's also an enormous, extremely complex subject. This lecture serves as an overview for the basics you need to understand.

Security Overview

SSH is one of two services that you're exposing to the Internet (the other is HTTP). Learn how to boost your defenses and make a successful attack much less likely.

SSH Hardening: Key-Based Authentication

If someone asks you to set up 50 sites by tomorrow, would you stay up late and manually go through the steps in module 3 again? Or would you automate the entire process and have a cup of coffee instead? The correct answer is "automate and have a cup of coffee." Here is a basic overview of the kind of automation we're talking about.

Automation Overview

This lecture is an introduction to configuration management: what it is, which problems it solves, and why it's so important to know (whether you're a sysadmin, developer, or any other kind of IT person).

What is Configuration Management?

In this lecture, you'll get a crash course in Ansible, one of the most powerful automation systems that exists right now. Ansible can do configuration management, server provisioning, 'cloud' orchestration, deployment automation, and a whole lot more.

Give it 20 minutes, and you'll never go back to bash scripts.

Configuration Management and Automation with Ansible: A Crash Course

A quick quiz designed to drive home the decision-making around automation.

Automation Quiz
2 questions

You need to monitor your WordPress hosting platform: for capacity planning, security, troubleshooting, and just about everything else. In this lecture, you'll set up a small, simple, powerful, and easy-to-use monitoring system that can grow with your hosting platform.

Here, you'll learn how to set up server monitoring with monit. Monit allows you to easily monitor processes, services, files, and more. It also allows you to automatically 'react' to certain monitoring events, and set up e-mail alerting for the server metrics you're monitoring.

Monitoring with Monit

To avoid opening up another web service on our server (thereby decreasing our security), I'll show you how to use some of the magical features of SSH to access the monitoring dashboard on your server as if it were running on your local Linux machine. This is a convenient, flexible trick that can occasionally save the day.

Securely View Monitoring Stats with SSH Local Forwarding

Backups are important. This lecture explains the biggest considerations that go into planning a backup strategy.

Basic Backup Theory

In this lecture, you'll learn how to schedule repeating tasks on Linux and Unix. This is a core Linux skill which will be useful throughout your career, and not just for backups.

Scheduling Commands with Cron

In this lecture, you'll learn how to make filesystem backups for your websites using the venerable (and powerful) 'tar' command.

Filesystem Backups and Restores with tar

In this lecture, you'll set up automatic database backups, and be surprised at how easy the restore process can be. Don't get caught without database backups for your WordPress sites: they take five minutes to set up, and can save you tens of hours (not to mention suffering) later on.

How to Back Up and Restore Your Website Databases

In this lecture, we'll take a look at how to download and compile software (instead of downloading ready-to-run binaries). We cover downloads, security and verification, and the compile process, before 'installing' the finished binaries on our system.

How to Compile Software: tarsnap

In this lecture, I'll give you the 'next steps' that you need to take to use tarsnap for offsite backups.

Getting Started with Tarsnap: Next Steps
+ Conclusion
2 lectures 14:17

Congratulations on completing the course! Not only do you have a WordPress hosting platform set up, but you've also built a solid foundation of basic Linux system administration skills.


Ideas for improving and scaling your WordPress hosting platform, along with recommendations for other practical Linux projects that you can use to further your learning.

Next Steps
+ Resources
2 lectures 23:35

This video shows the entire process for setting up a WordPress hosting server on Ubuntu 18.04 , along with your first WordPress site, step by step. It's a simple video presentation that follows all the practical steps from the course documentation here: https://github.com/groovemonkey/hands_on_linux-self_hosted_wordpress_for_linux_beginners/

The Entire Course Project, Step by Step in one Video

Slides used in the course.

Course Slides