天天看點

apache2.4伺服器個人首頁的設定

原文連結 在配置伺服器個人首頁的時候,發現網上的資料大多是2.4之前版本的,與新版的apache配置有些許不同,是以寫了這篇文章。

準備工作

  • 檢視apache版本
    httpd -v
          
    我的版本是2.4.6,個人首頁相關的配置檔案在

    /etc/httpd/conf.modules.d/00-base.conf

    和 

    etc/httpd/conf.d/userdir.conf

  • 檢視

    /etc/httpd/conf.modules.d/00-base.conf

    ,必須有

    userdir_module

    子產品,如:
    $ cat /etc/httpd/conf.modules.d/00-base.conf | grep userdir
    LoadModule userdir_module modules/mod_userdir.so
          

修改apache 配置檔案

  • 進入

    /etc/httpd/conf.d/userdir.conf

    設定,将第17行的

    UserDir disabled

    加上注釋并取消24行

    UserDir public

    的注釋(可以更改UserDir後面檔案夾的名字,比如

    UserDir www

    )
  • 添加下面的代碼到

    /etc/httpd/conf/httpd.conf

    檔案中
    #将name和username按情況替換掉
    <Directory "/home/username/www">
    AllowOverride None
    Options Indexes FollowSymLinks
    Require all granted
    </Directory>
          
    這裡要注意的是,apache2.4版本已經取消了
    Order Deny,Allow
    Allow from All
          
    的使用,而采用
    Require all granted
          
    來設定對目錄的通路。
  • 設定别名
    Alias /name/ "/home/usename/www/" 
          

建立檔案根目錄

  • 進入個人家目錄,建立一個檔案夾www和測試頁面
    mkdir ~/www
    cd ~/www
    echo "Test home dir" >> index.html
          

将selinux關閉,檢視是否可以通路。

修改權限和selinux設定

開啟selinux服務

個人家目錄要允許apache軟體通路,必須設定家目錄和www目錄可讀可執行權限,比如

$ chmod 755 /home/username
$ chmod 755 ~/www -R
      

另外,需要修改selinux設定,否則會顯示

Permission denied

$ ll -Z ~/  #檢視家目錄下各目錄上下文
      

其中www目錄必須有

user_home_t

内容,若沒有,則執行

# chcon -t user_home_t /home/username/www -R
      

然後,開啟伺服器個人首頁權限

# setsebool httpd_enable_homedirs on
      

到此個人目錄可以使用,将代碼放到~/www目錄下吧^_^。