apache在windows 2003下的安全配置(目錄權限)

衆所周知,在windows下當Apache第 一次被安裝爲服務後,它會以用戶“System”(本地系統賬號)運行。如果web服務器的所有資源都在本地系統上,這樣做會問題比較少,但是將會具有很 大的安全 權限來影響本地機器,因此千萬不能開啓System帳號的網絡權限!
於是要創建一個新的帳戶來替代這個帳號啓動apache並設置相應的權限:
1.在計算機管理裏的本地用戶和組裏面創建一個帳戶,例如:apache,密碼設置爲 apacheuser,加入guests組(如果出現問題,可以賦予user權限);

2.打開開始->管理工具->本地安全策略,在用戶權限分配中選擇“作爲服務登陸”,添加apache用 戶;

3.計算機管理裏面選擇服務,找到apache2.2,先停止服務,右擊->屬性,選擇登陸,把單選框從本地系統帳戶切換到此帳戶,然後查找 選擇apache,輸入密碼apacheuser,然後點確定(這個時候apache還不能正常啓動,一般情況肯定會報錯:Apache2.2 服務因 1 (0x1) 服務性錯誤而停止。);

4.賦予apache安裝目錄(比如:D:/apache2.2)以及web目錄(比 如D:/wwwroot)apache帳號的可讀寫權限,去除 各磁盤根目錄除administror與system以外的所有權限,賦予apache安裝 目錄所在的磁盤根目錄apache帳戶的可讀取列目錄權限(我 開始覺得沒必要,但後來發現:這是導致上面出錯的關鍵。)

5.啓動apache,一切OK了。

6.php.ini中指定的PHP臨時上傳目錄和session保存目錄,並給予目錄apache完 全控制權限,例如:
upload_tmp_dir = "D:/wwwroot/Tmp/uploadtmp/"
session.save_path = "D:/wwwroot/Tmp/sessiontmp/"

7.給予D:/php目錄讀取與運行的權限;

8.給予zend安裝目錄讀取與運行的權限;

9.限制讀取訪問的目錄,修改apache安裝目錄下conf文件夾下的 httpd.conf,加上:
php_admin_value open_basedir "D:/wwwroot"
php_admin_value safe_mode On

httpd.conf配置(假如將PHP讀寫權限限制在E:\smis目錄下)
Apache2.0配置示例:
<VirtualHost *:80>
ServerName www.abc.com
DocumentRoot "E:/smis"
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm default.htm index.php default.php
AllowOverride None
Order Deny,Allow
Allow from all
php_admin_value open_basedir "E:/smis/;E:/APMServ5.2.0/PHP/uploadtemp/;E:/APMServ5.2.0/PHP/sessiondata/"
php_admin_value safe_mode On
</VirtualHost>
 

Apache2.2配置示例:
<VirtualHost *:80>
ServerName www.abc.com
DocumentRoot "E:/smis"
</VirtualHost>
<Directory "E:/smis">
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm default.htm index.php default.php
AllowOverride None
Order Deny,Allow
Allow from all
php_admin_value open_basedir "E:/smis/;E:/APMServ5.2.0/PHP/uploadtemp/;E:/APMServ5.2.0/PHP/sessiondata/"
php_admin_value safe_mode On
</Directory>
本文來源於獨自等待博客:http://www.waitalone.cn/ 原文地址:http://www.waitalone.cn/post/826.html


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章