uid == 1) {
$errors[] = 'Master database not responding.';
}
// Check that the slave database is active.
if (function_exists('db_query_slave')) {
$result = db_query_slave('SELECT * FROM {users} WHERE uid = 1');
$account = db_fetch_object($result);
if (!$account->uid == 1) {
$errors[] = 'Slave database not responding.';
}
}
// Check that all memcache instances are running on this server.
if (isset($conf['cache_inc'])) {
foreach ($conf['memcache_servers'] as $address => $bin) {
list($ip, $port) = explode(':', $address);
if (!memcache_connect($ip, $port)) {
$errors[] = 'Memcache bin ' . $bin . ' at address ' . $address . ' is not available.';
}
}
}
// Check that the files directory is operating properly.
if ($test = tempnam(variable_get('file_directory_path', conf_path() .'/files'), 'status_check_')) {
// Uncomment to check if files are saved in the correct server directory.
//if (!strpos($test, '/mnt/nfs') === 0) {
// $errors[] = 'Files are not being saved in the NFS mount under /mnt/nfs.';
//}
if (!unlink($test)) {
$errors[] = 'Could not delete newly create files in the files directory.';
}
}
else {
$errors[] = 'Could not create temporary file in the files directory.';
}
// Print all errors.
if ($errors) {
$errors[] = 'Errors on this server will cause it to be removed from the load balancer.';
header('HTTP/1.1 500 Internal Server Error');
print implode("
\n", $errors);
}
else {
// Split up this message, to prevent the remote chance of monitoring software
// reading the source code if mod_php fails and then matching the string.
print 'CONGRATULATIONS' . ' 200';
}
// Exit immediately, note the shutdown function registered at the top of the file.
exit();