WordPress
This is how to create a WordPress site. Assumes you have permissions on the CS web server (see admins if not).
Add a site to the multisite instance
This is the simplest way to make a new site that is easily maintained.
Much of this requires admin permissions at either the WordPress level or the system level.
Note: where you see "sitename", substitute your site's name, which should be one token with letters and numbers only if possible.
- Add your chosen domain name as a CNAME for web dot cs dot earlham dot edu in DNS.
- As a Network Admin, go to Sites > Add New.
- It will default to cs.earlham.edu/sitename rather than sitename.cs.earlham.edu. Leave it that way for now.
- Use the email address associated with your CS user account as the admin address.
- After the site is created, click "Edit".
- Now use the sitename.cs.earlham.edu pattern as the "Site Address (URL)".
- Visit sitename.cs.earlham.edu to see if you can access the page.
Single-site WordPress Setup
1. cd to /var/www/ and unzip the file and name it “wordpress-sitename”
>> cd /var/www/ >> tar -xvzf wp_download.tar.gz >> mv wordpress/ wordpress-sitename
2. Create a mysql database with the name “wp_sitename” and give “wpadmin” access to it:
>> mysql -u root -p // You will need the password MariaDB [(none)]> create database wp_sitename; // you will need to enter the wordpress username and password in place of <user> and <pass> MariaDB [(none)]> grant all privileges on wp_sitename.* to '<user>'@'localhost' identified by '<pass>'; MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit
3. Rename the config file and edit it
>> cd wordpress-sitename/ >> mv wp-config-sample.php wp-config.php >> vi wp-config.php // Here you will be editing the Mysql settings
You will need the name of the database, username (use wpadmin as you have already granted it privileges) and the corresponding password:
The edited version should look like:
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'wp_sitename'); /** MySQL database username */ define('DB_USER', username); /** MySQL database password */ define('DB_PASSWORD', password); /** MySQL hostname */ define('DB_HOST', 'localhost'); /** Database Charset to use in creating database tables. */ define('DB_CHARSET', 'utf8'); /** The Database Collate type. Don't change this if in doubt. */ define('DB_COLLATE', );
Everything else in this file should remain the same.
- You can also view similar files to make sure the config file is setup properly, and copy the username and password for database from there.
>> view ../wordpress-datascience/wp-config.php
4. Change owner and permissions
>> chown -R www-data:www-data wordpress-sitename/ >> chmod -R 755 wordpress-sitename/ >> mkdir -p /var/www/wordpress-sitename/wp-content/uploads >> chown -R :www-data /var/www/wordpress-sitename/wp-content/uploads/
5. Setting up the website and ssl cert
>> cd /etc/apache2/sites-available/ >> cp datascience.cs.earlham.edu-ssl.conf sitename.cs.earlham.edu-ssl.conf
- Edit the .conf file and change the word datascience to your sitename
>> vi sitename.cs.earlham.edu-ssl.conf
- Create a link from sites-available to sites-enabled
>> ln -s sitename.cs.earlham.edu-ssl.conf /etc/apache2/sites-enabled/sitename.cs.earlham.edu-ssl.conf
6. Enable the site
>> a2ensite sitename.cs.earlham.edu-ssl.conf // If this doesn't work, please talk to a sys-admin >> service apache2 reload >> service apache2 restart
This will enable the website - ask admins to create DNS entry
7. Install WordPress and enjoy!
8. Changing the settings of the page:
- Go to Settings > Permalinks, and choose the format you would like // For e.g. I chose Post Name as the setting.
- Click on the Custom setting, and add "/index.php/" before the name setting, such that the setting changes from "/%postname%/" to "/index.php/%postname%/" // for Post Name setting.
9. If you're unable to create a page/post, or upload media, you need to change the permissions again. Repeat step 4 for changing permissions and owners.
Misc notes
As of Jan 2021 we use PHP 7.2 for WordPress. The correct php.ini file is: /etc/php/7.2/apache2/php.ini