iT邦幫忙

0

Fedora7架apache的問題

我在Fedora7上架了apache伺服器..
打127.0.0.1有看到test page頁面捏~
表示apache有啟動而且正常了吧!?
而且我把網頁放在var/www/html裡..
打上127.0.0.1/index.html可以看到頁面 @@
但是我現在要做的是讓使用者可以放自己的網頁上去..
我看了一下/etc/httpd/conf.d檔案
路徑是打/home/*/publib_html..
所以我在/home/user01/publib_html裡放了一個網頁~
然後打上127.0.0.1/~user01..但是卻會是找不到網頁伺服器捏 = =
正常我還沒有把UserDir disable註解掉..
不是應該也有用網頁瀏覽看資料夾裡的東西嗎!?
而且我試著把UserDir disable註解掉,UserDir public_html註解拿掉
打上127.0.0.1/~user01,一樣是顯示找不到伺服器捏!!
為什麼會顯示找不到伺服器呀??
是還有哪裡漏設定到了嗎?感覺伺服器好像都正確了呀 @@
為什麼使用者網頁還是無法用呢?
請有經驗的大大幫忙一下囉~~
先謝謝囉 :D

fillano iT邦超人 1 級 ‧ 2009-04-09 02:17:16 檢舉
嗯嗯,已經解決了?

SELinux是個老問題,但是現在好用很多,有許多工具跟內建的rule可以用,所以不一定要選擇關掉,也許順便把他的使用方式學起來會比較好啦。說明也相當完整,透過man selinux然後follow他see also底下的entry point,可以用的工具以及用法都會有詳細的說明。
static314 iT邦研究生 5 級 ‧ 2009-04-09 10:42:54 檢舉
嗯..已經解決了 ^^
謝謝大大建議..
我會研究不關掉SELinux試看看 :D
如有遇到問題再請教大大囉 ^^
gric iT邦高手 1 級 ‧ 2009-04-11 23:48:09 檢舉
有看有學到!THX!

1 個回答

30
fillano
iT邦超人 1 級 ‧ 2009-04-05 22:56:08
最佳解答

找不到伺服器?UserDir沒設好通常看到的是Forbidden的訊息阿?有幾種可能性:

  1. 重啟apache失敗,所以系統沒有提供網頁服務(應該不會是這樣吧?)
  2. 也許httpd.conf裡面設定了Listen ip:80而不是Listen 80,這樣他只在這個ip提供服務,127.0.0.1就會上不去。不過既然沒開UserDir也上得去,就不應該是這個情況。
  3. 如果出現forbidden訊息,請檢查:/home/userdir權限是711,/home/userdir/public_html權限是755(這在httpd.conf裡面有註解說明)。

我測試成功的設定:(基本上就是預設值啦)

<pre class="c" name="code">
<IfModule mod_userdir.c>
    UserDir public_html
</IfModule>
<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>
看更多先前的回應...收起先前的回應...
fillano iT邦超人 1 級 ‧ 2009-04-06 21:27:37 檢舉

你能不能描述一下所謂「找不到server」是怎樣的狀況?我無法從你的說明中判斷問題出在哪個環節...

例如,user01上不去,但是根目錄ok,那就是user_dir模組可能有設定的問題,或是權限的問題。瀏覽器有出現什麼訊息嗎?

fillano iT邦超人 1 級 ‧ 2009-04-07 14:15:26 檢舉

/var/log/httpd/error.log有什麼錯誤訊息?

fillano iT邦超人 1 級 ‧ 2009-04-07 14:16:24 檢舉

錯了,是/var/log/httpd/error_log
應該沒錯吧?

fillano iT邦超人 1 級 ‧ 2009-04-07 21:45:35 檢舉

恩?從錯誤訊息看起來,index.html這個檔案的權限恐怕有問題。檢查一下看看吧。

fillano iT邦超人 1 級 ‧ 2009-04-08 13:58:18 檢舉

我想是SELinux沒開啟userdir的權限,檢查一下:
grep SELinux /var/log/messages\*|grep http 看看有沒有相關錯誤訊息。

使用getsebool httpd\_enable\_homedirs 可以看到是否有開啟。如果是off的話表示是關閉的,這樣就會有權限問題。

man httpd\_selinux 可以看到一些設定的方法。我想可以試著用:
setsebool -P httpd\_enable\_homedirs 1
來開啟userdir的權限。如果還不行,那在/home/user22底下用:
ls -Zl
來看看public_html目錄的security context的資訊。如果不是設定成httpd_sys_content_t的話,可以透過:
chcon -R -t httpd\_sys\_content\_t public\_html
來修改。

fillano iT邦超人 1 級 ‧ 2009-04-08 14:07:24 檢舉

對了,我是在Centos下測試的,跟你的系統不一定一樣。我想你還是要man selinux來找一些資訊。

我要發表回答

立即登入回答