Tom Cannaerts

Tom Cannaerts

Hi there! My name is Tom. I'm a Linux System Administrator and PHP Developer. My job is to keep PHP websites running as smooth as possible. Being both on the 'dev' and 'ops' side gives me a broad skillset across the entire stack.

Is your Symfony/Doctrine import consuming a lot of memory?

If you’ve ever needed to write a mass-dataimport (eg. a periodic product/stock import for a webshop) in a Symfony project and decided to use your Doctrine backed objects/services from a Command object, chances are that you have run into high memory usage issues. php app/console mybundle:products:stock:import You will see the process consume more and more […]

Setting up a replicated filesystem using GlusterFS

When scaling out an application, chances are that you will need to have some sort of distributed and/or replicated filesystem. If a dedicated storage solution is not within the options, you can easely set-up a posix compliant filesystem cluster with GlusterFS. Compare GlusterFS with a RAID setup that spans across hosts. You can do things comparable […]

PHP Opcache and symlinks

If you’re using automated deployments on a regular base, chances are that you are using symlinks to limit the amount of downtime to a minimum. This is a proven approach that has worked well for many years. website current -> releases/release-12 releases/release-11 releases/release-12 When time has come to deploy a new release, the release is prepared in […]

Let’s Encrypt!

Encryption is getting more and more important to the end-users. This is most definitely the case for websites that process information of those users. SSL certificates have been around for many years, but are costly and require quite some effort to install and maintain. They require a unique IP address, need to follow some sort of […]

Using RewriteMaps for better performance

Most PHP developers know Apache‘s mod_rewrite, and have likely written at least a few custom RewriteRule in .htaccess. In this post, I want to introduce you to RewriteMap, a directive that allows you to use key:value lookups in your rewriting rules.  They are easy to use, fast and very maintainable. Do keep in mind that you will need to […]