Technology

Updating an AWS instance and wordpress multisite hostname

Just in case you haven’t heard about heartbleed or like comic strip explanation. Bruce Schneier has a good run down on how screwed we all are including this link to the logs of a possible exploit half a year ago.
So I figured I better update my server. First off, I’m using an AWS instance to host the web site. I’m both proud and embarrassed. The system has been up for 11 months.

$ uptime
 11:22:33 up 339 days,  9:34,  1 user,  load average: 0.14, 0.84, 0.84

Updating the software was fairly easy

sudo apt-get update {.sh}
sudo apt-get upgrade
sudo apt-get dist-upgrade

But it pretty much required a reboot to make sure everything was using the new libraries.
After that was done my wordpress installation was using the wrong hostname. Here are the tables I updated. The id, blog_id and table name wp_options are somewhat specific to my installation.

update wp_sitemeta set meta_value = 'https://peteware.com/' where meta_key = 'siteurl';
update wp_site set domain = 'peteware.com' where id = 1;
update wp_blogs set domain = 'peteware.com' where blog_id = 1;
update wp_options set option_value = 'http://peteware.com' where option_name = 'siteurl';
update wp_options set option_value = 'http://peteware.com' where option_name = 'home';
Technology

WordPress 3.0 update

Update to 3.0 went pretty smoothly. I’m having some problem with images (added how to fix below)

  • Ran my custom backup script:
$ cd ~/Desktop/wp-backup
$ ./backup
  
  • Downloaded wordpress 3.0:
$ cd ~/Desktop/src/downloads/pkgs
$ curl -O http://wordpress.org/latest.tar.gz
$ mv latest.tar.gz wordpress-3.0.tgz
  
  • Make sure you know the WP administrator user password as WP 3.0 uses a “Super Admin” interface.
  • No real special requirements for my site for wpmu upgrade most a lot of warnings about plugins and themes not necessarily being compatible.
  • Follow the directions or these even better directions
    • Disable plugins from site admin web page
    • Remove (save somewhere else) wp-admin, wp-includes
    • Extract the wordpress-3.0.files
    • Fix permisions (this is Apple’s Snow Leopard Server)
$ cd /Library/Webserver/Documents
$ mv wp-admin wp-includes ~/tmp
$ tar xzvf ~/Desktop/src/downloads/pgks/wordpress-3.0.tgz
$ chown -R _www:_www .
  
  • remove blogs.php
$ cd /Library/Webserver/Documents
$ rm wp-content/blogs.hp
  
  • Modify .htaccess to add the rule for wp-files (replacings blogsphp):
RewriteCond %{REQUEST_URI} !.*wp-content/plugins.*
RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L]
  
  • Upgrade the site (site.com/wp-admin/upgrade.php). Login as the administrator user, if you don’t see “Super Admin” you aren’t the right user.
  • My site admin had some extra steps to perform like getting rid of blogs.php and adding some code
    for the cookies.
  • Update the plugins
Technology

Fixing libxml2, php, WordPress, and the missing angle brackets

Someone posted a temporary fix for WordPress that takes the raw xml and replaces the offending entities with characters. He found three places. The fix looks like:

//xmllib 2.7.0 -2.7.2 stripping leading angle brackets bug patch
if(LIBXML_DOTTED_VERSION == '2.7.0' ||
  LIBXML_DOTTED_VERSION == '2.7.1' ||
  LIBXML_DOTTED_VERSION == '2.7.2') {
  $xml =str_replace("&lt;","<",$xml );
  $xml =str_replace("&gt;",">",$xml );
  $xml =str_replace("&amp;","&",$xml );
}
//end Fix
xml_parse($parser, $xml);
Technology

Fixing libxml2, php, WordPress, and the missing angle brackets

I was having problems with MarsEdit after updating to OpenSuse 11.1 because of a bug in php aggravated by a recent release of libxml2 (details here).
I was waiting for a real fix but lost my patience today. The advice was to “fall back to libxml2-2.6.32” so here’s what I did:

  1. Grabbed the RPM from the OpenSuse 11.0 cd. Or, if you trust me you can download it from here: libxml2-2.6.32-11.1.i586.rpm
  2. Install the RPM overriding any recent release which is what the “–force” flag does. Do the following as “root” from a terminal window:
    rpm -i --force libxml2-2.6.32-11.1.i586.rpm
    
  3. Now fix the symlinks in /usr/lib so everyone uses the new (but old) library:

    cd /usr/lib
    rm libxml2.so libxml2.so.2
    ln -s libxml2.so.2.6.32 libxml2.so
    ln -s libxml2.so.2.6.32 libxml2.so.2
    
  4. Actually, I didn’t do the above but instead replaced the actual 2.7.2 library:

    mv libxml2.so.2.7.2 libxml2.so.2.7.2.orig
    ln -s libxml2.so.2.6.32 libxml2.so.2.7.2
    
  5. Restart apache so that PHP uses the new libraries:

    /etc/init.d/apache2 restart
    
Technology

WordPress, libxml2 bug

I just upgraded to OpenSuse 11.1 and it’s giving WordPres grief. MarsEdit looses the left angle bracket characters when the article is transmitted via xmlrpc. I don’t have a solution but here’s what’s going on:

I downloaded libxml2-2.7.2 and installed. It didn’t help.

Technology

WordPress migration

I switched from blogger, which is the google hosted blogs to my own self hosted blog running WordPress. To be precise, I’m running WPMU or WordPress multi-user.
I did it mostly because my home-brewed website wasn’t being fully utilized. WordPress gave me the basics of what I wanted: provide some static contact, make it easy to link to anything I have under development, and provide the dynamic content (aka blog entries).
Wordpress offers a decent number of themes and lots of ways to customize. I also wanted to be able to upload photos and videos more directly instead of going through Picasa or Fickr.
The migration is easy — you can import directly into WordPress from Blogger. While in WordPress:
I’m not sure what went wrong for me but I lost all the formatting the articles had.
There were some problems with funky characters that caused MarsEdit issues but some editting took care of that.

Technology

Installing OpenSuse 11.0

A little late to the party (11.1 is going to be available in 5 days on Dec 18, 2008) but I finally upgraded my server, including going to OpenSuse 11.0. Btw, installing from a DVD is way better than poping CDs in and out. Some notes along the way:

  • I had to enable DHCP explicitly
  • After enabling DHCP, I had to do /etc/init.d/network restart
  • Ran updates
  • Installed printer. Via timecapsule, Network print direct
  • Installed apache2, mod_python, etc
  • Installed mercurial
  • Installed gcc/g++ (4.3)
  • qt4-devel, qt4-devel-doc, PyQt qt
  • emacs, emacs-lisp, xemacs, xemacs-packages
  • texlive, texlive-latex
  • boost
  • doxygen
  • make
  • scons