前言
權(quán)限未配置正確前唱捣,在安裝thinkcmf的時(shí)候抠蚣,會(huì)提示緩存寫入失敗赊堪,在data/runtime目錄中面殖,執(zhí)行不了寫的權(quán)限。粗暴的方式就是把該目錄的權(quán)限修改為777哭廉,但是這樣不安全脊僚,不是我們想要的,權(quán)限最高到755才是我們要的結(jié)果遵绰。
經(jīng)過(guò)查詢辽幌,終于找到了解決辦法,【 nginx服務(wù)器的網(wǎng)站權(quán)限問(wèn)題】
有時(shí)候我們的網(wǎng)站根目錄會(huì)從一個(gè)目錄遷移到另一個(gè)目錄椿访,如果我們服務(wù)器使用的是nginx或者Apache乌企,我們一般會(huì)配置好網(wǎng)站根目錄后然后往直接把網(wǎng)站解壓或者上傳到根目錄中,這樣引起的問(wèn)題是無(wú)法對(duì)對(duì)文件進(jìn)行任何的操作導(dǎo)致網(wǎng)站的異常成玫,這在框架中最為常見(jiàn)加酵,本地運(yùn)行好好的網(wǎng)站,上傳到服務(wù)器之后突然就不能訪問(wèn)了哭当,出現(xiàn)很多錯(cuò)誤猪腕,這就是在Linux下存在的權(quán)限問(wèn)題,網(wǎng)上有些方法是很粗暴的使用chmod -R 777 dirname把所有的文件權(quán)限全部打開(kāi)钦勘,其實(shí)這樣能解決問(wèn)題陋葡,但是不是最好的解決方案,我們?nèi)绻斫釲inux系統(tǒng)的用戶權(quán)限那么問(wèn)題就有更好的解決方案彻采,下面以nginx服務(wù)器為例看一下腐缤。
修改nginx的用戶和用戶組
首先默認(rèn)的網(wǎng)站目錄是755權(quán)限的并且我們?cè)趓oot用戶下的默認(rèn)權(quán)限也是該用戶的權(quán)限捌归,就是目錄的所屬用戶和用戶組都是root,當(dāng)我們?cè)L問(wèn)網(wǎng)站時(shí)岭粤,瀏覽器發(fā)出請(qǐng)求惜索,服務(wù)端相應(yīng)的資源處理請(qǐng)求,如果涉及到文件的修改或新建操作時(shí)绍在,服務(wù)端程序負(fù)責(zé)執(zhí)行门扇,由于服務(wù)端程序是由nginx和相應(yīng)的語(yǔ)言解釋模塊負(fù)責(zé)執(zhí)行的雹有,所以首先服務(wù)器要有權(quán)限修改網(wǎng)站目錄偿渡,我們打開(kāi)nginx服務(wù)器下的配置文件/etc/nginxnginx.conf
,第一行就是nginx執(zhí)行的用戶和組的設(shè)置霸奕。
然后重啟nginx服務(wù)器
修改php-fpm用戶和用戶組
如果是php的話溜宽,那么目前比較常用的是nginx會(huì)交由php-fpm模塊去執(zhí)行相應(yīng)的操作,所以還應(yīng)該在/etc/php-fpm.d/www.conf
中修改质帅。
; Start a new pool named 'www'.
[www]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = www
; RPM: Keep a group allowed to write in log dir.
group = www
修改之后重啟php-fpm模塊适揉,到這里用戶配置就完成了
然后我們可以新建一個(gè)專門用于網(wǎng)站和ftp上傳文件的用戶,該用戶是不登錄的所以建立的時(shí)候要使用/sbin/nologin來(lái)建煤惩,我們看到nginx服務(wù)器的權(quán)限是www所以此時(shí)我們的做法是把網(wǎng)站根目錄的權(quán)限改為www嫉嘀,命令為:
chown -R -v www:root /www/wwwroot
這樣的話網(wǎng)站用戶和組的的權(quán)限分別是www和root,服務(wù)器作為用戶的讀寫是沒(méi)有任何問(wèn)題的魄揉,這個(gè)時(shí)候如果服務(wù)端自動(dòng)建立的文件用戶權(quán)限就為www組權(quán)限也為www剪侮,這樣就具有完全的控制權(quán)了并且權(quán)限限制的剛好,
另外有些時(shí)候我們使用的網(wǎng)頁(yè)富文本編輯器會(huì)遇到權(quán)限的問(wèn)題洛退,導(dǎo)致無(wú)法上傳文件或者建立目錄瓣俯,這個(gè)時(shí)候我們只需要手動(dòng)更改上傳目錄的權(quán)限為777即可,比如:chmod 777 upload 可能原因是編輯器前后端使用的是js交互兵怯,所以并不完全是nginx服務(wù)器的緣故
經(jīng)過(guò)以上的步驟彩匕,在Linux上部署網(wǎng)站時(shí),權(quán)限問(wèn)題就解決了