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();