Patching can cause permission denied errors

I just updated this server to PHP 5.3. As all my sites are Drupal 6 it seems I have a few issues ahead which mean I need to patch Drupal to stop PHP complaining about deprecated stuff…

So I headed over to the post on drupal.org which is discussing 5.3 compatibility in Drupal 6 (which I personally think SHOULD go in) to grab a patch. I applied the patch with no problems. I refreshed a page and got a white screen so I checked the logs only to see…

2009-08-11 12:30:10: (mod_fastcgi.c.2618) FastCGI-stderr: PHP Warning:  require_once(./includes/file.inc) [function.require-once]: failed to open stream: Permission denied in /path/to/drupal_installation/drupal/includes/common.inc on line 2562

Well that was odd. I checked the file and the folders and all permissions were fine. I then had to waste the next hour of my life googling for the problem. It turns out that if you run a RedHat based distro (such as CentOS 5.3) you get a lovely application called SE Linux. SE Linux is meant to be there to protect you. From my experience it seems to spend more time pissing you off.

A quick test to confirm that SE Linux was causing my permission errors was to run the following (as root) from the terminal:

echo 0 > /selinux/enforce

Best to make sure you switch it back on afterwards ;-) but first I need to find out why SE Linux is complaining about a file being patched.