wordpress-playground
wordpress-playground copied to clipboard
Error because of lack of cURL and allow_url_fopen
When you try to use the Plausible WordPress plugin on the WordPress playground, you get the following fatal error:
Fatal error: Uncaught RuntimeException: Plausible\Analytics\WP\Client\Lib\GuzzleHttp requires cURL, the allow_url_fopen ini setting, or a custom HTTP handler. in /wordpress/wp-content/plugins/plausible-analytics/src/Client/lib/Lib/GuzzleHttp/Utils.php:105 Stack trace: #0 /wordpress/wp-content/plugins/plausible-analytics/src/Client/lib/Lib/GuzzleHttp/HandlerStack.php(49): Plausible\Analytics\WP\Client\Lib\GuzzleHttp\Utils::chooseHandler() #1 /wordpress/wp-content/plugins/plausible-analytics/src/Client/lib/Lib/GuzzleHttp/Client.php(53): Plausible\Analytics\WP\Client\Lib\GuzzleHttp\HandlerStack::create() #2 /wordpress/wp-content/plugins/plausible-analytics/src/Client.php(36): Plausible\Analytics\WP\Client\Lib\GuzzleHttp\Client->__construct() #3 /wordpress/wp-content/plugins/plausible-analytics/src/Admin/Provisioning.php(40): Plausible\Analytics\WP\Client->__construct() #4 /wordpress/wp-content/plugins/plausible-analytics/src/Plugin.php(42): Plausible\Analytics\WP\Admin\Provisioning->__construct() #5 /wordpress/wp-includes/class-wp-hook.php(3): Plausible\Analytics\WP\Plugin->register_services('') #6 /wordpress/wp-includes/class-wp-hook.php(3): WP_Hook->apply_filters(NULL, Array) #7 /wordpress/wp-includes/plugin.php(2): WP_Hook->do_action(Array) #8 /wordpress/wp-settings.php(2): do_action('plugins_loaded') #9 /wordpress/wp-config.php(99): require_once('/wordpress/wp-s...') #10 /wordpress/wp-load.php(2): require_once('/wordpress/wp-c...') #11 /wordpress/wp-admin/admin.php(2): require_once('/wordpress/wp-l...') #12 /wordpress/wp-admin/index.php(2): require_once('/wordpress/wp-a...') #13 {main} thrown in /wordpress/wp-content/plugins/plausible-analytics/src/Client/lib/Lib/GuzzleHttp/Utils.php on line 105
With networking enabled, maybe allow_url_fopen
should be true
?
I've also filed an issue with Plausible who should catch this fatal error.
I don't think I'm providing any new info here, but wanted to chime in that I have the same issue when adding a blueprint for SimplyRETS. We use curl
when available or fall back to file_get_contents
.
cURL isn't enabled and file_get_contents()
returns the following error:
Warning: file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /wordpress/wp-content/plugins/simply-rets/simply-rets-api-helper.php on line 287
Warning: file_get_contents(https://...<url>): Failed to open stream: no suitable wrapper could be found in /wordpress/wp-content/plugins/simply-rets/simply-rets-api-helper.php on line 287
Really cool work so far though, I'm looking forward to this support.
With my plugin, which also needs CuRL, I get a different message:
PHP Fatal error: Uncaught Error: Call to undefined function Imdb\curl_init() in /wordpress/wp-content/plugins/lumiere-movies/vendor/jcvignoli/imdbphp/src/Imdb/Request.php:37
Seems like php extension CuRL.
Libcurl and stream wrappers are indeed not supported at the moment. This issue explores the challenge:
https://github.com/WordPress/wordpress-playground/issues/85
To bring some good news, I got a basic file_get_contents("https://mysite.com")
support to work in https://github.com/WordPress/wordpress-playground/pull/1051, and the technique used would unblock libcurl support, too. Note that PR is focused on another topic and needs a lot of cleaning up as it's an amalgamate of many different explorations.
I've extracted the HTTPS support, which is a pre-requisite to supporting libcurl, to a separate PR where it can be discussed and iterated on https://github.com/WordPress/wordpress-playground/pull/1093.