Lost an hour today to trying to debug Ecto posting to this weblog (if you’re not using Ecto, you should consider it).
I was constantly getting this error:
XML-RPC server accepts POST requests only
Finally I wrote up a nice little support ticket for Dreamhost with all the details. Surprisingly I got the fix back in relatively short order.
I was wondering what the problem with WordPress was. It turned out to be a PHP 5.2.2 bug. The file xmlrpc.php is broken under PHP 5.2.2. As WordPress is the weblog system in widest use in the entire world, it would be nice if the PHP team would get with the real world and debug their releases before rolling them out.
The solution, for now, is to edit the xmlrpc.php file in your WordPress installation and add the following code:
if (phpversion()=="5.2.2") $GLOBALS['HTTP_RAW_POST_DATA'] = file_get_contents("php://input");The beginning of my xmlrpc.php file looks like this:
define('XMLRPC_REQUEST', true); // Some browser-embedded clients send cookies. We don't want them. $_COOKIE = array(); if (phpversion()=="5.2.2") $GLOBALS['HTTP_RAW_POST_DATA'] = file_get_contents("php://input");And XMLRPC is now working again.
I made this fix and now Ecto works a charm again. Alas, this isn’t the first time a PHP error has brough XMLRPC/Ecto down on WordPress weblogs.
A number of things went wrong here:
- the PHP developers dropped the ball on their debugging
- Dreamhost dropped the ball rolling out 5.2.2 with such a bug in it
- Dreamhost dropped the ball a final time by not proactively notifying all its customers who are running WordPress weblogs about this bug
I’ve made this post as I was unable to find any useful information about the XML-RPC serve accepts POST requests only bug when searching Google for that phrase plus WordPress and plus Ecto. I hope other unfortunates find this post more quickly than I found the solution.
Alec Kinnear
Alec has been helping businesses succeed online since 2000. Alec is an SEM expert with a background in advertising, as a former Head of Television for Grey Moscow and Senior Television Producer for Bates, Saatchi and Saatchi Russia.
wordpress.org/support/topic/117421
Google “XML-RPC server accepts POST requests only” wordpress
Sometimes being too specific is the wrong direction.
Thank you for posting this – it worked for me too!
Thanks, this works for me :)
Also me, thanks!
Wow you have saved me such a head ache..
Thanks! Tengo la solucian ahora!
Thanks for your post. It fixed the problem and I’m able to use ecto again.
Still can’t get it to work, can’t get rid of this ‘XML-RPC server accepts POST requests only.’
What do I do?
Hi Mark,
This may have changed in the latest WordPress (2.7+) as the external posting functionality has been enhanced. If you figure it out, please let me know so I can update our information to cover the latest versions.
Same error, but the above doesn’t fix. Have WordPress version 2.5.1 with PHP 5.2.3.
I’m trying to use Windows Live Writer to post to my wordpress site, but it says:
The server reported an error with the following URL: …/xmlrpc.php 403 Forbidden
When I go to my xmlrpc.php page it says: XML-RPC server accepts POST requests only.
Ideas?
Hello trent,
upgrade from 2.5.1 to 2.8 shouldn’t be that hard, so I would recommend you to do that. Not only the XML RPC will work, but your blog will be more secure.
Thanks, M.
I am using PHP version 4.2.3 Is there any problem for working of XML-RPC ?
Sorry, but the above doesn’t fix. Have WordPress version 3.0 with PHP 5.2.5.
I’m trying to use Windows Live Writer to post to my wordpress site, but it says:
The server reported an error with the following URL: …/xmlrpc.php Forbidden
When I go to my xmlrpc.php page it says: XML-RPC server accepts POST requests only.
Why?
Hi Why,
It’s probably a permissions issue. Let us know how/if you solve it.
Thanks.
Yes?I think it’s the permissions issue, because “always_populate_raw_post_data” is off, thank you.
Hello Why,
this fix is 2 years old, it’s for older WordPress versions. It doesn’t seem to occur on WordPress 3.0.
If you get “XML-RPC server accepts POST requests only.” when you access xmlrpc.php via browser, that’s ok.
Is “Forbidden” really the whole error message you get? You can try to disabled mod_security by placing the following into .htaccess:
Looks like some people with iPhones have this issue: iphone.forums.wordpress.org/topic/403-forbidden
Hello uttam,
no, that should not make any difference, if you are on a new WP (which is PHP > 4.3 only, so I would try to update both PHP and WP first).
Thanks, Martin
This did not work for me. I want mine to ACCEPT ALL REQUESTS….how do I do that?
Can you lose traffic if you have this showing: XML-RPC server accepts POST requests only.??
Hi Henry,
XML-RPC server should affect SEO, only posting to your site from odd devices.
There’s a new REST API coming to WordPress which should replace XML-RPC in the medium term.