Install WordPress Using VirtualBox Part 2

Because WordPress is such a popular program, there are tons of resources available. After searching for installing WordPress on Ubuntu Server … I found this page.  I followed all of the instructions, with the two exceptions:

  • I did not configure a static IP address for the sandbox server.
  • I prefaced all commands with sudo.

 Once this was accomplished,  I ended up with the default installation page at:

192.168.219.212/wordpress/

wordpress_install

The first page that comes up is a page which asks for information which will will be written to the wp-config file.   Note that all of the parameters are identical to the ones that were used when setting up the mySQL database in the initial step.

wpsetup

The next page asks for the WordPress site name, and a login password.

wpinstall2

About 30 seconds later, you should see a message that WordPress was installed, and that you can now log in with the name and password that you just created in the last screen.  Do that and the familiar WordPress dashboard will come up.  Hooray!

wpdashboard

Install WordPress Using VirtualBox Part 1

Now that we’re WordPress experts,  I’m looking to get an instance of WordPress up and running to be able to experiment.  I’ve been trying this using VirtualBox on Windows 10.  I wanted to create a virtual web server using the latest Ubuntu server 16.04.

  1. Download the .iso file from Ubuntu
  2. Create a new virtual machine, “Ubuntu Server 16.04” within VirtuaBox. I gave it 4 gigs of RAM (half of the physical RAM in my workstation), and excepted all defaults for disk size, etc. The only difference afterwards is to change the Network Adapter from NAT to Bridged.virtualbox1

    3. Install Ubuntu. 
    During the Ubuntu installation, choose the option to install a LAMP server. This includes mySQL, the Apache web server, and the PHP language.

linux_install

4. Once Ubuntu is installed, the server will reboot. You will probably see that there are updates available.  So, to get these run the following commands:

sudo apt-get update
sudo apt-get upgrade

5. Figure out your local IP address:

ifconfig

If this address isn’t on your own subnet, then you can change the network specifications for the VM in VirtualBox from NAT to Bridged Adapter, then reboot the VM.

If all is well so far, you should see the Apache default home page when you type in the ip address into your browser.

apachedefault

At this point, we have a working web server running on our virtual machine.  Now we can actually install WordPress.  My first instinct for this was to use the apt-get method to install the files.

sudo apt-get install wordpress

This appeared to work but didn’t yield a running installation. So after searching I used these instructions to get to get a running WordPress installation.

 

Donation Processing with Stripe

Our site is based on WordPress.  We had a link to a PayPal donation page that we used for awhile. On recommendation by another organization we created an account at Stripe and are converting our online payment processing to Stripe.

We have a WordPress plugin called “Full Stripe” which handles the transactions.We went ahead and paid for the “pro” version of the plugin.

The Full Stripe plugin hosts the donation form. This is placed on a  regular WordPress page (i.e., not a post.).  stripeform

Once the form is filled out, and the credit card is successfully charged, the form will automatically take the user to a thank-you page.

The plugin generates a thank-you email which is sent to the email address that the donor puts into the form.  This email can be customized using regular html.  Right now there isn’t a very elegant way of editing or testing within  the email so  I did all the editing in Notepad++ and then pasted the resulting html into the plugin’s eMail form.

After some fiddling we got the form, the thank-you page, and the thank-you eMail all set.

YAPI (Yet Another Plugin)

For the plugin to be able to email donor receipts, it has to be able to access an SMTP server. In our case, we’re using Google Apps for Work, so that we installed a GMail plugin that overrides the PHP mail code inherent in WordPress.  The receipts are sent from a gmail account on our domain.  This took just a few minutes to set up and has a form for testing.

Review

