轉載:http://www.cnblogs.com/yuanyq/p/3435022.html#2821339html
最近一段時間在開發面向移動設備的網頁,並且是靜態網頁。因此很須要一個HTTP服務器,簡單明瞭的就能夠。在Windows上,HFS(http://www.rejetto.com/hfs/) 是我比較鍾愛的一個小工具,而且仍是免費。在Mac電腦上,嘗試了幾款輕量的HTTP文件服務器,感受都不是很理想。好比App Store裏面的SimpleHTTPServer,我甚至花了25塊錢購買了Pro版,居然連最基本的HTTP Range都不支持。還有就是Python帶的那個SimpleHTTPServer模塊,也是不太良好。只好回到Apache了。apache
Mac OS X自己就帶了Apache(至少從10.7開始就有),接下來就是要一步一步的把Mac上的Apache配置起來。瀏覽器
先說一下環境:Mac OS X 10.9。安全
而後,來檢查一下Mac上Apache的版本。打開一個終端應用。能夠從LaunchPad>其餘>終端來打開,也能夠直接在Spotlight中輸入terminal來打開。服務器
在終端中輸入apachectl -v查看安裝的Apache版本。ide
user@my-mac:~ $ apachectl -v Server version: Apache/2.2.24 (Unix) Server built: Aug 24 2013 21:10:43
而後直接去/etc/apache2下面修改Apache的配置文件httpd.conf(2.2版本的Apache仍是一個配置文件)。因爲這個文件的屬主是root,因此普通用戶須要使用sudo vi httpd.conf來編輯。svn
這個文件中比較關鍵的地方摘抄以下:工具
User _www Group _www
# 這裏就是你的要提供服務的根路徑。 DocumentRoot "/Users/user/Documents/svn-copy/books"
# 這裏是針對這個根路徑的權限配置
<Directory "/Users/user/Documents/svn-copy/books"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory>
編輯完畢以後,保存.測試
出於安全性的考慮,默認狀況下,Apache的httpd服務是使用比較低權限的用戶身份去運行的,也就是上面截取的配置文件中的User _www和Group _www一行。因此首先你要容許_www訪問你的文檔,至少要可以讀取。ui
啓動Apache服務。默認的監聽端口是80,因此須要root權限纔可以啓動apache。
user@my-mac:apache2 $ sudo apachectl start
而後,使用瀏覽器打開http://localhost。哦,給出了403訪問被禁止的消息。那麼,猜想是權限出現問題了。先看看Apache的日誌吧:
cd /var/log/apache2 cat error_log Permission denied: access to / denied (filesystem path '/Users/user/Documents/svn-copy') because search permissions are missing on a component of the path
根據日誌中的錯誤信息,那麼必定是在這個路徑上,某一個或者多個文件夾不容許_www用戶(httpd的運行用戶)search(針對文件夾的 search對應的就是文件夾權限的x)。那麼就從最後向最前找。很容易就發現/Users/user/Documents這個文件夾不容許其餘人讀取。 反正是本身內網開發測試用的,索性就容許其餘用戶讀取好了。
user@my-mac:~ $ cd user@my-mac:~ $ chmod o+rx Documents
而後再次訪問http://localhost,一切OK了。