鍍金池/ 問答/PHP/ PHP file_put_contents:failed to open str

PHP file_put_contents:failed to open stream: Permission denied

clipboard.png

環(huán)境:
PHP:5.6.31
系統(tǒng):Ubuntu
THinkPHP5
LNMP一鍵安裝包

問題描述:
經(jīng)常出現(xiàn)這個(gè)沒有緩存文件沒有權(quán)限打開

已經(jīng)嘗試過:
chown -R www.www 目錄

chmod -R 777 目錄

但只能一時(shí)生效,過段時(shí)間還會(huì)出現(xiàn)

錯(cuò)誤原因推測:
我寫了一些定時(shí)任務(wù),不知道是不是定時(shí)任務(wù)生成的緩存文件

回答
編輯回答
爆扎

Permission denied:沒有權(quán)限
雖然你

chown -R www.www

但是你PHP的運(yùn)行用戶是www嘛?
定時(shí)任務(wù)的話,你可能手動(dòng)php task.php了,那php的用戶可能是root了

2017年6月25日 03:08
編輯回答
瘋浪

定時(shí)任務(wù)執(zhí)行的時(shí)候估計(jì)你是root用戶執(zhí)行,php-fpm用戶不同的話是不可以寫入的。建議定時(shí)任務(wù)寫入完之后執(zhí)行

chmod($filename,666);

運(yùn)行其他用戶讀取和寫入

2018年9月18日 16:14
編輯回答
心癌

應(yīng)該是定時(shí)任務(wù)執(zhí)行后對(duì)權(quán)限進(jìn)行了更改,例如你的定時(shí)文件 start.sh 可操作用戶是 user,當(dāng)他執(zhí)行的時(shí)候,所有被操作的文件夾及文件都會(huì)歸屬用戶都會(huì)變成user,或者無法操作。

2017年10月13日 11:32
編輯回答
空痕

我是用laravel 的php artisan config:cache和php artisan config:clear,在刪除緩存文件后運(yùn)行,就解決了,當(dāng)初大體原因是在開發(fā)的時(shí)候,本地開發(fā)后把整個(gè)項(xiàng)目上傳上去,導(dǎo)致服務(wù)器記錄的緩存文件不存在,刪除并重置后就解決了,菜鳥一枚,答案不知道對(duì)不對(duì),你可以嘗試去查下這方面tp有沒有解決辦法

2018年3月7日 04:05
編輯回答
薄荷糖

查看你的定時(shí)任務(wù)是否需要寫入文件,如果有,那么使用用戶權(quán)限是什么?

web目錄權(quán)限一般會(huì)設(shè)置為www,如果定時(shí)任務(wù)是有root執(zhí)行的,那么定時(shí)任務(wù)操作過的文件www用戶是沒有權(quán)限修改的

定時(shí)任務(wù)如果沒有特殊需求,只需要執(zhí)行web目錄里的代碼和修改該目錄的文件,那么定時(shí)任務(wù)的執(zhí)行用戶可以修改為www

定時(shí)任務(wù)crontab指定執(zhí)行用戶

2017年4月21日 11:55