Category Archives: linux

Joining Forces With NodeSource

If you’re reading this blog, then there’s a good chance that you make use of my PPA for Node.js. I started making Node packages several years ago because I wanted there to be a consistent way for people to install up-to-date versions of Node on their machines. Not too long ago, Dan Shaw reached out to me to ask if there was anything he could do to help with the PPAs and give back to the effort. I had been looking for a way to ensure that what I’m doing satisfies the needs of Node developers, and also to make sure the project continues to receive the support it needs. We talked about how best to make this happen and decided to move things over to NodeSource from Launchpad. Here’s why.

Continue reading

Using Proxy Protocol With Nginx

We all know and dearly love Nginx. One very common way to use it is to put it in front of some other application server such as Tomcat, Node, or Tornado as a reverse proxy. About a year ago, Nginx got the ability to proxy WebSockets connections to a backend server that supports them.

Continue reading

A Production Quality WordPress Configuration Tutorial

The blogging software used to power this site, WordPress, has just had its 10th anniversary. In the last decade it has become incredibly popular, and currently accounts for about 18% of all websites. Due to my job at (mt) Media Temple, I’ve gotten to admin several popular blogs at various times over the years, and thus have a pretty good idea of how to optimize everything for good efficiency. In this WordPress configuration tutorial, I’m going to walk you through the production quality setup that I have for this blog, which makes use of Ubuntu Linux, Nginx, php5-fpm and MariaDB.
Continue reading

Switching the Blog to MariaDB

WordPress, which is the blogging platform used to run this site, relies on PHP and MySQL to operate. A while back, Sun bought MySQL, and then Oracle subsequently bought Sun. Two of the most important pieces of that second acquisition were MySQL, and the Java programming language. Without getting into too much of the debates, many people feel that Oracle isn’t a great steward for either Java or MySQL. To that end, the original creator of MySQL forked the code and created an alternative called MariaDB. MariaDB aims to be a seamless drop in replacement for MySQL, with better performance and some extended features. I decided to see how “drop in” it really was by updating this site to use it.

Continue reading

using strace on multiple processes in linux

My distinguished and decidedly sexy colleague Josh Barratt recently noted that you can use multiple -p flags with strace in order to simultaneously attach to multiple process. This is very useful when you’re trying to debug something like Nginx where there are likely multiple child processes that you want to monitor.

If this is something that you think you might find useful, here’s a bash snippet that will make an easy to use straceall command:

function straceall {
  strace $(pidof "${1}" | sed 's/\([0-9]*\)/-p \1/g')

Just put this in your .bashrc, and then you can easily monitor a family of processes with a command such as:

straceall php5-fpm

if you’re trying to debug say a PHP issue.