cron으로 돌리고 있는 명령어가 www-data 소유 폴더에 리사이즈 이미지를 만들어야 했다. cron은 일반 사용자가 돌리고, 폴더 권한은 755(소유자만 쓰기 가능)였기 때문에 파일 만들기에 실패했다.

이 문제를 해결하기 위해 root로 cron을 돌릴 수도 있다. 하지만 그러면 생성된 파일의 소유자가 root가 되기 때문에 www-data 권한만 있는 웹서버가 해당 리사이즈 이미지를 지우거나 고칠 수 없다는 문제가 생긴다.

/etc/crontab을 이용하면 사용자를 지정해 cron을 돌릴 수 있다. /etc/crontab은 시스템이 수준의(system-wide) cron 명령어를 저장하는 파일인데, 이 파일에는 user를 지정하는 항목이 있다. 아래처럼 적는다.

# m h dom mon dow user	command
* *     * * *   www-data php /var/www/artisan schedule:run >> /dev/null 2>&1