
Learn to host multiple websites on a single digital ocean droplet using virtual hosts on Ubuntu 18.04, configure name servers and DNS zone files, and secure with Let's Encrypt SSL.
Sign up or log in to DigitalOcean, create a development project, and deploy Ubuntu 18.04 droplet with 1 GB RAM, 25 GB SSD, and 1 TB transfer in New York.
Discover how to create and attach a floating IP on Digital Ocean, enabling you to transfer the IP between droplets and recover quickly from snapshots.
Connect to your Digital Ocean server using ssh from terminal or putty, log in as root with the floating IP, and securely change the initial password to complete root access.
Install apache2 on your server by running apt update and apt install apache2, then test the setup by loading the server IP to view the default apache page.
Install and secure a MySQL server, remove anonymous users and test database, disallow remote root, and switch root authentication from auth_socket to MySQL native password.
Install and test PHP to enable dynamic web content, connect PHP with MySQL to insert, update, and retrieve data; create an info.php to verify configuration, then secure by deleting it.
install phpMyAdmin with apache, mysql, and php, update the package index, configure the database during setup, enable mbstring, restart apache, and access the login page to manage databases.
Learn how to configure virtual hosts to serve multiple domains from a single server with Apache, with each domain using its own directory under www and an html subfolder.
Create a directory for each domain, set 755 permissions, then make an html subfolder and an index.html for each domain using nano; optionally manage files with filezilla for easy access.
Configure virtual host files for each domain in Apache by setting the server name and alias, then enable sites and reload Apache to serve multiple domains from separate directories.
Configure the dns zone file on digital ocean, then update registrar nameservers to digital ocean so each domain points to the correct web server via a per-domain virtual host setup.
Configure DNS zone files by creating A records for the domain and www pointing to the server's floating IP, test propagation, and verify with a proxy across two domains.
Secure multiple domains on your server by installing certbot and obtaining Let's Encrypt SSL certificates for each domain, configuring Apache virtual hosts, and enforcing HTTPS redirects.
Create a Linode account by signing up, confirming your email, entering billing and payment details, agreeing to the master services agreement, and accessing cloud manager after the temporary $1 hold.
Explore the Linode cloud manager dashboard, access accounts and virtual instances, manage block and object storage, and review the marketplace and support resources.
Enable two-factor authentication on your Linode account using Google Authenticator, scan the QR code, enter tokens, and securely store the scratch code to test login security.
Deploy a Linode virtual instance by selecting Ubuntu 20.04 LTS, Newark data center, and 1 GB RAM, 25 GB root volume plan, then set a strong root password and launch.
Explore the Linode instance dashboard to monitor provisioning status, access SSH commands, review analytics and network usage, manage storage volumes, configurations, backups, and instance settings.
Develop secure administration of a Linode instance by connecting via the command line to update the operating system, install and manage software, modify system files, monitor performance, and configure firewalls.
Compare password authentication with ssh key authentication and learn how private and public keys secure remote access, protecting against brute-force attempts with openssh key generation.
Generate an ssh key pair on Windows with Putty and Putty Gen, save public and private keys, and configure ssh key authentication to connect to a Linode instance.
Generate an ssh key pair on macOS or Linux, use 4096 bits, and set a passphrase. Copy the public key to the Linode root using ssh-copy-id and connect via ssh.
Connect with lish to remotely administer your Linode instance by launching the web-based lish console from the cloud manager, log in as root, and terminate the session for security.
Learn to add SSH public keys to your Linode cloud manager, label and save keys, and apply them to future instance deployments for streamlined provisioning.
Introduce the Linux kernel and its role, explore popular distributions, compare Linux with Windows, and review core terms such as bootloader, kernel, desktop environments, and applications.
Explore the Linux filesystem, its hierarchical directory structure, and the difference between absolute and relative paths, with examples of /bin, /boot, /home, and /var.
Connect to an Ubuntu server via ssh, check available updates, and master apt update, apt upgrade, and apt dist-upgrade to keep packages current and secure.
Navigate the Linux file system hierarchy using pwd, cd, and ls, distinguish root from non-root accounts, and create and edit files with nano in the root and var directories.
Create and organize directories with mkdir, move and copy files using mv and cp, and navigate the filesystem with cd and ls, including recursive copying and basic rm deletion.
Set a custom host name, update the hosts file, and configure time zone and rtc on ubuntu basic server configuration, then enable ntp and prepare non-root user accounts.
Learn how to manage root versus non-root accounts on Linux servers, assign permissions with user groups, and use the pseudo or su for controlled administrative access.
Create a non-root user named Bob, add him to the sudo group for superuser access, and verify membership as preparation for SSH key authentication in the next lesson.
Secure a non-root user by generating a 4096-bit SSH key pair for Bob, adding the public key to authorized_keys, and enabling sudo for secure administration.
Disable root login and password authentication to enforce ssh key authentication for the server. Update sshd_config, restart ssh, and verify that only key-based logins succeed.
Install and configure the lamp stack on an ubuntu server using the command line, including apache, mariadb, and php to host dynamic websites and web applications.
Install lamp stack quickly using the Linode marketplace one-click app, configure root password and ssl on ubuntu 20.04, verify by IP, and manage deployment lifecycle.
Log in to your server, go to /var/www/html, create info.php to test PHP with phpinfo(). Load it in a browser to verify Apache is running, then delete the file.
Connect to a MariaDB database from PHP, create a database and a non-root user, assign privileges, and verify access by creating a table, inserting data, and running a select.
Create a php script in the web root with nano to connect to MariaDB and output the name list table records as an HTML ordered list in a browser.
Learn to administer a Linode remote instance with a graphical desktop by installing Xfce and using glitch or ECS, then browse the file system and web root visually.
Terminate all Linode instances and delete unused volumes and images including custom and recovery images to prevent charges, and close the account if no further use is planned.
Gain practical cloud administration skills by deploying and configuring Linux instances, spinning up sites quickly, and securing servers with non-root accounts and firewall practices using remote CLI.
This course is designed to provide students with a comprehensive understanding of web server technologies and how to set up and manage web servers using Linux-based operating systems. Throughout the course, students will gain hands-on experience with various tools and techniques used in web server administration, including LAMP stack, virtual server hosting, name server configuration, DNS zone file configuration, virtual host file configuration, and cloud server deployment.
The course begins with an introduction to web server foundations, including an overview of the basic concepts and technologies involved in web server administration. Students learn about different types of web servers, including Apache and Nginx, and gain an understanding of the role of web servers in serving web content to clients.
From there, students will dive into the installation and configuration of LAMP stack on Ubuntu, one of the most widely used Linux distributions for web server administration. They will learn how to install and configure Apache, MySQL, and PHP, as well as how to use these technologies to serve dynamic web content.
One of the key challenges in web server administration is hosting multiple domains on a single virtual server. The course will cover this topic in detail, providing students with a thorough understanding of how to configure virtual hosts and manage multiple domains using a single server instance.
In addition to virtual server hosting, the course will cover name server configuration and DNS zone file configuration. Students will learn how to set up and configure name servers using the Linode Cloud Console, as well as how to configure DNS zone files to map domain names to IP addresses.
The course will also cover the configuration of virtual host files, which are used to map domain names to specific web content on a server. Students will learn how to create and configure virtual host files using Apache, and gain an understanding of how these files are used to manage web content on a server.
As cloud computing becomes increasingly important in web server administration, the course explores cloud server deployment on Linode, one of the leading cloud hosting providers. Students learn how to set up and manage cloud server instances on Linode, as well as how to deploy web content to these instances using various tools and techniques.
To ensure secure server administration, the course will cover SSH key pair authentication, a commonly used method of authenticating with remote servers. Students will learn how to generate SSH key pairs, as well as how to use these keys to authenticate with remote servers and manage server resources securely.
Finally, the course will provide students with a solid foundation in Linux, the operating system used by most web servers. Students will learn about the basic concepts and commands used in Linux administration, as well as how to use the Linux command line to manage server resources.
Throughout the course, students will gain hands-on experience with each of these topics, using virtual machines to set up and manage web servers in a safe and controlled environment. By the end of the course, students will be well-equipped to set up, manage, and administer web servers using Linux-based operating systems, and will have gained a solid foundation in the tools and techniques used in web server administration.