Thanks for your patience.
After running diagnostics on your server, I found the following issues.
1. Your installation of PHP is compiled –with-curlwrappers. This alters the way some native features in PHP function, and it causes problems for WordPress, because of this known bug that still exists even in the latest versions of PHP. For further details, see: https://bugs.php.net/bug.php?id=41051
2. Your Amazon S3 Bucket Name contains characters that are considered invalid for CloudFront. All Amazon S3 Bucket names should contain lowercase alphanumerics and dashes only. Your current Amazon S3 Bucket contains one uppercase character. Please see: http://docs.amazonwebservices.com/AmazonS3/latest/dev/BucketRestrictions.html
Regarding point #1. I was able to workaround this conflict on your server, by making two adjustments. One in WordPress itself, and another in s2Member. I’ll document them both for you here. Maybe this will also help someone else hosted by LiquidWeb.
I removed the s2-hacks.php file that you created with:
add_filter ("use_curl_transport", "__return_false");
.
On a server configured –with-curlwrappers, you are better off using cURL directly. When this option is enabled in PHP, cURL is going to be used one way or another, so we might as well go directly to it.
Open /wp-includes/class-http.php, at line #1055 find this:
case 'PUT':
curl_setopt( $handle, CURLOPT_CUSTOMREQUEST, 'PUT' );
curl_setopt( $handle, CURLOPT_POSTFIELDS, $r['body'] );
break;
After this section of code, add this section:
case 'DELETE':
curl_setopt( $handle, CURLOPT_CUSTOMREQUEST, 'DELETE' );
curl_setopt( $handle, CURLOPT_POSTFIELDS, $r['body'] );
break;
This adds DELETE support to the WordPress cURL interface. s2Member normally falls back on WP_Http_Streams for this, but on your server that’s causing problems. So this direct edit is needed.
Open this s2Member file: /s2member/includes/classes/utils-urls.inc.php, at line #201 find:
if (!empty ($args["method"]) && strcasecmp ((string)$args["method"], "DELETE") === 0)
Replace that line with this instead:
if (!empty ($args["method"]) && strcasecmp ((string)$args["method"], "X-DELETE") === 0)
Conclusion. If a server has PHP compiled
–with-curlwrappers, it will cause problems for WordPress, because of
this PHP bug. Applications expecting native PHP functions, to behave like native PHP functions, will be sadly disappointed, and the result could be broken functionality. Particularly in applications communicating with the Amazon API, where authorization headers are required by Amazon. If you are unable to re-compile your installation of PHP without this option, try the workaround I posted above.
@Eva Galfi
You should be good now. Please change your Amazon S3 Bucket Name to one which is compatible with CloudFront (i.e. all lowercase please). Then run s2Member’s automatic configuration again.