在Mac OS X上配置Apache2


最近一段時間在開發面向移動設備的網頁,而且是靜態網頁。所以很需要一個HTTP服務器,簡單明了的就可以。在Windows上,HFS(http://www.rejetto.com/hfs/)是我比較鍾愛的一個小工具,並且還是免費。在Mac電腦上,嘗試了幾款輕量的HTTP文件服務器,感覺都不是很理想。比如App Store里面的SimpleHTTPServer,我甚至花了25塊錢購買了Pro版,竟然連最基本的HTTP Range都不支持。還有就是Python帶的那個SimpleHTTPServer模塊,也是不太良好。只好回到Apache了。

Mac OS X本身就帶了Apache(至少從10.7開始就有),接下來就是要一步一步的把Mac上的Apache配置起來。

先說一下環境:Mac OS X 10.9。

然后,來檢查一下Mac上Apache的版本。打開一個終端應用。可以從LaunchPad>其他>終端來打開,也可以直接在Spotlight中輸入terminal來打開。

在終端中輸入apachectl -v查看安裝的Apache版本。

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來編輯。

這個文件中比較關鍵的地方摘抄如下:

 

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訪問你的文檔,至少要能夠讀取。

啟動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了。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM