OPS705 Assignment 1
In this assignment, you will install a WordPress blog from scratch on a new Azure-based Linux VM. You will also create step-by-step documentation as you go.
Unlike labs, assignments have minimal instructions. You are given specifications on what the assignment needs, and you must rely on your previous work in the course. If the assignment doesn't have the command you need, you can find it in your labs. And don't be afraid to do a little research!
Assignments in OPS705 are built as an assessment of your ability to meet the course objectives. As such, I'm unable to provide detailed help.
Step-by-Step Documentation
A large part of this assignment is self-documentation. As you progress through the assignment, write down detailed instructions on how to complete each part. This includes commands. You may include screenshots, though it's not required. Use the OPS705 labs on this wiki as a guide to the level of detail required in your documentation.
An instruction document template has been included on Blackboard with tips on how to fill out proper documentation. Use this template to fill out your instructions and submit.
Installing WordPress On A VM
All components necessary to run the application will be directly inside this virtual machine. In essence, you will be creating a LAMP stack: Linux, Apache, MySQL, and PHP. This is what you'll need to get Wordpress working.
Specifications are below:
Azure Linux VM Configuration
Create a new, third CentOS Linux VM with the following specifications:
- Virtual machine name: assign1-username
- Virtual machine size: Standard_B1s
- IP address: Public
All other options, set up as you did with your previous Azure Linux VM.
Post-Installation Setup
- Fully update the system.
- Only allow public-key authentication.
- Install the prof key into your new VM under your regular user.
Apache Configuration
Install apache on your new VM as you have in previous labs. Use default port 80 for the server.
MySQL Database Configuration
Install the mariadb-server software and configure its systemd service. Use the default port 3306.
Once the database is up, run the command: mysql_secure_installation
and follow the defaults (Don't forget to set a root password during this process!)
With your new password, log in to your database with the following command: mysql -h localhost -u root -p
(Type your password in the prompt)
Now that you're logged in, you have to create a separate user and database for Wordpress.
- Create the new database:
CREATE DATABASE wordpress;
- Create the new user:
CREATE USER wordpressadmin@localhost IDENTIFIED BY 'password';
(Change the password to something else!) - Give your new user priviledges to that database:
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressadmin@localhost IDENTIFIED BY 'password';
- Tell MariaDB to reload priviledges:
FLUSH PRIVILEGES;
Use the database name, user, and password created in this sections Step 1 and Step 2 for your connector information in the WordPress setup later on. Do NOT use root with WordPress.
PHP Installation
- Install the latest PHP repository:
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
- Enable the repository on your VM:
yum-config-manager --enable remi-php74
- Install php:
yum install php php-mysql
After the packages are installed, restart the apache service.
WordPress Website Configuration
To install WordPress, you'll need to download the zip file from online, unzip it, and move the files into your apache web directory.
- Download the zip with the following command:
wget https://wordpress.org/latest.tar.gz
- Unzip the file:
tar -zxvf latest.tar.gz
- Copy the contents of the new directory wordpress into /var/www/html/ (Don't move the directory itself! Remember your Lab 3 CLI work.)
- Give apache ownership of all WordPress files:
chown -R apache:apache /var/www/html
- Give apache proper permissions of WordPress files:
chmod -R 755 /var/www/html
- TEMPORARILY set selinux to permissive:
setenforce 0
Paste the URL hostname of your VM into a browser on your local machine. You should see the WordPress database connector page. Use localhost as your Database Host.
During Wordpress setup, after the database connection page, use the following values:
- Site Title: <Full Name>'s Assignment 1
- Username: <senecausername>
- Password: <insertpassword>
- Your Email: <senecaemailaddress>
When you've finished the installation, go back to your CLI and run: setenforce 1
WordPress Blog
Customize your blog by choosing a different theme from the default. Choose a WordPress.org theme from the menu.
Create three blog entries of the following topics:
- Have you ever installed services like this outside of OPS705? If so, elaborate.
- Which types of databases have you used in the DAD program so far? Which has been your favourite?
- What was the most difficult part of this assignment for you?
Firewall Configuration
Once you've finished setting up your WordPress blog, you must lock down your CentOS firewall.
Requirements:
- Must use iptables, not firewalld
- Only the following INPUT traffic is allowed:
- RELATED,ESTABLISHED
- LOOPBACK/ALL
- SSH
- HTTP
- Default policy for INPUT and FORWARD must be set to DROP
Lab Submission
As with previous labs, your work will be evaluated by accessing your site directly. To formally submit, you must include the following:
- In the comment section of your submission, paste the URL of your new site.
Once submitted, please shutdown your VM.