您好!歡迎來到雷安! 注冊 |   登錄
您現在所在的位置:網站首頁 >> 新聞中心>> 新聞內容

Fedora上Nginx一些問題解決_服務器應用[2015-09-09]
       由于Ubuntu官方源上的軟件版本都太低了(比如nodejs的版本只有0.6),不得不把開發環境轉移到Fedora上,而且Fedora屬于RHEL系,操作上與Red Hat/CentOS相似。雖然網上都說Fedora是Red Hat的試驗品,也沒太在意。直到用到了systemd,才發現有多坑。

  事情從運行nginx開始(Fedora在VMware中,nginx是使用yum安裝的,自帶systemd的service,根目錄設置在/mnt/hgfs/www),可是用systemctl啟動的nginx無法訪問根目錄(瀏覽器報403,autoindex已開,日志說permission denied,目錄權限777,以前在Ubuntu中都是正常的),但是改到默認的/usr/share/nginx/html就正常了。

  一開始覺得是vmhgfs的問題,百度來谷歌去也沒什么相關的內容。

  后來想那我不用vmhgfs不就ok了,于是新建了一塊硬盤,分區格式化(ext4)后mount到/www,結果又是403!

  后來嘗試了直接運行nginx結果根目錄設在哪都不會報錯,包括前面的vmhgfs.那就說明問題不是出在vmhgfs上,既然用systemctl跑的nginx和直接運行的結果不同,那么問題一定就出在systemd上。

  研究了nginx.service也沒有發現任何問題,包括一行一行地注釋掉也無效,反正只要不是/dev/sda上的文件系統就報403.

  再想能不能不用systemctl來啟動nginx,以前在Ubuntu下使用rc.local來啟動nginx就一直很正常,于是嘗試了新建rc.local來啟動nginx,nginx是起來了,結果還是403.后來想想這里的rc.local也是通過systemctl起來的,還是繞不開systemd.

  轉向去研究systemd,發現這是SysV的替代品,在Fedora 16的時候就應用了。但是網上的資料不多。

  最后把根目錄設為/,發現少了三個目錄,分別是/root /www /lost+found.三者的權限都不同,/lost+found的是700,/root的是550,而/www的是755.連755的目錄都無法顯示出來沒道理啊,700的也應該是無法進入而不是不顯示啊,而且同樣掛載方式的/boot都能顯示出來。嘗試進入/home時又報403了,/home是755的權限。真不知道nginx是以誰的權限訪問目錄了。最后推斷問題只能出在systemd對文件系統的管理上了。

來源: 中國IT實驗室


亚洲成年网站线www_亚洲成在人线在线播放_亚洲第一成年免费网站