How to: Scaling WordPress Servers & Deploys from Mark Jaquith

Ever wanted to learn how Auttomatic is handling & scaling the massive WordPress.com installation of 25 Million+ blogs? And, how they deploy code updates and fixes across 3 data centers and 1000s of servers?

Check out the video below from WordCamp San Francisco (WordCampSF) 2011 and watch the talk of Mark Jaquith (WordPress core developer).

Please let me know in the comments below if you know of other great posts, videos, or, resources about scaling and deployment of WordPress. Thank you!

Read More

How to: Install WordPress in a sub folder

Wordpress folder
Are you hosting WordPress yourself?

A great new feature is that you’re now able to keep the WordPress core folders and files in a separate sub folder.

The core files are all the WordPress installation files which you never touch or alter. All the other files which you upload, plug-ins, themes and configuration files are kept apart. This helps greatly to reduce the “unclean” mix of files of your installation. And, reduces the risk of deleting files which you should stay away from (the core WordPress installation files).

Another very helpful aspect of this feature is the ability to soft launch / beta test a new WordPress blog in a less prominent way (e.g. yoururl.com/testblog ) and than move it to the main location with the simple procedure below.

To reiterate: You can apply this in two ways, either by starting in a sub directory and than move the blog to the main URL/directory or you did set up your blog under the main URL/directory and want to move the core WordPress files into its own sub directory.

Below you’ll find the complete description from the WordPress codex about giving WordPress its own directory:

  1. Create the new location for the core WordPress files to be stored (we will use /wordpress in our examples). (On linux, use mkdir wordpress from your www directory. You’ll probably want to use “chown apache:apache” on the wordpress directory you created.)
  2. Go to the General panel.
  3. In the box for WordPress address (URL): change the address to the new location of your main WordPress core files. Example: http://example.com/wordpress
  4. In the box for Blog address (URL): change the address to the root directory’s URL. Example: http://example.com
  5. Click Save Changes. (Do not worry about the error message and do not try to see your blog at this point! You will probably get a message about file not found.)
  6. Move your WordPress core files to the new location (WordPress address).
  7. Copy the index.php and .htaccess files from the WordPress directory into the root directory of your site (Blog address). The .htaccess file is invisible, so you may have to set your FTP client to show hidden files. If you are not using pretty permalinks, then you may not have a .htaccess file.
  8. Open your root directory’s index.php file in a text editor
  9. Change the following and save the file. Change the line that says:
    require('./wp-blog-header.php');
    to the following, using your directory name for the WordPress core files:
    require('./wordpress/wp-blog-header.php');
  10. Login to the new location. It might now be http://example.com/wordpress/wp-admin/
  11. If you have set up Permalinks, go to the Permalinks panel and update your Permalink structure. WordPress will automatically update your .htaccess file if it has the appropriate file permissions. If WordPress can’t write to your .htaccess file, it will display the new rewrite rules to you, which you should manually copy into your .htaccess file (in the same directory as the main index.php file.)

Please feel free to ask questions in the comments section below. I’ll help you to get this set up and working. Thanks!

Read More

How to: Harden WordPress – Great Presentation on Security

Wordpress securityI found a great presentation about WordPress security which shows some great ways to harden your WordPress installation. This is very important if your’re hosting you own version of WordPress.

In this presentation you’ll find out about:

  • How to do regular database backups
  • Changing your administrator account user name
  • How to change your security keys: ensure better encryption of your sessions
  • Always update WordPress and all of your plugins
  • How to create strong passwords
  • Folder & file permissions
  • How to remove the WordPress version number from your html source
  • Enable SSL Login & admin access
  • Limit access to specific IPs
  • Change the Wordpess database table prefix
  • Userful Security Plugins

Wanted to share it with everyone. Enjoy!

Protecting WordPress from the Inside Out

View more presentations from Syed Balkhi.
Another great resource about WordPress security you can find here on the WordPress codex page about hardening WordPress.

Read More

How to change: WordPress autosave and post revisions

Wordpress LogoWordPress has a built in autosave feature that automatically saves when you’re editing a post. A big disadvantage is the default frequency at which it saves your posts, every minute is kinda often. So, if you use the WP editor to write your posts than you save quiet often and it might interrupt your editing.

What I usually do is to change this default value to something like every 5 minutes. You can alter the autosave behaviour by adding this define to your wp-config.php (interval is in seconds, 300 = 5min):

