From Earlham CS Department
Revision as of 15:49, 19 March 2024 by Pelibby16 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.

  1. Add your chosen domain name as a CNAME for web dot cs dot earlham dot edu in DNS.
  2. As a Network Admin, go to Sites > Add New.
    1. It will default to cs.earlham.edu/sitename rather than sitename.cs.earlham.edu. Leave it that way for now.
    2. Use the email address associated with your CS user account as the admin address.
    3. After the site is created, click "Edit".
    4. Now use the sitename.cs.earlham.edu pattern as the "Site Address (URL)".
  3. 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” (Example: wordpress-datascience)

 >> 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>, and wordpress site name in place of <wp_sitename>
 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: Edit the following lines:

 define('DB_NAME', '<wp_sitename>');
 define('DB_USER', <user>);
 define('DB_PASSWORD', <pass>);

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