The problem is that the memcached object cache plugin is not a standard plugin. It is what is called a “Drop-In”. As such the object-cache.php file should not be located at /var/www/wp-content/plugins/memcached/object-cache.php
, it should be moved to /var/www/wp-content/object-cache.php
What is happening is that WP will look to see if wp-content/object-cache.php exists and if it does, it will use that as opposed to wp-includes/cache.php. Since you have it in the wrong location, it is including both, causing the fatal error because of a redeclared function.
How about …
if(!function_exists(‘wp_cache_add’)){
/* assuming a proper file location */
}
else {
/* notice the user to move the file */
}
Like this activation won’t bug out while the user knows why it’s not working.
If the plugin would have one more file, this one could be used for moving the drop-in a level upward; not much functionality contained – just a simple installer plug-in package which installs the drop-in.
That has actually been on my todo list for a while. I actually plan on using the same method as the APC object cache plugin:
http://plugins.trac.wordpress.org/browser/apc/trunk/object-cache.php#L23