J'ai une application web qui a un fichier config.php partagé. Dans ce fichier, j'inclue une fonction qui rassemble les messages d'erreur (en utilisant set_error_handler
) puis, à la fin de l'exécution du script, enregistre les erreurs dans un fichier journal centralisé (en utilisant register_shutdown_function
).Propriétaire de fichier différent pour les fichiers créés via cron vs apache
Les fichiers journaux sont créés quotidiennement, au format Y-m-d.log
. Les scripts Cron s'exécutent toutes les 5 minutes dans le cadre de l'application, ils sont donc généralement à l'origine des premières erreurs chaque jour. Le fichier d'erreur est donc créé sous l'utilisateur cron, qui est le superutilisateur du compte.
Lorsque notre personnel vient travailler et utiliser l'application, le script s'exécute sous l'utilisateur apache (99). Le consignateur d'erreurs ne peut pas écrire dans le fichier d'erreurs, car il appartient à superutilisateur.
Une solution possible est d'avoir le script cron chown
le fichier journal à 99, afin qu'il puisse être consulté par l'utilisateur apache. Est-ce que uid 99 est une convention acceptée pour l'hébergement d'apaches, ou est-ce que je vais causer des problèmes de portabilité si je code dur 99?
Existe-t-il d'autres moyens (sans recourir à exec
/sudo
) pour rendre mon journal accessible?
Mise à jour: Je n'ai pas d'accès shell au serveur.
Merci, Adam
Avez-vous essayé de lancer la tâche cron sous l'utilisateur apache en utilisant 'sudo'? –