seidengroup.com
Make your IBM i Sizzle with WordPress
Seiden Group and Club SeidenAlan is a leader and expert in PHP on IBM i; leader, Zend’s PHP Toolkit for IBM i; and “Performance guru of PHP on IBM i”
Seiden Group is a team of experts available for mentoring/troubleshooting/project advice/development.
seidengroup.com, [email protected]
WordPress and its power
Open source giant
• Started as blog software
• Now a true, although relatively simple, content management system (CMS)
• Popular
• Millions of sites based on WordPress
• Communities
• Careers launched
• PHP at its core… some Node.js now also
• Runs on all kinds of servers and IBM i
Just a blog? Website?
• Easy to add content
• Posts—blog posts on one long page (newest on top)
• Pages—About, Contact, Purchase, etc…
• Themes—choose a great look
• Plugins—add functionality
• Comments / Community
Examples
• nytimes.com
• USA Today
• official Star Wars blog
• Beyonce
• Xerox blogs
• seidengroup.com, godzillai5.wordpress.com (PHP Dave)
Data3
• News-style theme
• Themes are easy to download • Some free, some not
• Excellent at blogs but also good at general content management
COMMON.org
• Zend Server on IBM i
• Manages information and media
System i Developer
• Zend Server on IBM i
• Also custom PHP to manage conference reservations, sponsorships, more.
Community
Compare CMSes
• WordPress
• Began with blogs
• Can be customized but still easy to start with
• Drupal
• “Enterprise” with sophisticated user roles and responsibilities
• Has become like a programming framework in itself
• Joomla
• Has lost ground but still active
• Like Drupal lite
Goals and dreams
Your WordPress dreams
•Let’s brainstorm • Our notes will be at
• http://idevusr016.idevcloud.com:10080/wordpress/?p=70
Another user group’s
• Create user group membership site
• Boost career with blog posts and articles
• Learn new technology
• See what IBM i could do
• Provide forum for executives to share company news
• Create portals of business information
Technology/install
PHP & MySQL
• PHP and MySQL are foundations many internet sites
• MariaDB is a good substitute for MySQL
• These run on most platforms, including IBM i
Hosting options
• Your PC
• XAMPP PHP/MySQL download (Apachefriends.org) and others
• Download code from wordpress.org or use packaged versions
• Step-by-step instructions: https://premium.wpmudev.org/blog/setting-up-xampp/
• EXERCISE: install on laptop
• Shared hosts such as bluehost (and many others)
• wordpress.com—starting at free
• Your IBM i!
• Get code from wordpress.org
IBM i hosting
• Install Zend Server for IBM i
• Make sure you choose to install MySQL or MariaDB
• For standalone MySQL or MariaDB for IBM i, download from here:
• http://www.zend.com/en/solutions/modernize-ibm-i/ibm-i-product/dbi
• Then follow instructions here
Zend Server for IBM i (8.x)
• Download Zend Server 8.x
• http://www.zend.com/en/products/server/downloads-ibmi • Easy upgrade from 6.x and 7.x
• Editions
• http://www.zend.com/en/products/server/editions
• Basic (free), Professional, Enterprise
• Same download, different license
Zend Server for IBM i (9.x)
• Download Zend Server 9.x
• http://www.zend.com/en/products/server/downloads#IBM%20i • Includes PHP 7.1
• Editions
• http://www.zend.com/en/products/server/editions
• Basic (free), Professional, Enterprise
• Same download, different license
Install WordPress on IBM i
• If you have older Zend Server with MySQL (not MariaDB), get older (Wordpress 4.1) from https://wordpress.org/download/release-archive/
• If you have newer version of ZS with MariaDB, get newest WordPress from https://wordpress.org/download/
• Unzip and then FTP to your document root (e.g. /www/zendsvr6/htdocs or /www/zendphp7/htdocs)
• Change wp-config-sample.php to wp-config.php
• Do some MySQL setup (http://rodflohr.com/set-the-zenddbi-mysql-root-user-password/)
• and then configure database configuration (see next page)
Database config in wp-config.php
Run installer
• Run the WordPress installation script from a browser.
• You’ll be able to change settings later if needed. You’ll create the Wordpress admin password for logging into Wordpress.
• Installation URL: http://mysite:10080/wordpress/wp-admin/install.php
Admin dashboard
• mysite.com/wp-admin
Themes
Themes create the “look”
• Change site look with no programming or designer needed
• Modern themes are “responsive”
• Look good on desktop, tablets, phones
• Essential for search engines and user experience
• Some are sophisticated
• For a custom look, your designer can extend existing themes
Theme admin page
Free and paid themes• Free themes here:
• https://wordpress.org/themes/
• Also try Theme Forest and many more
• Huge industry
Now customize your look
• Theme
• Title
• Color
• Header image
• Widgets
Create a page, create a post
• Page: permanent,named page (e.g. About Us)
• Post: blog pagewill “move down” as it ages
Create a menu and add page/post
• Create top-level menu
• add your pages/posts
Plugins
Plugin admin page
How to get more plugins
• “Add New” from plugins page, or…..
• wordpress.org/plugins/
Manual installation
• Manual installation helpful if QTMHHTTP doesn’t have permissions to install automatically
• Download your WordPress Plugin to your desktop.
• If downloaded as a zip archive, extract the Plugin folder to your desktop.
• Read through the "readme" file thoroughly to ensure you follow the installation instructions.
• With your FTP program, upload the Plugin folder to the wp-content/plugins folder in your WordPress directory online.
• Go to Plugins screen and find the newly uploaded Plugin in the list.
• Click Activate to activate it.
A few special plugins
• WordFence Security
• Akismet spam stopper for blog comments
• Includeme (include external file, such as PHP/DB2 etc in pages)
• TablePress to show tables in your posts
WordFence
• Security plugin
• https://wordpress.org/plugins/wordfence/
• Protects against brute force attacks, try to guess admin pw etc.
• Read about WordFence in Peter Macintyre’s book, Building Exceptional Sites with WordPress & Thesis
Akismet
• Stops comment spam
• https://wordpress.org/plugins/akismet/
• Use to avoid thousands of spam comments (if you allow comments)
IncludeMe
• Easy way to include custom PHP
• https://wordpress.org/plugins/include-me/
• Use a “shortcode” such as [includeme file=“users.php'](Provide a file name from your IFS)
• Demo soon
TablePress
• Display tables in your posts or pages
• Used by GRAR site
• Import/export of CSV/JSON
• Point to URLs or other files for data
IncludeMe demo• Simple db code accessing IBM i service for users
(list is here: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/DB2%20for%20i%20-%20Services/comment/eced898c-62ae-4546-8bdd-abb9828c9653)
$conn = db2_connect('*LOCAL', '', '');
$sql = "select * From QSYS2.USER_INFO WHERE STATUS = '*ENABLED'";$stmt = db2_prepare($conn, $sql);
db2_execute($stmt);echo "<table style=\"width:500px\">";while ($row = db2_fetch_array($stmt)){
echo "<tr>";echo "<td>" . $row[0] . '</td>';echo "<td>" . $row[3] . '</td>';echo "<td>" . $row[4] . '</td>';echo "<td>" . $row[10] . '</td>';echo "</tr>";
}
echo "</table>";
Security
Try WordFence and Askimet
• Plugins noted earlier
Update regularly
• A client wrote to me: “I have had a customer get hacked on the IBM i. We were running an outdated version of Joomla that I think was the culprit. It allowed them to load junk on the IFS.”
• Please update WordPress and pluginsregularly.
Who can do what (roles and access)
RolesDefault roles (https://codex.wordpress.org/Roles_and_Capabilities)
• Administrator
• Full site control, configs, themes, etc
• Editor
• Control over content
• Author
• Manages/publishes her own posts
• Contributor
• Can write but not publish
• Subscriber
• Useful if you want to limit blog access to registered users
Custom roles
Try the user role editor plugin (https://wordpress.org/plugins/user-role-editor/)
• Shortcode to show enclosed content to the users with selected roles only.
• Posts and pages view restrictions for selected roles.
GRAR case study
• Public site based on WordPress on IBM i that calls RPG stored procedures
• http://www.grar.com/ with help from Arbor Solutions
GRAR used WP as portal
• WP provides marketing site, themes, good look
• Special pages used naming convention to include custom PHP code (they didn’t have includeme plugin)
Custom PHP code used
• Security/access to pages
• Calling RPG stored procedures for heavy logic
• Live demo
Contact and tips
Alan Seiden Seiden Group Ho-Ho-Kus, NJ
[email protected] ● 201-447-2437 ● twitter: @alanseiden
Free newsletter: http://seidengroup.com/tips