如何在OS X Yosemite 配置php web站點及虛擬主機?

本人剛接觸 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配置文件的異同


 

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