A Foundational Toolkit for Building Web Servers
This part of our course covers the basic tools you’ll need to tame (control, master, dominate…) Linux and its cousins Apache, MySQL and PHP. We’ll address desktop software you’ll need on your laptop as well as basic services you’ll want to purchase from third party vendors. Specifically, we’ll cover your options for SSL certs, domain names, remote hosting, and webmail. If you’re a college student ask your school’s IT department to give you space on their servers for FREE!
Free Stuff & Discounts
What Is LAMP? “A Picture is Worth….”
The acronym LAMP refers to first letters of the four components of a solution stack, composed entirely of free and open-source software, suitable for building high-availability heavy-duty dynamic web sites, and capable of serving tens of thousands of requests simultaneously.
Overview of LAMP architecture by Kesavan Muthuvel.
Detailed view of LAMP architecture showing relationships between the OS, software, hardware, and the “good and bad guys” on the Internet. Click the image to visit the LAMP Stack Wikipedia entry.
Ubuntu is an open source Linux-based Operating System (OS). It’s maintained by a South African company called Canonical. Ubuntu updates are released every 6 months. Be sure to peruse the Ubuntu wiki entry for more general information.
Keith Larson of Oracle (which owns MySQL) has put together some excellent presentations that not only serve as good MySQL primers, but also provide deep-dives into MySQL administration topics. Click the images to download the presentations.
MySQL Overview by Keith Larson:
MySQL Deep-Dive by Keith Larson:
Domain Name System (DNS): is a distributed “directory” that maps domain names to IP addresses. The Internet’s phone book. From your laptop’s command line type
nslookup duke.edu. Also, check out this How To Geek post for some great illustrative examples.
A Record: Maps hostnames to IP addresses
Use an IDE Or Install A Text Editor With Syntax Highlighting And Code Hinting
If you’re new to coding you’ll definitely need a code oriented text editor or a full-fledged Integrated Development Environment (IDE). Trust me on this. If you’re attending this class, you really don’t want to be writing code in either nano, emacs, or vi. Ok, maybe nano. But, popular and lightweight text editors with code hinting include:
- Visual Studio Code (VS Code) (OSX – Free)
- Sublime Text 3 (OSX / Windows – shareware: Free to try, but requested to buy)
Database Administration (DBA) Desktop Client
You can get away without using these until our database specific courses. However for the sake of continuity below are some options. PC versions come in 32-bit and 64-bit flavors.
- MySQL Workbench: Workbench is a full-featured and powerful DBA client maintained by Oracle. It’s free and is available for Mac, PC as well as various flavors of Linux
Secure Shell (SSH) And Secure Files Transfer Protocol (SFTP) Clients
- SSH FTP client
- SSH client
- SSH Key Generator: won’t need until the advanced class on security and server lockdown
- SSH FTP client
- SSH client: Use the Mac’s native iOS Terminal. Go to
Finder -> Applications -> Utilities -> Terminal.app. Once opened, type
ssh -p 22 email@example.com
- SSH Key Generator: See command line instructions in next section.
You can refer to this article for more info on using SSH on a Mac
Purchase a Domain Name from Namecheap
If you want to get the most out of your LAMP server you’ll want ot consider purchasing a a domain name. You won’t need one for today’s class, but you should definitely purchase one if you want to be able to integrate email functionality (class 3) into your server.
Namecheap consistently offers the lowest priced renewal rates for domains in the industry.
Choose a Host (VPS Provider)
There are as many hosts as there are flavours of ice-cream. We reached out to about 15 or so providers in January 2014. Here are the ones with which we have ad hoc marketing relationships with:
- Digital Ocean ($100, 60-day free credit for Code Sport students. Email support only)
- Ram Node (Email support only)
- OVH ($3.35 VPS plan with 1 GB of ram. Email and phone support)
And, here are those with which we do not have relationships:
Select An Externally Hosted Email Provider
Buy An SSL Certificate
You’ll only need this for our Advanced Security and E-Commerce learning tracks. And we have a free tutorial on how to install these. However, for the sake of completeness we’re including it now, so here you go:
Namecheap is a reseller of different brands of SSL certs. They also have he lowest priced branded SSL certs on the market. We suppose they make their money on volume:
- Comodo PositiveSSL sold Namecheap: $9.00
Bonus: Install A Development Environment on Your Local Machine
If you’re attending our class most likely you already have a locally installed development environment. If not, here’s your chance:
If neither of the above works, try XAAMP
So you’re covered. You now have all the tools needed to be dangerous. Bookmark this post and refer to it as we traverse new sections and learning tracks. Reach out to your class instructor or TA for our exclusive coupon codes and student discounts.[/secure]