From the category archives:

Internet 101

For months I was annoyed at the inability of my WordPress installation to automatically upgrade both plugins as well as the core installation. Every time I had to do a core upgrade of WordPress, I would manually download the zip file, unpack, copy the wp-contents and wp-config files and then take care of any outdated plugins. I tried many, many times to open the FTP ports on my instance and do the upgrades, but time after time I got the same annoying connectivity error.

I decided today to end all that, as I am getting ready to get back to blogging (after a couple of months hiatus, related to a project I’ll share with you later) and wanted to start with the new WordPress 3.0.

First of all, I needed to figure out how to open the FTP server of my instance, since I don’t have it open all the time. I highly recommend to everyone to keep FTP closed, and only open as needed (minutes is better) as FTP can be easily be exploited by hackers.

FTP works with multiple ports. On one hand you have the standard ports, which are port 20 and 21, and on the other a “passive” control port that is randomly picked per session.

I recommend that you use vsftpd, which is standard on most Linux installations. You can start and stop vsftpd using the command: sudo /sbin/service vstfpd start (or stop).

First, you will need to edit your vsftpd config file by editing /etc/vsftpd/vsftpd.conf. At the end of the file, insert the following snippet:

# Passive support
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

pasv_min_port=51000
pasv_max_port=51999
pasv_address=201.201.144.144
pasv_addr_resolve=YES
cmds_allowed=USER, PASS, QUIT, PASV, RETR, SYST, PWD, NOOP, CWD, STOR, LIST, DELE, MKD

The pasv_min_port and pasv_max_port can be any range you pick, as long as they are available on your instance. Then, on the pasv_address put your instance’s Elastic IP address or publicly visible IP.

Next go to the AWS Management Console, and under Networking & Security select the Security Groups option and make sure to add two entries on the list of ports: one for TCP ports 20 to 21 and another for TCP ports 51000 to 51999. See the graphic below:

Now, make sure you start vsftpd (using sudo /sbin/service vstfpd start) and check from an outside computer that you can log in to your machine. You need to make sure that you have a user that will be chmoded to your root wordpress installation (using the command useradd, as described here).

One last thing on the FTP side is that the apache user has access to your whole installation (as the upgrade process will be driven by the WordPress program which runs as apache). You can do that by issuing sudo chown -R apache:apache blog/.

If you try doing the upgrade now, you could still receive this cryptic error message: “Unable to locate WordPress root directory”. I found the fix, via this blog, where you basically add the following snippet at the end of your wp-config.php file:

if(is_admin()){
add_filter('filesystem_method', create_function('$a', 'return "direct";'));
define('FS_CHMOD_DIR', 0751 );
}

Try now — if the WordPress Gods are smiling at you, you should be able to upgrade via FTP. A reconfiguration of the WordPress may be necessary, so make sure to do a backup of your blog DB. But I’ve got to say, once I saw WordPress’s 3.0 Dashboard only after a few seconds, I was glad I spent the time to finally get this to work. I also upgraded a couple of plugins without any problems.

After you’re done, remember to shut down vsftpd — don’t let it running on your instance to avoid possible hacking, by doing sudo /sbin/service/vsftpd stop

Let me know if this worked for you. I’m looking forward to a whole lot of blogging in the following months!

{ 5 comments }

How to Bring Some FriendFeed Love to Facebook

August 15, 2009
Thumbnail image for How to Bring Some FriendFeed Love to Facebook

As every other FriendFeeder out there, I wanted to start the slow and painful migration from FriendFeed to Facebook (ironically FriendFeed staffers are moving as well) and of course, it’s been a rocky ride so far. I don’t feel quite as home, and the lack of real time kills me at times, but I wanted to share with you how I’ve managed to make an initial comfortable nest on the new tree.

Read the full article →

Trust the Cloud? Then Don’t Put Your Life On It!

August 10, 2009
Thumbnail image for Trust the Cloud? Then Don’t Put Your Life On It!

Do you have precious content on Google Docs or Flickr or some other cloud service?

Back it up locally. Now!

There’s a flurry of activity regarding the death of tr.im, a popular URL shortener service that wasn’t able to enter into a path of self sustainability.

The losers, as usual, are its users.

The fact is we’ve become too used to having reliable, free web applications. The truth is that these companies are, in most cases, launched first to see if they grab an audience, and then try to make a business model to continue sustaining their operations. Louis Gray has a great post about the cycles that these companies go through.

Please, learn this golden rule: if you are not paying for it, it might be gone tomorrow.

Read the full article →

PubSubHubbub + WordPress + Feedburner + FriendFeed = Realtime Awesomeness

July 27, 2009
Thumbnail image for PubSubHubbub + WordPress + Feedburner + FriendFeed = Realtime Awesomeness

PubSubHubbub is a fancy name for a rather new protocol being promoted by various services like FriendFeed, which allows you to receive updates of RSS feeds without polling.

Basically it will allow blogs and readers to communicate real time, in a push-like method, like instant messaging, and not via pulls like the way it happens now (which can take minutes or even hours).

The cool thing about PubSubHubbub is that it works on top of existing protocols (in this case Atom) so readers and source don’t have to change much. The only thing you need is to notify a server that you published and the clients have to be subscribed to that server. Dave Winer has a good, deeper, explanation of how it works.

In this tutorial I will show you how to implement PubSubHubbub in a self-hosted installation of Wordpress, using Feedburner for feed distribution and FriendFeed as the receiving client. With this system in place, your blog posts will appear in your FriendFeed in a matter of seconds.

Read the full article →

Push Technology is the Core of the Real Time Web

July 7, 2009
Thumbnail image for Push Technology is the Core of the Real Time Web

Push technology is a term that is used often but rarely explained. Although we take it for granted, push technology hasn’t been around for long, and it had a false start at the very inception of the world wide web.

A client is usually your computer or your cellphone. A server is a service you use, like E-mail or Twitter. The event is usually a new piece of content, like a new Tweet or a new E-mail.

What’s the opposite of Push technology? Yes, you guessed it, it’s called “Pull Technology” and its been the most common way of transferring content on the web. In a ‘Pull’ scenario, the computer or cellphone asks the server every so often if there’s any new content, and the server then tells the computer or cellphone if it does or if it doesn’t.

Read the full article →