本文介紹的多站點(diǎn)配置方法是MacOS中默認(rèn)的配置方法,其實(shí)還有其他方法來配置多站點(diǎn)珊蟀,方法要更簡單一些寺董,只是不推薦而已覆糟。如果真懂了Apache的配置文件httpd.conf,能找到很多種細(xì)節(jié)不同的配置方法遮咖。
一滩字、修改 httpd.conf
sudo vim /etc/apache2/httpd.conf
找到以下五行,并取消注釋
#LoadModule php7_module libexec/apache2/libphp7.so
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
#LoadModule userdir_module libexec/apache2/mod_userdir.so
#Include /private/etc/apache2/extra/httpd-userdir.conf
#Include /private/etc/apache2/extra/httpd-vhosts.conf
取消注釋后如下
LoadModule php7_module libexec/apache2/libphp7.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf
這里需要說明一下
取消注釋第一行代碼御吞,是為了開啟php語言解析功能麦箍,如果不開啟的話,php頁面會(huì)直接顯示php代碼陶珠。
取消注釋第二行代碼挟裂,是為了開啟站點(diǎn)代碼偽靜態(tài)重寫功能,只有開啟這個(gè)功能以后揍诽,才能夠讓偽靜態(tài)鏈接功能生效诀蓉。
取消注釋第三行代碼栗竖,是為了開啟基于同一個(gè)IP地址多站點(diǎn)功能,如果不開啟這一項(xiàng)渠啤,是無法在一個(gè)IP地址上配置多個(gè)站點(diǎn)的狐肢。
取消注釋第四行代碼,是為了讓用戶根目錄配置文件生效沥曹,第三步就會(huì)創(chuàng)建用戶根目錄配置文件份名。
找到如下代碼,并添加index.php
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
修改之后如下
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
二架专、修改 httpd-userdir.conf
sudo vim /etc/apache2/extra/httpd-userdir.conf
找到如下代碼同窘,并取消注釋
#Include /private/etc/apache2/users/*.conf
取消注釋后如下
Include /private/etc/apache2/users/*.conf
三、創(chuàng)建用戶站點(diǎn)根目錄配置文件
sudo cp /etc/apache2/users/Guest.conf /etc/apache2/users/jacky.conf
編輯jacky.conf部脚,修改后的內(nèi)容如下
<Directory "/Users/jacky/Sites/">
Options Indexes MultiViews
Require all granted
</Directory>
四想邦、創(chuàng)建兩個(gè)站點(diǎn)
編輯多站點(diǎn)配置文件
sudo vim /etc/apache2/extra/httpd-vhosts.conf
修改后配置文件內(nèi)容如下
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@test.app
DocumentRoot "/Users/jacky/Sites/test"
ServerName test.app
ServerAlias *.test.app
ErrorLog "/private/var/log/apache2/test.app-error_log"
CustomLog "/private/var/log/apache2/test.app-access_log" common
</VirtualHost>
重啟Apache
sudo apachectl restart
到目前為止,訪問站點(diǎn)localhost是沒問題的委刘!
五丧没、創(chuàng)建本地站點(diǎn)test.app
編輯主機(jī)配置文件
sudo vim /etc/hosts
修改后的內(nèi)容如下
127.0.0.1 localhost test.app
255.255.255.255 broadcasthost
::1 localhost
接著創(chuàng)建test.app的站點(diǎn)目錄
mkdir -p ~/Sites/test
接著創(chuàng)建一個(gè)演示文件index.html
cd ~/Sites/test
vim index.html
index.html的內(nèi)容如下
已經(jīng)正常工作了。
這個(gè)時(shí)候就可以通過Safari訪問test.app了锡移。
只是此時(shí)會(huì)出現(xiàn)中文亂碼呕童,所以還需要一步。
六淆珊、給Apache設(shè)置默認(rèn)字符編碼
編輯httpd.conf
sudo vim /etc/apache2/httpd.conf
找到如下代碼
#ServerName www.example.com:80
在其下面添加如下代碼
#Set the default charset
AddDefaultCharset UTF-8
重啟Apache
sudo apachectl restart
然后再次打開test.app夺饲,中文顯示正常了。