Difference between revisions of "WordPress"

From Earlham CS Department
Jump to navigation Jump to search
(WordPress Setup)
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
This is how to create a WordPress site. Assumes you have permissions on the CS web server (see admins if not).
 
This is how to create a WordPress site. Assumes you have permissions on the CS web server (see admins if not).
  
===  WordPress Setup ===
+
=== Add a site to the multisite instance ===
1. cd to /var/www/ and unzip the file and name it “wordpress-sitename”
+
 
 +
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” (Example: wordpress-datascience)
  
 
   >> cd /var/www/
 
   >> cd /var/www/
Line 11: Line 27:
  
 
   >> mysql -u root -p    // You will need the password
 
   >> mysql -u root -p    // You will need the password
   MariaDB [(none)]> create database wp_sitename;
+
   MariaDB [(none)]> create database <wp_sitename>;
   // '''you will need to enter the wordpress username and password in place of <user> and <pass>'''
+
   // '''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)]> grant all privileges on <wp_sitename>.* to '<user>'@'localhost' identified by '<pass>';   
 
   MariaDB [(none)]> flush privileges;  
 
   MariaDB [(none)]> flush privileges;  
 
   MariaDB [(none)]> exit
 
   MariaDB [(none)]> exit
Line 24: Line 40:
  
 
You will need the name of the database, username (use wpadmin as you have already granted it privileges) and the corresponding password:
 
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:
  
The edited version should look like:
+
   define('DB_NAME', '<wp_sitename>');
 
+
   define('DB_USER', <user>);
  // ** MySQL settings - You can get this info from your web host ** //
+
   define('DB_PASSWORD', <pass>);
  /** 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.
 
Everything else in this file should remain the same.
Line 76: Line 83:
  
 
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.
 
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: <code>/etc/php/7.2/apache2/php.ini</code>

Latest revision as of 14:49, 19 March 2024

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