Je possède ce petit script (background.php
):Contexte exec() et de l'écriture sur le disque
<?php
$url = urldecode($_SERVER['argv'][1]);
$id = $_SERVER['argv'][2];
$name = $id.'.mp4';
$proof = $id.'.proof';
// Download
file_put_contents("temp/$name", fopen($url, 'r'));
file_put_contents("temp/$proof", "");
?>
Je veux courir en arrière-plan.
Cas 1
Si je fais exec('php download.php my_url id > /dev/null &');
il fonctionne en arrière-plan, mais ne télécharge rien.
Cas n ° 2
Si je exec('php download.php my_url id >> temp/loging.log &');
télécharge le fichier, mais pas en arrière-plan (lors du téléchargement de ma page Web est « chargement »).
Quelqu'un peut-il m'aider?
Remarque
Je courais le php
sous Windows avec UniServerZ.
Y at-il une chance que le script produise une sortie non redirigée vers votre fichier journal, tel qu'un avertissement ou une erreur? avez-vous vérifié que php a la permission d'écrire dans le dossier et tel? Avez-vous essayé de produire une sortie pour vérifier qu'elle est correctement ajoutée au fichier journal? – Kaddath
La sortie va en effet dans le fichier journal. Les autorisations: ça devrait être ok, n'est-ce pas, puisque le script télécharge le fichier dans le cas 2. – Colas
je pensais plus aux permissions pour écrire le journal, mais le fait qu'il le fasse répond à la question .. désolé, pas d'autre idée pour le moment – Kaddath