WordPress Ajax Problems

You have nothing specific to do to “load” modified php code in WordPress. All files are just loaded as is at execution time (ie when the HTTP request is processed by the server). You just have to verify that your plugin is active.

Your curl command is malformed. Use this instead :

curl -X POST http://localhost/wordpress/wp-admin/admin-ajax.php -d action=my_ajax -d data=banjometer --trace -

But CURL is not really the easiest debug tool to use. When I need a fast and easy way to execute some debug php code inside WordPress, I use the plugin activation hook :

<?php

register_activation_hook(__FILE__, 'my_plugin_debug'); 
function my_plugin_debug() {

    $log = 'banjometer';

    die("OK, $log");
}

?>

Make a new plugin that contains only this code, then try to activate it in the backend. You will get an error (because of the die statement) so the plugin will not be activated, but your code will be run and you can see the log in the error message.