So,  let’s review all of the bits and pieces necessary for the full solution:

  • Stripe – an account with Stripe connected to your bank account.
  • The WordPress Full Stripe plugin.  We purchased Full Stripe, and have been pleased with the enhanced capability over the free version as well as prompt and knowledgeable tech support. (Actually, we love the developer’s company name….Mammothology  Software…. we’d purchase anything from them.  🙂 )
  • The donation form.  This form is defined using parameters that are set by the Full Stripe plugin.  Right now the options are fairly modest in terms of formatting and fields, but the appearance is attractive and clean.
  • The donation page.  This is a WordPress page  that contains a WordPress shortcode pointing to the donation form defined in the Full Stripe Plugin.
  • The Thank-You Page.  This is another WordPress page that serves as a landing page after the donor successfully fills in the form and completes their transaction.
  • The Gmail plugin.  — Needed to send email from our Google Apps for Work domain.
  • The Thank-You email.   This is a personalized email sent to the donor.  The html code for this is defined within the plugin.  As noted,  I tested this with code written in Notepad++ (on Windows) and TextWrangler on the Mac.
  • The Stripe Thank-You email.   This is a second email that comes from Stripe which shows the last 4 digits of the credit card, and that fact that the card was successfully charged.

Odds and Sods: MailClark is out of beta, etc.

screenshot_102816_104525_amMailClark, the eMail robot for Slack came out of beta on October 27th. They have instituted reasonable pricing and even include a single eMail address for free, which should work for us at least temporarily. I was hoping that they would introduce nonprofit pricing,  but with the free address, and a price of $9.00 per month for unlimited inbound and outbound emails   we can probably afford it if necessary.

filemaker_cloudJust after buying our FileMaker 15 server license, FileMaker announced FileMaker for the Cloud. Essentially it looks like Amazon Web Services running an instance of FileMaker server.  Oh well. We’re pretty happy with our server running on a Mac mini,  with up to five users and have been deploying our nonprofit CRM to production, adding users one-by-one using desktop licenses for FileMaker Pro.   I still think there is a case for reasonable fixed pricing as opposed to subscription pricing,  and this is what we’ve got through TechSoup.

screenshot_102816_104818_amApple announces new MacBooks.  Fair enough.  Expensive though…. the least expensive MacBook, without the OLED touch bar is $1500 for 256GB SSD disk and 8 gigs of RAM.  The OLED touch bar adds $300.00 to the price! Oh and they upgraded Apple TV.   What about the MacBook Air,  Mac mini,  and the iMac?  Nichts, nada, silence….

 

Odds and Sods

Apple Fall 2016 Product Announcements

Are the  Apple product extravaganzas vaguely creepy? It seemed if you were a presenter you had to be a gray-haired guy wearing a rumpled denim shirt. We are so excited.   The new Home button!  The special adapter for plugging your old earphones into the Lightning port! Everything is so awesome. Each tiny incremental change is touted like a family FaceBook update.

We wanted a refreshed MacBook (four years old). We got Pokemon on the iWatch.

Biggest news was probably the upgraded camera on the iPhone.

Upgrade to Quickbooks 2016

We have upgraded our QuickBooksPro 2014 to QuickBooksPro 2016. There doesn’t appear to be any major changes from an installation standpoint.  The main steps include:

  1. Purchase Quickbooks Pro 2016 3-user license through TechSoup. The result of this purchase process is that you receive a unique license ID number.  You’ll need that number plus the “product ID” number to complete installations on each machine.
  2. Download Quickbooks Pro 2016 to each workstation.
  3. Download Quickbooks Pro 2016 to the “server”  Our server is a re-purposed  Windows 7 workstation with a shared folder for the Quickbooks data files.  When you use the Quickbooks installer on the server,  choose “Host the company file on this machine, but access it from Quickbooks on other machines”
  4. Copy the company data file to the shared folder on the server.
  5.  Run the Database Manager on the server, to make the file available to the workstations.
  6. Open the file on the workstation(s).
    A few more hints on configuring the server are located here.  Don’t forget the AntiVirus!

 

PCI compliance.

If you take credit cards and handle the actual card data, then you may have already been prompted to certify that you are in compliance with the PCI security standards. This requires a yearly questionnaire and a quarterly scan of your public IP addresses. You can get started by doing free scans from HackerGuardian. If this works for you and you need to continue with scanning you can get a 3 year subscription via TechSoup for $67.00.

