ARPSE Content Management System (CMS) Notes

Software configuration for commodity x86/86_64 linux art research platform.

Prerequisites

Assume Fedora 27 or 28. See base document for full software stack.

CMS Setup

Use wordpress packages.

dnf install -y wordpress wordpress-plugin-bad-behavior wordpress-plugin-defaults python3-wordpress-xmlrpc

Configure as per these Fedora-specific notes. Also, read these Centos-7 notes.
Useful background material on WordPress is at the codex.

Recommended, but not essential packages:

dnf install -y php-pecl-imagick php-pecl-ssh2 php-opcache php-pecl-zendopcache php-pecl-apc

Configuration file for webserver-wordpress is: /etc/httpd/conf.d/wordpress.conf
Configuration file for wordpress is: /etc/wordpress/wp-config.php
Wordpress site files are:/usr/share/wordpress

CMS Multisite Setup

Turns out that WordPress (and the rest of the underlying software) can run more than one site at once: this is referred to as a multisite configuration. Or simply multisite.

This server-side configuration is a bit more complicated; here is an article about it from HowtoForge.

Most hosting companies run multisite: if you are migrating away from or archiving a website it may be useful to setup a multisite configuration on the new server as well.

Data, Backup, and Migration

Keep it liquid. Have an archive and practice restoring it on a staging or test server.

To import a pre-existing site to the staging server, there are a couple of options:

  1. import/export via WordPress Admin Tools, may be the only option if not a hosted site
  2. stage and backup with a plugin like Duplicator, JetPack, or BackWPup
  3. dealing with the archive files that a hosting service provides

For option 1 above, the simplest import/export is via builtin tools:
use the existing server to export a WXR file (via Tools->Export in the wordpress admin page), and install the import plugin on the new server. See the importing content part of the wordpress codex.

For sites that have export files over the default 2MB, a bit of tweaking is necessary to import said file in its entirety. First, find out where the active php.ini file is:

php -i | grep "Loaded Configuration File"
Loaded Configuration File => /etc/php.ini

So, edit this file to change the value of upload_max_filesize to 64M and post_max_sizelike so:

 upload_max_filesize = 64MB
 post_max_size = 128MB

For option 2 above, use the Duplicator plugin. First, install it on the active site by copying the zip file into */public_html/content/plugins. Activate it on the admin page of WordPress, and make an archive by following the on-screen conditions.

The Duplicator plugin requires some server-side capabilities. Make sure that php.ini has the following extensions enabled:

extension=zip.so
extension=mysqli.so

Once everything is working, the Duplicator plugin produces an archive file and a installation.php file. Download these and transfer them to the staging site.

First, temporarily disable SELinux.

getenforce
Permissive

Either use setenforce 0 to disable and setenforce 1 to re-enable, or edit and restore /etc/selinux/config.

Next, create an empty and writeable directory to use for the migration.

mkdir -p /usr/share/wordpress
chmod 777 /usr/share/wordpress

Copy the archive file and the installer.php to this otherwise empty directory. Then edit /etc/httpd/conf.d/wordpress.conf so that the Directory /usr/share/wordpress has

#  AllowOverride Options
  AllowOverride All

Then go to a browser and follow the directions at

http://localhost/wordpress/installer.php

Then, unwind all the goofiness: enable SELinux again, re-set permissions, etc.

For option 3 above, ah. Avoid if possible. If not, take ownership of a large compressed file of the public_html folder and smaller compressed file of the database.

Move the database archive into /var/lib/mysql, and change the ownership and group permissions to mysql. Next, create a new database on the command line. Then, open up pgpMyAdmin page, select the newly created database, and import the compressed file into it.

Then, move the compressed file of public_html and make it point to /var/www/html.

1 Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s