troubleshooting

Profiling and Debugging a PHP app with Xdebug and Docker

Profiling and Debugging a PHP app with Xdebug and Docker I have started using an IDE again (PHPStorm) so that I could debug some applications and do some basic app profiling. I want to use Xdebug to profile my PHP apps. I am using Docker Compose on Windows 10. I have made this very complicated for myself but here we go. The directory structure of my app looks like: /build/docker/php/Dockerfile /build/docker/php/php.

Continue reading →

WP Transients must be used responsibly

We ran into an interesting issue with WooCommerce at work. First, here is the subject of the support request we got from our hosting provider: The site is generating ~150MB/sec of transaction logs, filling 500GB of diskspace Holy. Shit. A WordPress site should not be generating that much data. 150MB per second? Wow. How? Why? The simple explanation is that there is a bottleneck in WooCommerce with the filtered layer nav query objects using single transient record.

Continue reading →

TLS Peer Verification w/PHP 5.6 and WordPress SMTP Email plugin

We ran into an issue after upgrading from PHP 5.5 to 5.6. We were no longer able to send email via the awesome WordPress SMTP Email plugin. Turns out that PHP 5.6 introduced some enhancements to its OpenSSL implementation. Stream wrappers now verify peer certificates and hostnames by default. This was causing the form submissions on our site to fail. Clearly there are some issues with our Postfix config and certs.

Continue reading →

What to do when your website is hacked/exploited

So your website has been "hacked"? You load your website in your browser, and are redirected to some spammers website, or maybe you google'd yourself (naughty), and found a few thousand indexed pages for knock off prada gear? Ok, so how do you fix this, and more importantly, how do you learn how they did it so you can defend against it later. Secure the scene The first thing I do is take a snapshot of the hacked web site.

Continue reading →

Trying to Troubleshoot extremely high MySQL CPU Usage

MySQL CPU usage was spiking upwards of 1000%. Load average was around 50-60. I could not SSH into the machine though, not immediately. Since I could not actually get into the machine I had it restarted. Just as soon as the machine came back up MySQL CPU usage jumped right back up to 1000%. Once I was able to finally shut MySQL down I had to discover _why_ the load was so ridiculously high.

Continue reading →