Archive for the tag 'www'

suPHP

chenpc April 3rd, 2009

首先,我們常常會遇到的問題是,當很多人一起用一台機器的時候,UNIX自己有一套管理使用者權限的辦法。但是在處理www的服務時,卻是公用一個www 的帳號來處理使用者的網頁目錄。比方說,使用useridr時,我的家目錄 “/home/chenpc/public_html” 必須是www可以讀取的。這樣www才有辦法讀到我的網頁。如果我要在我家目錄上架一個blog or forum,勢必有關於mysql密碼的設定檔。wordpress為例,wp-config.php裡面放著access資料庫的密碼。由於使用者沒辦 法把這個檔案設定成只有www可以read,所以他的權限必須是”other can read”。這樣一來,同樣在這台機器上的使用者可以用cat wp-config.php讀取你的密碼。這樣一來問題非常嚴重。另一個問題是,當你要使用上傳檔案功能的時候,必須有一個目錄是777,因為必須 讓”other can write”。所以suphp可以用來解決這個問題。
安裝和設定方法參考http://www.suphp.org/Home.html

使用suphp之後,寫一個php內容為:

<?php
system("id")
?>

這樣他會顯示出你的id,也就是說,他是依照檔案owner的權限去改變執行權限。也就是說,你自己的檔案會用你自己的權限去跑。wp- config.php可以使用700這種自己才讀得到得權限。當你機器很多人在使用的時候,可以考慮用這種方法才保護每個人的檔案安全性。

高彈性的Virtual hosting

chenpc April 3rd, 2009

一般virtual host必須把設定方法寫在httpd.conf裡面,這種方法缺點就是一旦更新檔案,apache就必須手動reload。既然vhost類似rewrite,謂何不用rewrite rule去取代?

在vhost.conf裡面加上:
RewriteEngine on
RewriteMap   lowercase  int:tolower
RewriteMap   vhost      txt:/www/vhost/vhost.map
RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$
RewriteCond  ${vhost:%1}  ^(/.*)$
RewriteRule  ^/(.*)$ %1/$1

vhost.map這個檔案格式如下:
“domainname”       “document root”
chenpc.csie.in        /home/chenpc/public_html

這樣只要更變vhost這格檔案,不需要重新啟動apache就可以作virtual host。甚至可以寫一個很簡單的php去access vhsot.map這個檔案就可以拿動態的更變virtual hsot。這樣可以讓每個使用者自己更變virtual host的名稱跟目錄,不用每次都麻煩管理者去處理。配合suphp使用,還可以加強使用者的安全性。