Although Dreamhost supports Wildcard DNS, they don’t support Wildcard SSL (except on DreamCompute), so WordPress Multisite with wildcard subdomains may not be the best choice.
TL;DR
Dreamhost & Wildcard DNS
Setting up WordPress Multisite
I suggest not using Wildcard DNS with Multisite subdomains – and show how to get SSL on Multisite by registering each subdomain first
Years ago, I had Dreamhost set up Wildcard DNS for me, but it frustrated me that I could never get secure HTTPS connections for the subdomains.
Turns out manypeople have also had issues with this. And although I still don’t have a Wildcard SSL certificate solution that works, I have found a work-around that will suit my present situation.
Note
This work-around basically nullifies my Wildcard DNS because I have to register each subdomain individually from the Dreamhost Panel.
In any case, this is the setup I currently have and Dreamhost’s position on each:
First, ask yourself if you REALLY need a Multisite installation, and if so, how many subdomains you expect to need. In fact, it’s actually an easier option to opt for subfolders rather than subdomains for your extra sites as this would make your SSL and Wildcard DNS problems virtually disappear.
With subfolders
SSL would load from the root domain
You wouldn’t need to create additional subdomains at all
Second, ask yourself if you REALLY need Wildcard DNS. As noted above and below, Dreamhost doesn’t support Wildcard SSL certificates.
If you really need Wildcard DNS and Wildcard SSL
Consider moving to DreamCompute – which does support this (with additional configuration on your part)
Consider moving to a hosting provider that supports this configuration
Reconsider Wildcard SSL altogether and just accept that you’ll be registering subdomains through the Panel and getting Let’s Encrypt certificates for each one (as outlined below)
The simplest way to get SSL on a subdomain is not to use wildcard subdomains in the first place.
One of the most compelling reasons to use Multisite with Wildcard DNS is if you want to allow the creation of multiple subdomains without registering them through your Panel first. This would enable you to, for example, allow users on your website to create their own subdomain blogs within your larger site when they register or subscribe to your site’s membership plan. (This is the reason I’d originally wanted Wildcard DNS.)
But, the problem with hosting such a site on Dreamhost is that they don’t support Wildcard SSL certificates, so every site created through WordPress Multisite will say it’s “insecure” even if you load it over HTTPS (and Google Chrome will also put up a blocker alerting you of the fact).
Main idea
Don’t employ Multisite to (initially) create subdomains.
I tried the following methods to get SSL on my subdomains and each failed:
Create a new subdomain (v2012.site.com) via Multisite
The subdomain does not use the main site’s SSL
Register that same Multisite-created subdomain through the Dreamhost panel and “mirror” the site to the root site. Then get an SSL certificate for the “mirrored” domain (v2012.site.com)
“Mirroring” basically says “set up the exact same site at both locations and use the same SSL” – so again, only the main site’s SSL will work
Change the “mirrored” site to “redirect”
This bypasses the subdomain altogether and maps all traffic from the subdomain directly to the main site (site.com)
Finally, after much trial-and-error, I stumbled upon Ian Dunn’s article that provides the solution.
Solution
Setup your subdomains as “Fully hosted”, but set the web root (Web Directory) to the same directory as the root domain. (And re-save SSL settings if applicable.)
Be sure to also now get yourself a FREE Let’s Encrypt SSL certificate before you save these Settings (click HTTPS under the Web Options section).
(Re)create the Site through WP Multisite
The problem with doing things this way is that now you’re no longer really taking advantage of your Wildcard DNS. And actually, just creating a subdomain through the Dreamhost Panel won’t set up WordPress Multisite to run on the subdomain.
So, the next step is to go back into your Multisite installation at the root of your domain and create (or delete and recreate) your subdomain Site.
Re-saving SSL settings
Now, if the (new) site still isn’t loading HTTPS securely, there are two possibilities for this:
You didn’t wait long enough for the Let’s Encrypt certificate to take effect (in that case, refresh the page in 5-10 minutes and check again)
To re-save your SSL settings, click the https On link in the center of your Domain Registration listing table under the Manage Domains menu item.
On the next screen, check the box marked Copy non-secure settings and Save it.
Force HTTPS
There’s one more thing to be sure of – that HTTPS is always loaded regardless or whether or not an HTTP or HTTPS URL is accessed. You can do this with the following code inserted into the top of your .htaccess file in the root of your Multisite installation directory:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule>
These are some of my notes from setting up a WordPress staging site through Dreamhost using the Duplicator plugin.
I recently tried to access a website I’d created for a South Korean start-up over 2 years ago only to find that the entire contents of the web directory had been deleted. Within a day or two of this realization, the CEO contacted me and asked me to “fix” it.
Luckily for me, Dreamhost had updated the site in the last year and had created a complete archive of the site at /sitename.com.old. But, I didn’t want to run into this situation again in the future without a backup, so I decided to create a staging site for it. This was to accomplish 3 things:
To maintain a FULL copy of the functioning website (as it is now)
To teach me how to create a staging site so I can repeat the process with my personal sites
To allow me to make changes to my websites that are not “live” – to test and debug them before implementing the changes on my “live” sites
Thankfully, Dreamhost and the Duplicator plugin make this process pretty painless. Here are the steps I took:
#1 Dreamhost
1. Create a .dreamhosters.com subdomain
Dreamhost provides FREE subdomains on the .dreamhosters.com domain to its customers. This is a recommended location to create a staging site. The following article outlines this process:
When you create the .dreamhosters.com subdomain, be sure to assign the same user to it as you are using for the original site. This will make the next step much easier.
2. Copy ALL files to the new subdomain
Personally, I’ve found it much much faster and easier to ssh into my site and copy all the files using the command line (rather than via FTP). For this to work, you’ll need to keep a few things in mind:
The same user needs access to BOTH the original site and the new subdomain so that when you ssh in, you can run the Linux copy command from the root folder.
Now, in a Terminal window, ssh into the site, and run the following command to copy all site contents to the new subdomain.
[server]$ cp -a originalsite.com/. staging.dreamhosters.com
We’re copying the files over NOW because Dreamhost Shared hosting won’t allow us to create and download large archives with the Duplicator plugin. So it’s better to do the Two-Part Install instead of relying on Duplicator for the entire process.
#2 Duplicator
1. Install & run Duplicator on the original site
Dreamhost has a helpful article that lays out this process.
Continue the Migration tutorial from step #9. Upload BOTH the archive.zip and the installer.php files from Duplicator to your staging site via FTP. Then, navigate to the installer on your staging site:
http://stagingsite.dreamhosters.com/installer.php
When it asks for your database details, be sure to “Test Database” to make sure you can connect. Then run through the rest of the steps in the installer.
Also remember to “Remove installer files” after logging into your new /wp-admin area (there will be a link).
Review & Resources
Overall, the process of setting up a WordPress Staging Site with Dreamhost and Duplicator was much easier than I’d originally anticipated. Here is a condensed list of the steps and resources covered in the tutorial above.
Over the years, I’ve collected numerous tips for better teaching, better presentations, making course materials, and presenting your best professional face to the world – both in person and online. This talk will include a collection of at least 10 such tips.
The best Teachers are Life-long Learners
With this presentation, I hope to convey to you that becoming life-long learners is the #1 best way to become a better teacher. Over the past 10 years, I’ve accomplished the following and grown immeasurably:
170 Lynda.com (LinkedIn Learning) courses
100+ books (Audible.com)
Online Master’s degree (Full Sail University)
Online Nanodegree (Udacity)
If you want to stay “ahead of the curve” in any industry (or even keep up, let alone catch up) you need to become a life-long learner and make a habit of keeping up to date with the goings-on in that industry.
Contents
Google
Google Classroom
Google Tips
Google Drive
Korean
Korean Grammar
Korean Vocabulary
Korean Games
Apps
Lightshot
Audacity
LinkedIn
Bonus
Bullet Journal
1.1 Google Classroom
Google Classroom is a great way to stay organized as a teacher and distribute assignments to students in a whole class or individually. Check out the following links for some of my other presentations on Classroom:
Google Service is the most ubiquitous, powerful, and yet also the most under-utilized Google service. Follow the link below to get some tips for making the most of it. There are 10 other Google Services listed as well:
Plus, Drive is a great way to keep your USBs safe (by simply not using them). But if you insist on hanging onto your USBs, you should really install Panda USB Vaccine to disable Autorun that often gets you viruses when you plug it into an infected computer.
2.1 Korean Grammar
As you learn more Korean grammar, you’ll be better able to teach English grammar. You’ll be better able to pick out common mistakes and explain English grammar patterns in a way that is easily understandable.
But first, you might want to learn Hangul touch typing. This will save you loads of time in the future, if you type in Korean much. It can also be quite beneficial in class to type 명사, 동사, and 형용사 (noun, verb, adjective) and other things to help you explain the grammar patterns better.
2.2 Korean Vocabulary
Did you know it’s possible to learn 3600 new vocabulary words in 4 months by only practicing for around 30 minutes per day? Have you ever tried it? I’m living proof that the method outlined in the link above works.
And here’s a video with 10 more suggestions to learn new words. Use it yourself or share it with your class:
2.3 Korean Games
Learning a little Korean pop culture also provides you with a great opportunity to connect with your students on a new level and make classes more interesting and engaging for them. Here are three games that they’ll all be familiar with that you can learn in class to teach new vocabulary:
Lightshot is hands down the BEST screenshot app I’ve ever come across (yet). It’s so good, I install it on every computer I have access to. I’ve also installed it on every computer in the lab at the high school I work at.
Simply press the PrtSc button to darken the screen and get a crosshairs mouse pointer
Draw a shape around the area you want to copy, print, or save
The editing tools in the app also give you the ability to DRAW or type anything within the space you’ve outlined
Key point: Basically, you’ll be able to create an instant on-screen whiteboard in any class to draw on scans of the book or highlight grammar points in a document you’re showing on the projector
3.2 Audacity
Audacity is the best FREE audio editing app, and it’s great for making listening tests. It’s so versatile that I’ve used it for the following:
Recording podcasts
Editing sound for movie production
Creating pop song remixes and mashups
3.3 LinkedIn
Find me on LinkedIn here. I’ve optimized my profile to showcase my professional skills and abilities. These days, your “resume” isn’t just something you hand in on paper. Every employer can (and will) Google Search you, so it’s important to have something online that is complete, professional, and highlights your accomplishments.
There are plenty of great books online to help you optimize yours.
Bonus: “Real” online resumes with WordPress
If you couldn’t tell by the rest of this site, I’m a big fan of WordPress (this site is built on it as well). WordPress is the BEST way to get started cultivating your professional online presence. You have two to choose from:
WordPress.com is a managed host – you just pay the bill
If you really want to stay organized (a very good idea in today’s busy world), going analog (paper) is so much better than taking everything digital (too many distractions). The Bullet Journal is one of the best methods I’ve found for staying organized. Check out the following for more details:
Let me leave you with three quotes from some of my favorite authors and public speakers regarding your “Professional Performance.”
Either run the day, or the day runs you… Time is more valuable than money. You can get more money, but you cannot get more time… Time management is the best kept secret of the rich.
Jim Rohn
The whole purpose of time management and getting more done in less time is to enable you to have more time to spend with the people you love, doing the things you enjoy.
Brian Tracy
‘Time management’ is really a misnomer – the challenge is not to manage time but ourselves. The key is not to prioritize what’s on your schedule, but to schedule your priorities.
Stephen Covey
Bio
Aaron Snowberger is a Google Certified Educator, Trainer, and G Suite Administrator. He teaches Computer Science & Graphic Design at Global Prodigy Academy and English at Jeonju University. He also does freelance graphic design and website programming work, specializing in WordPress and React. He has designed multiple publications, websites, and KOTESOL posters, and has previously presented at the KOTESOL National and International Conferences, as well as the Seoul WordPress Grand Meetup. Apart from work, Aaron also enjoys cycling and playing musical instruments (like bass guitar).
This year, I decided to create an Advent Calendar website in HTML5, CSS3, and JavaScript. My hopes for the site are to showcase some of my frontend development abilities as well as make something fun, functional, and reusable.
Today is the big day! WordPress 4.7 launched this morning (in Korea) with the WordPress REST API content endpoints included in core (and a pretty great updated REST API Developer Reference as well). So… you know what that means. Today is the day I get the Advent Calendar to pull my blog posts with the (core) WP REST API! There are X steps:
Revisit Day 2 where I set up the basic infrastructure for ReactJS & REST
Update to WordPress 4.7 – where REST endpoints will work immediately (cool)
*Side note: Be sure to get Postman’s output as JSON for an easier view.
React Component
Actually, I hadn’t already created my React function to render the retrieved Component. I’d only filled in a blank <div> as a placeholder. So, the next step was to create an HTML structure in the React class that would receive the array of Posts from my REST API query and render them to the page.
Then, I added some basic CSS styling to make them look a little better on the page after loading.
BabelJS
Finally, after setting everything up and Saving the Codepen, I noticed a small error in my JavaScript console in Chrome: "Unexpected token <". That’s weird, I thought. But then I noticed that the color highlighting in the Codepen was incorrect after a certain point – and the posts from React weren’t displaying quite properly. I checked back at the other Codepens I’d referenced that were using React to load JSON data and noticed that many were using the Babel JavaScript preprocessor. I thought, what the heck, added it to my project and *BAM!* the magic truly DID begin! Smooth loading of posts on the Codepen directly from this blog!
But… that’s Codepen. If I wanted to continue local development, it wasn’t going to be nearly so easy as that. I’d never heard of BabelJS before this, so I started investigating it and found out that it is often used with React and other scripts to create modern JS like ES2016. I realized I’d need to install the Node Modules for React, Babel, and Grunt to run all of these together, so my research and work began. There were X steps to complete this process:
So far, I’ve been able to get Grunt to successfully “watch” for changes to my Sass files and my ReactJS files and run their compilation tasks. But, now I’m getting an Uncaught ReferenceError: require is not defined(...) error. Well, looks like fixing this is on the schedule for tomorrow!~
References
The following are some React and BabelJS references I was perusing today as I tried to get things to work. I haven’t finished reading through all of them yet:
She does note that in-browser compilation is slow – and shouldn’t be used in a production environment. So, it’s good that I’ve started getting Babel set up as a module to precompile my JS before using it in the webpage.
WordPress currently powers over 25% of the Internet’s top sites. What is it and what makes it so popular and powerful? This talk introduces the audience to the “democratization of publishing” that is WordPress.
Hello, my name is Aaron Snowberger. I’m a hobbyist WordPress theme and plugin developer, graphic designer, and English teacher at Jeonju University. I run a WordPress Meetup and workshop in Jeonju and was invited here today to give an overview presentation about WordPress. So, this talk is a modified version of the first one I gave in our Jeonju Meetup in January.
I usually present in English, but was encouraged to try this presentation entirely in Korean, so please give me some grace – it won’t be perfect, and I’ll try not to bore you – at least my PPT is pretty, right?
In this talk, I will address 4 main points that span the topic “Open Source, WordPress, and the Community.” They are:
“Source” is the computer code that creates a program
So, “open-source” is computer code that is freely available to the general public – for anyone to use, change, or share with anyone else. It’s a de-centralized model of software production that provides extensive code documentation to the public for free and encourages community contribution to rapidly build upon and improve the original program.
Contrast this with “closed-source” code and technologies that are often developed in-house to be sold. In some cases, there may be criminal penalties for copying, modifying, disassembling, or even studying the internal source code.
More developer support (anyone, anywhere can work use it)
More customizable
More secure (thousands of people can view and fix the code)
Extended Community Support
Closed-source:
Less choices and customer confusion (there’s only ONE version of the software)
More unified experience (Apple always looks like Apple)
More profitable (charge developers to use it, lock out competitors)
Content Management System
What is a CMS?
Years ago, most websites were built page by page, coded by hand, and filled with static content. (I built some of those websites.) These days, websites are filled with a much greater quantity of dynamic content that is often updated on a daily basis.
In order to make the administration of large, fast-changing websites more manageable, Content Management Systems (CMSs) were created in the late 1990s to reduce the need for hand-coding every page and to create a web-publishing interface that more closely resembles a word processing program like Microsoft Word. This enables anyone with an Internet connection and basic word processing skills the ability to quickly create and publish dynamic content to their webpages.
Additionally, website components like the header, the footer, the sidebar, and the various content pieces are broken up into individual files that can be managed separately and loaded dynamically when a website is opened.
It is much nicer to be able to manage each website piece individually (only one code file) than needing to open (up to dozens of) separately coded webpages to modify something as minor as a changed logo in the footer. (I also used to do that.)
GPL Version 2
What is the GPL2?
GPL stands for GNU General Public License (GPL) version 2 and is the legal license that covers WordPress and its source code. The GPL2 is copylefted (a play on the word “copyright”), which means that any software under its license that is used, modified, or distributed must retain the same license terms in order to be legally distributed.
This means that software companies or other developers cannot legally change the license of WordPress code or derivatives of it to closed-source. WordPress and its derivatives are therefore “forever free” under the GPL license for everybody.
In a recent interview, WordPress co-creator Matt Mullenweg described open-source code as:
The most important idea I’ve been exposed to in my life-time … it’s like a Bill of Rights for software … it basically says, “Here are four freedoms that are inalienable rights that you have when you use open-source software.”
The software is completely FREE to:
Use commercially
Modify or build upon
Distribute
Place under warranty
So long as you:
Track dates/changes in the source files
Keep all modifications under the same GPLv2 license
WordPress was started as a joint software project by Matt Mullenweg and Mike Little in 2003. It was a fork of another open-source blogging platform called b2 (cafelog) that Mullenweg had built a blog on.
In his own words:
[WordPress] started as a fork (or a derivative) of another open-source project. There was this thing out there called b2 which I was using and blogging with myself and the creator disappeared, so the development stopped. Myself and this guy in England, Mike Little, picked it up and kept working on it.
The two eventually met personally in London in 2005, the same year that Matt formed the company Automattic (notice the “Matt” in there) and WordPress.com went live.
Automattic is the driving force behind WordPress.com and some of WordPress’s most popular plugins like Akismet for blocking spam comments and Jetpack for powering up your WordPress installation.
This is a topic I found necessary to clarify in the Jeonju Meetup because many of our first visitors were confused about the difference between the two.
The major difference between WordPress.com and WordPress.org is that the .com is a SERVICE and the .org provides the SOFTWARE.
The major difference between a blogging SERVICE and blogging SOFTWARE is that a SERVICE (like Wix.com or Squaresoft.com) lets you use a standard installation of the software on their own servers (but are limited in your ability to customize the code yourself). But by downloading open-source SOFTWARE on your own, you have the freedom to fully customize any aspect of the code yourself. You are only required to find your own website host.
Think of it as the difference between renting a house and buying one.
WordPress.com is the renter you don’t really “own” (http://yourname.wordpress.com) – you can’t change all the wallpaper to exactly how you might like, and you have to call the landlord if something breaks
WordPress.org provides the home you “own” at your chosen address (http://www.yourname.net) – it comes with the complete freedom for you to redecorate and redesign as you please
So, in this way, WordPress.com is the best place for people starting out with the software to learn how it functions and how to best use it. Then, once you’re comfortable with it, you can move over to WordPress.org to download your own version of the software.
In summary:
WordPress.com
Is a hosting SERVICE
Is like a house you rent
Is limited in freedoms, but provides paid upgrades
WordPress.org
Hosts the (downloadable) SOFTWARE and all documentation
Gives you access to a house you can “own”
Is virtually unlimited in customization options
How big is WordPress?
WordPress currently powers over 60,000,000 websites around the world – that’s 23% of all the world’s websites – and Automattic is valued at over $1 billion.
There are some nice collections of sites at isquery.com and hwangc.com, or you can see a random selection of 4 WordPress sites in the Showcase on ko.wordpress.org.
Why should you care?
#1: It’s Free
Because of its open-source nature and the GPL2 license, you never have to pay any kind of licensing fees to use or modify the software.
Whatever your mind can conceive and believe, you can achieve. – Napoleon Hill
#3: It’s Scalable
WordPress.com is the world’s largest SINGLE INSTALLATION of WordPress. There are over 500 million users with their own unique database tables that are running on a SINGLE code base. Now that’s pretty impressive!
In the same way, WordPress can scale to meet any of your website needs – whether you are a blogger writing a daily diary, or a Fortune 500 company that needs individual store sites for each of its +1,000 stores (Best Buy).
#4: It’s Growing
In 2014, there were 81 WordCamps (large-scale WordPress conferences) held in over a dozen countries. And 2014 was also the first year that non-English downloads of WordPress surpassed English downloads. This shows the company is growing internationally as well as in the US market.
Additionally, the number of monthly unique visitors to WordPress.com is comparable to the number of monthly unique visitors to Facebook – though the company is much smaller.
In fact, after transferring one site (TheJeonjuHub.com) from static HTML to Joomla! in 2011, I ended up transferring it over to WordPress within 2 years to better enable the content creators of the site to work. Joomla! menus and the backend just ended up being more complex than they needed to be.
If you can Word, then you can WordPress. The Editor interface is virtually the same.
#6: It’s great for Platform Building
If you want to sell anything, you need a platform. WordPress is an amazing platform building tool that makes it easy for anyone to take a simple blog with 30 views per month to over 30,000 views per month (I speak from experience).
Main idea:
If you have a story worth telling, then you have a platform worth building.
#7: Korea is a Growing Market
According to a graph of Google Search trends I recently looked up, South Korea has a Search Volume Indexof only 15 with regards to searches for WordPress and WordPress related topics. Compare this with neighboring countries and you can see there is a lot of potential for growth in Korea:
South Korea: 15
Japan: 26
Russia: 25
China: 20
Mongolia: 34
Philippines: 57
Malaysia: 40
Indonesia: 76
United States: 46
Additionally, there is great support for WordPress in Korean provided by the WordPress community here.
#8: The WordPress Community
The WordPress community is quite large and very supportive, helpful, and friendly. WordPress Meetups are held all over the world to teach and help others build WordPress websites.
I’ve begun a WordPress Meetup in Jeonju because I wanted to a place to get together regularly with other WordPress users help them build their websites. I actively encouraged the Liberal Arts department at Jeonju University to start using WordPress for “flipped classrooms” and teacher websites and a majority of the 33 foreign teachers took my advice and created their teaching sites on WordPress.com. I’ve run a number of workshops and helped individual teachers improve their sites on numerous occasions, so I decided it was about time to do something more regularly.
I’d initially begun the Meetup with the idea to only target foreign expat users who might want to run a teaching site or blog, but thanks to my invitation here and the encouragement to present in Korean (something I’m still quite shy about), I’ve decided to extend the Jeonju Meetup for an extra hour or two and invite Korean speakers to come in and share about WordPress there as well. (Hopefully I’ll also be able to “level up” my Korean speaking skills there.)
WordPress Support Staff call themselves “Happiness Engineers” and make it their job to “deliver happiness” on the user forums:
There are numerous ways to get involved with the WordPress Community – and you’re already participating in one by attending this WordCamp. The others are suggestions from make.wordpress.org:
Contribute to Core development
Build plugins
Design themes
Create Web apps
Help out in the Support Forums
Help write documentation or training materials – even tutorials on your blogs
Help translate the core, themes, or plugins
Join (or form) a WordPress Meetup
Again:
Whatever your mind can conceive and believe, you can achieve. – Napoleon Hill
So the real question isn’t “What can you do with it?” but rather:
What will you do with it?
Liked my PPT and talk (article)? Leave me a comment below.
Or for our Meetup members, feel free to ask any questions you might have about WordPress or give me suggestions for the next Meetup subject and talk!~
For SEO, sign up for Google Analytics to start tracking your site and learning which keywords attract visitors. Also, get a good couple of good WP plugins like SEO by Yoast (which is the highest ranked and most downloaded SEO plugin for WP in history). Also get Google Analytics by Yoast for better tracking.
I recently read through HTML & CSS by Jon Duckett and it has a simple (though comprehensive) 2-page walkthrough on SEO. The basic things you should know are:
On-site SEO tactics and
Off-site SEO tactics
On-site SEO tactics include:
Having your targeting keywords appear in every:
Page <title>
URL
Headings <h1>
Body text 2-3 times each
Hyperlinks (make them descriptive, not just “click here”)
Image <alt> attributes
Page <meta> description
(The Yoast SEO plugin takes care of ALL of this for you on a page-by-page basis).
Off-site SEO tactics include:
Getting links IN to your site from other (relevant) sites. You can do this through:
Social Media sharing (and enabling social sharing buttons with other plugins)
Commenting (and ADDING VALUE) on other blogs in your industry with a link back to your site (no spam and no “Nice post” stuff either)
Guest posting on other blogs with a link back to your site.