Progress with MailClark, Slack, FileMaker, WordPress

Somemotor-1381998_1280times you just have a week where you are grinding away at things, and nothing particularly new or spectacular happens, and no new revelations are on the horizon. This was one of those weeks.

MailClark and Slack

The MailClark experiment is moving into its third week. As I hoped, it  appears to be working well as an application for low-volume  email customer support. In another couple of weeks, I will introduce this to the rest of the customer support team, so that more than one of us can respond to emails and questions sent in to our help address.

FileMaker CRM

Our FileMaker CRM is taking shape. I have built the basic tables, and am working on the data entry screens. I’ve hosted it on a new Mac Mini with an SSD drive using FileMaker Server. This is the first time I’ve ever used an SSD up close and personal (all Linodes are SSD based), and I’m impressed with the speed.

FileMaker has been steadily improving the web client of the application called WebDirect. This is an effective implementation of the regular FileMaker desktop interface, but rendered in HTML5 and CSS for a web browser, which eliminates the need to install the FileMaker software client on your desktop workstation.  My thought is that we will provide access to the CRM via a virtual private networking connection rather than allowing direct access through our firewall.

Similar to FileMaker Go, the FileMaker client that runs on iPhones and iPads, I  expect to build dedicated data entry screens for the web clients. This means that each platform gets its  own screens….desktop,  iDevice, and web.  The startup script for the application will contain a CASE statement which determines which platform you are connecting with, and point you to the correct screen.

So far the data design and use cases appear to be pretty accurate and for the most part remain unchanged. One thing I have done is add a “reference” section. This will provide a front-end for the National Center for Educational Statistics database of public and private schools.

WordPress and Apache

I spent a couple days faffing about with my Apache / WordPress installation, trying to figure out what what slowing down our blog. It turns out to be hidden in plain sight, and here is one explanation.

 

Troubleshoot Apache with mod_status

We are having a bit of a contretemps with one our of Linode blog hosts. This host is running Ubuntu Linux 12X  LTS and WordPress, and seems to be having fits of high CPU utilization. One way to see into the web hosting process is to examine the Apache mod_status page.

Mod_status is an Apache module which prints statistics about the Apache application. By default the page will be accessible using the the suffix of /server-status on your root web site URL. http://mysite.com/server-status. However, by default this is restricted to a request from a browser at the 127.0.0.1 address.

If you log into the console, you can attempt to see the status by running the following:

apachectl status

or if you aren’t logged in as root,

sudo apachectl status

This returns the status page.

Screenshot_071516_011101_PM

If you are attempting to access this from a browser on another workstation via http://mysite.com/server-status, you get a 403 message:

Screenshot_071516_110946_AM

The first thing is to find where this restriction is located. It is going to be in one of the Apache configuration files. These are located within /etc/apache2. If the status module is enabled, there will be a status.conf file that can be edited.

sudo nano  /etc/apache2/mods-enabled/status.conf

Screenshot_071516_112041_AM

Edit the lines after the <Location /server-status> line, per the instructions. After editing mine looked like:

<Location /server-status>
   SetHandler server-status
   #Require local 
   Require ip 192.168.xxx.0/24
</Location>

where “xxx” is your local subnet.  In the above example, I’m accessing the server from inside the firewall from a workstation located on the same subnet as the Apache server. (In reality, I’m actually accessing a server running within a VirtualBox virtual machine, located on my Windows machine. )

Once these changes are made you have to restart Apache.

service apache2 restart

 

If this is successful,  you get a page similar to the character-based page, but nicely formatted in html. Since the data is similar, however, if there is any issue trying to get at the statistics, probably the character-based method at the console is the first thing to try.

Screenshot_071516_011525_PM

Ah…but what if you get a page, but it isn’t a status page?  This is the problem we have with our WordPress site, and it has to do with which page is served as the default. http://myblog.com/server-status  returns the default page from the blog rather than the server-status page.  Stay tuned for that fix.