define('AUTOSAVE_INTERVAL', 300);

Even a higher value of 10 or 15min might make sense if you write longer posts and don’t want to end up with so many “autosaves” of your current draft…

Another feature which is pretty new is post revisions. You find them as one of the boxes below your post editor on the write panel. If these post revisions go unmanaged, they might significantly increase the size of your database.

define('WP_POST_REVISIONS', 10);

This define is telling WP to only keep 3 revisions. If you save the 4th revision, the first one is purged off.

It is also possible to disabled post revisions altogether, by using the following define:

define('WP_POST_REVISIONS', false);

Another way to solve this is to use a plugin, like:

Post Revision Control

By using this plugin you also get a very granular way to control the number of revision per post & page. Just in case if you think you need more / less revisions than your new default setting.

Hope this helps! Let us know what other useful defines you usually add to your configuration of WordPress. Thanks!

Read More

WordPress Updates in Seconds – Via SVN or Auto-Update

Wordpress LogoWordPress is getting a lot of updates lately and it is important to stay up to date with your installation. Even more important if its “only” a minor update, but a security update!

WordPress introduced a very simple way in the current version (v2.8) called auto-upgrade. See Upgrading WordPress:

Recent versions of WordPress feature an Automatic Upgrade. You can launch the automatic upgrade by clicking the link in the new version banner (if it’s there) or by going to the Tools -> Upgrade menu. After that it should be straightforward.

Automatic Upgrades do fail sometimes, though, so remember to backup your database first, and deactivate your plugins before starting the upgrade.

Note that your files all need to be owned by the user under which your Apache server executes, or you will receive a dialog box asking for “connection information,” and you will find that no matter what you enter, it won’t work.

If this doesn’t work for you there is always the good old way of doing a manual update:

  • downloading the latest zip archive, unzip it
  • copy over all of your files (wp-content folder, wp-config, .htaccess, all other custom folder/files you added to wordpress)
  • move the current installation to another folder
  • move the new version + your files back to the web folder

But, there is another way to keep WP up-to-date:

SVN or Subversion

First you need to be able to login to your server via SSH / Shell. Next, you need to check if you have Subversion installed (just type “svn” in the shell of your server). If this is all working than you’re good to go, otherwise you need to look into how to install subversion on your server.

There is a detailed description of how to update WP on the codex. All you have to do is:

$ mkdir blog
$ cd blog
$ svn co http://core.svn.wordpress.org/tags/2.8.4 .

WPMU users (codex page):

$ svn co http://svn.automattic.com/wordpress-mu/tags/2.8.4a/ .

If you’ve already installed WP and want to switch to updating via SVN:

$ cd ../blog
$ cp -p wp-config.php .htaccess ../blog-new
$ cp -rpfu wp-content/* ../blog-new/wp-content

Make sure to copy over all other custom files/folders and you should have a directory with the latest version of wordpress, running on your configuration. You’re ready for SVN 🙂

All is left now is to switch this new directory with your old blog directory:

$ mv blog blog-old; mv blog-new blog

… and to test your new installation by browsing your blog. Don;t forget to update your blog, if you

Updating your blog is now as easy as (always remember to replace [blog dir] with the correct directory of your blog installation):

$ svn sw http://core.svn.wordpress.org/tags/2.8.4 [blog dir]

Enjoy!

Read More

MyBlogLog releases JustForYou – Personalizes Your WordPress Blog

Today I installed a new WordPress plugin from MyBlogLog called JusrForYou.
You see an example set of recommendations to the left (taken from the quoted blog post below).

Here is the blog post explaining a little more about it “Just for You Personalizes Your WordPress Blog“:

Yet, none of these add-ons look at the stated interests of the individual reader, mostly because this data is closed off, hidden inside social networks and closed off to the open internet.

Just for You, released today as a WordPress plug-in, builds a list of headlines based on the expressed interests of the reader. The plug-in looks at each visitor to your blog and, if they are a cookied MyBlogLog member, looks up the tags attached to that user’s profile. Using these tags, Just for You looks into the blog’s archive for posts with matching tags or categories and shows a list of matching headlines in a sidebar widget.

A very interesting way of making suggestions for your blog visitors. In the comments you wil find some people complaining about some missing php extensions:

It seems your host is not supporting json data format. Please ask your hosting provider to enable json extension for php.

So, it remains to be seen if this plugin will work here on my blog or not. What do you think about this idea to provide recommendations to site visitors?

Read More