本人剛接觸 Mac os (Yosemite 10.10.5)如何配置apache web服務,經網上找資料及實踐,成功配置了php web站點及虛擬主機,可對初學者借鑑參考,現紀錄如下。
1、在OS X Yosemite打開終端運行 sudo apachectl start ,之後在地址欄輸入
http://localhost ,頁面顯示 It works! ,說明運行成功!OS X Yosemite自帶安裝 apache ,可以終端輸入:httpd -v 或 apachectl -v 查看版本:Server version: Apache/2.4.16 (Unix)
2、要使站點支持php ,只要在httpd.conf 開啓php開關就可以了。步驟:終端輸入open /etc 回車,自動彈出窗口找到 apache2文件夾,打開此文夾找到 httpd.conf ,編輯此文件找到 #LoadModule php5_module libexec/apache2/libphp5.so (httd.conf 文件中第169行),把此句前邊#去除取消註釋,保存文件修改。在終端輸入 sudo apachectl restart 重啓apache服務。若要配置php各種功能,可在php配置文件/etc/php.ini.default
複製一份命名爲 /etc/php.ini即可配置PHP功能。
3、測試php是否成功開啓,進入默認站點,此站點路徑爲:/Library/WebServer/Documents (httd.conf 文件中第236行),進入站點文件夾,終端輸入:open /Library/WebServer/Documents ,在此文件建一文件test.php,內容爲:
<?php
phpinfo();
?>
在瀏覽器地址欄輸入 http://localhost/test.php 將出現 PHP Version 5.5.27 說明配置成功!
以上幾個步驟很容易就配置好web站點。一般情況默認站點不方便管理,當你把默認站點的路徑/Library/WebServer/Documents 改成爲 /Users/username/Documents/mytest,此時httd.conf 文件236行237行代碼如下:
DocumentRoot /Users/username/Documents/mytest
<Directory /Users/username/Documents/mytest">
同時在 /Users/username/Documents/mytest 目錄下放一個php測試文件如上面的 test.php,重啓apache服務,當你輸入地址欄 http://localhost/test.php,問題來了,頁面出現爲 403 Forbidden,You don't have permission to access /test.php on this server.這是咋回事呢?網上經常見到 Deny
from all,應改爲 allow from all,由於之前默認站點可以訪問,說明web配置沒有問題,猜想是文件訪問權限受限。網上說只要把mytest權限改爲777即可,通過終端輸入 chmod 777 /Users/username/Documents/mytest,打開測試頁 test.php 還是出現 403 Forbidden,說明此路不通。 後來發現 httd.conf 中IfModule unixd_module 節點中有 User _www ,Group _www (httd.conf 文件中第181,182行),我把這兩行註釋掉,在前加#
#User _www
#Group _www
重啓apache服務後,403 Forbidden就消失了。說明這樣可行。
前面完成後,web站點就可以隨心所欲爲我們工作了。接下來如何配置虛擬主機。爲了方便,我複製一份mytest爲mytest2作爲虛擬主機目錄。
4、配置虛擬主機:打開 httd.conf 找到499行,#Include /private/etc/apache2/extra/httpd-vhosts.conf,把此行#去除取消註釋,保存httd.conf文件。接下來打開/private/etc/apache2/extra/httpd-vhosts.conf 此文件,註釋原有內容,本人是初次配置虛擬主機,網上找了下,複製代碼添加內容到httpd-vhosts.conf最後:
<VirtualHost *:80>
<strong> ServerName test</strong>
DocumentRoot /Users/username/Documents/mytest2
<Directory "/Users/username/Documents/mytest2"></span>
Options Indexes MultiViews
AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
保存此文件,同時打開 /private/etc/hosts 內容最後輸入
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 test
保存文件後,重啓apach服務。 當你在地址欄輸入 http://test/test.php 時,頁面出現了:403 Forbidden ,這是爲何呢?查找了資料,虛擬主機配置文件有誤,我們可以從 httd.conf裏複製。找到網站配置DocumentRoot,<Directory 節點(httd.conf 文件中第236行左右)複製配製相關站點內容,改成如下:
<VirtualHost *:80>
ServerName test
DocumentRoot /Users/username/Documents/mytest2
<Directory "/Users/username/Documents/mytest2"></span>
Options FollowSymLinks Multiviews
MultiviewsMatch Any
AllowOverride FileInfo AuthConfig Limit
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
保存文件後重啓apach服務。在地址欄輸入http://test/test.php 時,頁面403 Forbidden消失,出現 PHP Version 5.5.27 說明虛擬主機配置成功!
爲什麼網上代碼在我這裏就不行了,原來apache版本的不同,OS X Yosemite(10.10.5)下,Server version: Apache/2.4.16 (Unix) 與 apache 2.2 配置有差異的。可參考一下文章:Apache2.2和Apache2.4中httpd.conf配置文件的異同。