Introduction
As a student in the Computer Systems Technician (CST) program at SLC, one of the most valuable technical experiences I’ve had was setting up and deploying a WordPress website on a live Linux server using the LAMP stack. This project not only reinforced what I’ve learned in class, but also helped me understand how these skills apply in real-world IT environments — something I know employers are looking for.
What is a LAMP Stack and Why Use It?
LAMP stands for Linux, Apache, MySQL, and PHP. It’s one of the most widely used stacks for hosting dynamic websites. For this project, I used a cloud server from Hetzner, installed Ubuntu Linux, and manually set up the full LAMP stack. Doing it this way gave me hands-on experience with each component and helped me understand how web services are built from the ground up — including system and network configuration.
Launching and Securing the Server
The first step was launching a Virtual Private Server (VPS) on Hetzner Cloud using Ubuntu 22.04. I secured the server by:
- Setting up SSH key authentication
- Disabling root login
- Creating a new user with
sudoprivileges - Configuring a UFW firewall to allow only essential ports (22 for SSH, 80 for HTTP, and 443 for HTTPS)
These steps are crucial for any technician working in IT environments and are part of standard server hardening practices.
Installing the LAMP Stack
After securing the server, I began installing the components of the LAMP stack:
- Apache as the web server
- MySQL for database management
- PHP for processing dynamic content
I also installed necessary PHP modules such as php-mysql, php-curl, and php-xml to support WordPress. This process gave me a deeper understanding of Linux package management, working with system services via systemctl, and reading log files to troubleshoot common issues.
Deploying WordPress
Once the stack was ready, I downloaded WordPress into the /var/www/html directory and set proper file ownership using chown for the www-data user. I then:
- Created a MySQL database and user
- Edited the
wp-config.phpfile with database credentials - Completed the setup through the WordPress browser-based installer
This section of the project taught me how a Content Management System (CMS) interacts with the server and database — and the importance of correct file permissions and user roles.
Securing the Site with HTTPS
To protect the website and gain user trust, I installed a free SSL certificate using Let’s Encrypt with the help of Certbot. I also set up automatic renewal using a cron job, ensuring the certificate stays valid over time. Enabling HTTPS is a simple but vital step in website security and improves SEO and overall professionalism.
Skills I Developed
Throughout the process, I applied many core skills from the CST program:
- Working in the Linux command line
- Managing web and database services
- Securing a remote server
- Deploying a real CMS
- Understanding the connection between networking, systems, and application layers
It wasn’t just theory — I was solving real problems and building a functional live server.
What I Learned
This project helped me see how everything I’ve learned — from network protocols to operating system management — comes together in a real-world deployment. It taught me how to:
- Troubleshoot unexpected issues using logs and documentation
- Approach server management with security in mind
- Confidently work in environments without a GUI
I now feel better prepared to step into an entry-level IT support, systems technician, or network assistant role.
Conclusion
Setting up a WordPress site on a LAMP stack from scratch gave me practical experience I can take into the workforce. It showed me how all the core technical areas of the CST program fit together and gave me a tangible result I’m proud of. It’s one thing to understand something in class — it’s another to deploy a working website to the world. That’s the kind of experience that prepares you for a real job and shows employers what you can do.