J'essaie de faire un script php qui télécharge un exécutable avec curl. Jusqu'à présent, je suis en mesure de télécharger le fichier, mais après le téléchargement, le fichier n'est pas exécutable (c'est à dire si vous exécutez php wp-cli.phar
rien ne se passe). Je réalise qu'il s'agit d'un comportement attendu pour prévenir les risques de sécurité, alors comment dire à Curl que je veux que le fichier téléchargé soit traité comme un exécutable? La commande équivalente de la ligne de commande est: curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Télécharger un fichier .phar exécutable avec php et curl
Ceci est mon code, qui tente de mettre en œuvre la commande ci-dessus dans un script php, mais le fichier résultant n'est pas exécutable:
set_time_limit(0);
$fp = fopen ('./wp-cli.phar', 'w+');
$ch = curl_init('https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar');
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);
INFORMATIONS SUPPLÉMENTAIRES
Si vous souhaitez reproduire l'erreur, créez un fichier appelé a.php
avec le contenu ci-dessus. Ensuite, exécutez php a.php
et puis exécutez php wp-cli.phar --info
Quand vous dites "rien ne se passe", que voulez-vous dire? Vous obtenez aucune sortie de l'exécution de cette commande? Vérifiez les autorisations et le propriétaire/groupe du fichier. Est-il même exécutable par l'utilisateur exécutant 'php'? Le fichier téléchargé se trouve-t-il dans le même répertoire relatif que celui où vous essayez de l'exécuter? – Andy
Créer un fichier ne le rend pas automatiquement un exécutable, vous devez changer les permissions ('chmod 775 filename' sur Linux CLI) –
@Andy Par" rien ne se passe "Je veux dire que je n'ai pas de sortie, oui, comme si je tapais une commande vide. Les permissions du fichier sont '-rw-r - r -' et j'en suis le propriétaire. Oui, je cours les deux scripts (celui que vous voyez et celui téléchargé) du même répertoire, les deux sont là. @NigelRen Toujours le même. Je l'ai même essayé avec la fonction 'chmod' de php avant. –