Solution pour l'erreur cURL error 7: Failed to connect to XXX port 443: Connection refused photo 1

Solution pour l’erreur cURL error 7: Failed to connect to XXX port 443: Connection refused

Sur un serveur hébergé en Chine continentale, j’ai eu la surprise de ne pas être en mesure de mettre à jour wp-cli:

wp cli update

Error: Failed to get url 'https://api.github.com/repos/wp-cli/wp-cli/releases?per_page=100': cURL error 7: Failed to connect to api.github.com port 443: Connection refused.Code language: JavaScript (javascript)

Visiblement, certaines adresses sont injoignables, notamment lorsqu’elles utilisent le port 443 (https).

Evidemment, on peut télécharger wp-cli manuellement et le réinstaller mais si vous souhaitez une solution plus rapide, voilà comment j’ai procédé.

Première solution: édition de /etc/hosts

1. On récupère l’adresse IP de l’adresse api.github.com:

curl --ipv4 -v https://api.github.com

Résultat: 13.250.94.254 port 443Code language: JavaScript (javascript)

2. On édite le fichier /etc/hosts du serveur:

nano /etc/hosts

3. On y ajoute l’adresse IP correspondante à api.github.com:

13.250.94.254 api.github.comCode language: CSS (css)

Et voilà, le téléchargement depuis github est de nouveau accessible.

Lire la suite

PHP: résoudre l'erreur

PHP: résoudre l’erreur “file_get_contents(): SSL operation failed with code 1”

J’ai récemment joué avec l’API de YouTube pour pouvoir récupérer diverses informations sur les vidéos afin d’ajouter au site les données structurées idoines.

Il se trouve qu’en local, lorsque l’on utilise file_get_contents(), on peut obtenir une erreur de ce type lorsque le serveur n’est pas configuré avec le bundle de certificats OpenSSL:

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in ...php on line 2

Warning: file_get_contents(): Failed to enable crypto in ...php on line 2

Warning: file_get_contents(https://........f=json): failed to open stream: operation failed in ...php on line 2
Code language: JavaScript (javascript)

Si cela vous arrive, plusieurs solutions s’offrent à vous.

Méthode 1: configuration de PHP côté machine/serveur

1. Vérifiez qu’OpenSSL est bien installé sur votre machine (il devrait l’être sur le serveur!).

2. Ajoutez cette ligne à la configuration de PHP, dans votre php.ini:

openssl.cafile=/usr/local/etc/openssl/cert.pemCode language: JavaScript (javascript)

3. Redémarrez le service PHP.

Méthode 2 : une fonction qui utilise curl au lieu de file_get_contents()

Au lieu de m’embêter à configurer OpenSSL ou à toucher à PHP dans un conteneur docker (Local), il se trouve que l’on peut réécrire la fonction file_get_contents() avec une fonction maison qui utilise curl.

Voici la fonction en question:

/*
Custom CURL function that mimicks file_get_contents()
@returns false if no content is fetched
Matt Biscay (https://mattbiscay.com)
*/
function sky_curl_get_file_contents( $URL ){
	$c = curl_init();
	curl_setopt( $c, CURLOPT_RETURNTRANSFER, 1 );
	curl_setopt( $c, CURLOPT_URL, $URL );
	$contents = curl_exec( $c );
	curl_close( $c );
	if( $contents ) :
		return $contents;
	else:
		return false;
	endif;
}Code language: PHP (php)

La fonction retourne false si la requête échoue, ce qui est très utile pour éviter de faire des appels à des valeurs d’un tableau qui n’existe pas.

On peut alors réfléchir à un autre moyen de peupler les champs de données structurées (mais c’est un sujet à aborder une autre fois).

Pink Floyd - Delicate Sound Of Thunder photo

Pink Floyd – Delicate Sound Of Thunder

Filmed and recorded live at the Nassau Coliseum, Long Island in August 1988 during the ‘Momentary Lapse Of Reason’ World Tour.

In December 2019 Pink Floyd released The Later Years box set. It features newly re-edited version of the ‘Delicate Sound Of Thunder’ video with newly remixed audio as one of the main features. But unfortunately it wasn’t expanded to the full setlist concert. Several originally omitted tracks presented there on the bonus Blu-Ray/DVD disc. Also two instrumental compositions remained in shortened form. Unfortunately, footage of another two tracks from the setlist weren’t included at all for unknown reasons. I present the expanded edition of this beautiful concert video with all available footage in the right place.

This edition expands official 2019 version by 17 minutes.

  1. Shine On You Crazy Diamond [00:00:00]
  2. Signs of Life [00:12:16]
  3. Learning to Fly [00:16:34]
  4. Yet Another Movie [00:21:48]
  5. Round And Around [00:28:08]
  6. A New Machine (part 1) [00:28:42]
  7. Terminal Frost [00:30:17]
  8. A New Machine (part 2) [00:36:33]
  9. Sorrow [00:37:11]
  10. The Dogs Of War *
  11. On The Turning Away [00:47:36]
  12. One Of These Days [00:56:40]
  13. Time [01:02:57]
  14. On The Run [01:08:18]
  15. The Great Gig In The Sky [01:11:49]
  16. Wish You Were Here [01:16:34]
  17. Us And Them [01:21:25]
  18. Money [01:29:01]
  19. Comfortably Numb *
  20. One Slip [01:37:28]
  21. Run Like Hell [01:43:34]
  22. Terminal Frost (credits) [01:52:42]

Expanded by CMI in January 2020.

Total running time: 2 hours 12 minutes 20 seconds
Unfortunately ‘The Dogs Of War’ and ‘Comfortably Numb’ were excluded by YouTube policy.

Details:
The source for this project is Blu-Ray 1080p with 24/96 audio.

  1. ‘Signs Of Life’ expanded to its original length using footage from Screen Film.
  2. ‘Yet Another Movie’ / ‘Round And Around’ / ‘A New Machine’ (part 1) / Terminal Frost / A New Machine (part 2) segment placed in the original order of the set.
  3. Small re-edit in ‘The Dogs Of War’ before 1st verse using footage from Screen Film.
  4. ‘On The Run’ expanded to its original length using footage from Screen Film.
  5. Syncronisation is corrected for 3 final drum hits in ‘Money’.