Wondering how to resolve WP_Error-cURL error 7? Our in-house experts are here to help you out with this article. Our WordPress Support team is here to offer a lending hand with your queries and issues.
WP_Error-cURL error 7 – Resolved
Basically, cURL error 7 is an error that occurs sometimes while importing the starter templates from our server.
Below are some of the reasons mentioned by our WordPress support team.
1. Firstly, te PHP memory limit is low.
2. Then, the PHP version of your site is not up to date.
3. The cURL library version is not up to date.
4. Firewalls installed on the server of the hosting provider which might be blocking the starter template library.
How to fix this?
Today, let us see the steps followed by our Support techs to resolve it:
From the WordPress dashboard, navigate to the Tools>Site Health and click on the Info tab. Please ensure that you have the following updated:
- WordPress version 5.0 or above
- PHP 7 or above
- MySQL 5.6 or above/ MariaDB version 10.0 or above
- WP Memory limit of 128 MB or greater
- cURL version is 7.70 or above
Conclusion
In conclusion, our Support Engineers showed us steps to resolve WP_Error-cURL error 7. Drop us a line in the comments if you face any trouble.
PREVENT YOUR SERVER FROM CRASHING!
Never again lose customers to poor server speed! Let us help you.
Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.
GET STARTED
I freshly installed an Ubuntu server 16.04 with LEMP and wordpress.
But it seems that I have missed a step in the process, as I have the following error on the websites.
http error: curl error 7: failed to connect to wordpress.org port 80.
The sites is working fine beside that it is configure in a virtual machine as I’m developing a website, first on my local machine to test everything in local.
Here is my config file:
server {
listen 80;
server_name 192.168.1.3; #ipaddress;
root /usr/share/nginx/mrupgrade.be/;
index index.php index.html index.htm;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location / {
try_files $uri $uri/ /index.php;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location ~ .php$ {
try_files $uri = 404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
root /usr/share/nginx/mrupgrade.be/;
}
}
Note that I have configured the firewall with those rules:
Thanks in advance for your help.
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
wp-config.php
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the
* installation. You don't have to use the web site, you can
* copy this file to "wp-config.php" and fill in the values.
*
* This file contains the following configurations:
*
* * MySQL settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://codex.wordpress.org/Editing_wp-config.php
*
* @package WordPress
*/
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'mysite_wp_db');
/** MySQL database username */
define('DB_USER', 'mysite_user');
/** MySQL database password */
define('DB_PASSWORD', 'mysite');
/** MySQL hostname */
define('DB_HOST', 'localhost');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
/**#@-*/
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define('WP_DEBUG', false);
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
/var/www/mrupgrade.be/public_html the site location that’s nginx site config
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
My /etc/nginx/nginx.conf
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
So in image everything is fine expect some stuff maybe a lib is missing or I don’t know I installed fpm fast cgi.
The wordpress Can’t connect to the web eith http request.
I don’t really know what it could be any clue would be welcome.
Thanks in advance for your help.
If you are having issues with a stuck or bad cron job on your WordPress Site we recommend first going through the steps in this article.
Problem with Using Solution #3 from the article
When first using WP Crontrol to address your cron job issues, it is possible that you will encounter the following error prompt on your WordPress dashboard:
cURL error 7: Failed to connect to excellent-bid.nl port 443: Connection refused
If you see the above error, please take note of the error before using the solution below in your wp-config.php file:
define( 'ALTERNATE_WP_CRON', true );define( 'WP_CRON_LOCK_TIMEOUT', 1 );
When using this solution to address your issues with cron jobs, from that point onward WP Crontrol will constantly show the above to be true.
With this, you should stop the error prompt pointing to the connection error. You will have solved the problem of feed items not importing due to a bad or stuck cron job. However, you will not be able to import any images with your feed items when using Feed to Post or Excerpts & Thumbnails.
You will need to get assistance from your host to fix and address an issue with Firewall settings blocking the image import.
Still need help?
Contact Us
Contact Us
Last updated on January 28, 2021
I freshly installed an Ubuntu server 16.04 with LEMP and wordpress.
But it seems that I have missed a step in the process, as I have the following error on the websites.
http error: curl error 7: failed to connect to wordpress.org port 80.
The sites is working fine beside that it is configure in a virtual machine as I’m developing a website, first on my local machine to test everything in local.
Here is my config file:
server {
listen 80;
server_name 192.168.1.3; #ipaddress;
root /usr/share/nginx/mrupgrade.be/;
index index.php index.html index.htm;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location / {
try_files $uri $uri/ /index.php;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location ~ .php$ {
try_files $uri = 404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
root /usr/share/nginx/mrupgrade.be/;
}
}
Note that I have configured the firewall with those rules:
Thanks in advance for your help.
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
wp-config.php
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the
* installation. You don't have to use the web site, you can
* copy this file to "wp-config.php" and fill in the values.
*
* This file contains the following configurations:
*
* * MySQL settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://codex.wordpress.org/Editing_wp-config.php
*
* @package WordPress
*/
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'mysite_wp_db');
/** MySQL database username */
define('DB_USER', 'mysite_user');
/** MySQL database password */
define('DB_PASSWORD', 'mysite');
/** MySQL hostname */
define('DB_HOST', 'localhost');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
/**#@-*/
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define('WP_DEBUG', false);
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
/var/www/mrupgrade.be/public_html the site location that’s nginx site config
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
My /etc/nginx/nginx.conf
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
So in image everything is fine expect some stuff maybe a lib is missing or I don’t know I installed fpm fast cgi.
The wordpress Can’t connect to the web eith http request.
I don’t really know what it could be any clue would be welcome.
Thanks in advance for your help.
Hello
I installed WP in a VM at home to perform some tests.
Everything was working well, I can access to website from internet, etc…
But when I go to “Tools > Site Health”, I have 3 Critical issues. All of them related to a “cURL error 7”, but without any details related to which error.
The REST API encountered an error
The REST API is one way WordPress, and other applications, communicate with the server. One example is the block editor screen, which relies on this to display, and save, your posts and pages.The REST API request failed due to an error.
Error: [] cURL error 7:
Could not reach WordPress.org
Communicating with the WordPress servers is used to check for new versions, and to both install and update WordPress core, themes or plugins.Error Your site is unable to reach WordPress.org at 198.143.164.251, and returned the error: cURL error 7:
Your site could not complete a loopback request
Loopback requests are used to run scheduled events, and are also used by the built-in editors for themes and plugins to verify code stability.The loopback request to your site failed, this means features relying on them are not currently working as expected.
Error: [] cURL error 7:
When I connect to Unix hosting WP, I’m able to perform a cURL to WordPress, and reach internet.
I can’t find what is going on and how to fix it, since there is no error details, neither in WP logs.
Any tips ?