Estoy usando Laravel 5.1, con el registro configurado para generarse diariamente.
Estoy usando mucho Jobs. El servidor web es Apache, por lo tanto, PHP se ejecuta como usuario de apache
, por lo que al final del día, el usuario de apache genera un nuevo archivo de registro y el permiso de archivo es 0644
. Tengo trabajadores configurados a través de Supervisor, que está siendo ejecutado por un usuario de apache. (Hasta aquí todo bien)
Ahora, para un pico aleatorio en la cola, tengo una configuración de secuencia de comandos para ejecutar más trabajadores (Consumidores de la cola). El problema al que me enfrento es que, dado que el archivo de registro se genera con el permiso 0644, otros usuarios no tienen permiso de escritura para el archivo.
Pocas soluciones que se me ocurren son:
root
(no puedo hacerlo, ya que no tengo permisos)0646
a las 00:00:00 cada día (también requiere root)0646
(no puede ser confiable, ¿qué pasa si apache
lo crea primero)apache
(ya que no es root, esto no es posible)Entonces, mi pregunta es cuál es la mejor manera de hacerlo, me parece un problema general al que cualquier desarrollador podría enfrentarse. ¿O hay alguna manera mejor de hacer esto además de los métodos mencionados anteriormente?
[..] otros usuarios no tienen permiso de escritura para archivar.
¿Está seguro de que desea que esos usuarios accedan al archivo directamente? Simplemente puede agregar una API a su aplicación laravel para servir este archivo (o incluso solo algunos datos filtrados de él). Esto también le permite tener un control de acceso más detallado dentro de su aplicación, etc.