原文連結 在配置伺服器個人首頁的時候,發現網上的資料大多是2.4之前版本的,與新版的apache配置有些許不同,是以寫了這篇文章。
準備工作
- 檢視apache版本
我的版本是2.4.6,個人首頁相關的配置檔案在httpd -v
和/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 配置檔案
- 進入
設定,将第17行的/etc/httpd/conf.d/userdir.conf
加上注釋并取消24行UserDir disabled
的注釋(可以更改UserDir後面檔案夾的名字,比如UserDir public
)UserDir www
- 添加下面的代碼到
檔案中/etc/httpd/conf/httpd.conf
這裡要注意的是,apache2.4版本已經取消了#将name和username按情況替換掉 <Directory "/home/username/www"> AllowOverride None Options Indexes FollowSymLinks Require all granted </Directory>
的使用,而采用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目錄下吧^_^。