我爱编程

MacOS中启动Apache多站点配置

2017-09-07  本文已影响0人  阿伟派

本文介绍的多站点配置方法是MacOS中默认的配置方法,其实还有其他方法来配置多站点,方法要更简单一些,只是不推荐而已。如果真懂了Apache的配置文件httpd.conf,能找到很多种细节不同的配置方法。

一、修改 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页面会直接显示php代码。
取消注释第二行代码,是为了开启站点代码伪静态重写功能,只有开启这个功能以后,才能够让伪静态链接功能生效。
取消注释第三行代码,是为了开启基于同一个IP地址多站点功能,如果不开启这一项,是无法在一个IP地址上配置多个站点的。
取消注释第四行代码,是为了让用户根目录配置文件生效,第三步就会创建用户根目录配置文件。

找到如下代码,并添加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
三、创建用户站点根目录配置文件
sudo cp /etc/apache2/users/Guest.conf /etc/apache2/users/jacky.conf 

编辑jacky.conf,修改后的内容如下

<Directory "/Users/jacky/Sites/">
    Options Indexes MultiViews
    Require all granted
</Directory>
四、创建两个站点

编辑多站点配置文件

sudo vim /etc/apache2/extra/httpd-vhosts.conf

修改后配置文件内容如下

<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

到目前为止,访问站点localhost是没问题的!

五、创建本地站点test.app

编辑主机配置文件

sudo vim /etc/hosts

修改后的内容如下

127.0.0.1   localhost   test.app
255.255.255.255 broadcasthost
::1             localhost

接着创建test.app的站点目录

mkdir -p ~/Sites/test

接着创建一个演示文件index.html

cd ~/Sites/test
vim index.html

index.html的内容如下

已经正常工作了。

这个时候就可以通过Safari访问test.app了。

只是此时会出现中文乱码,所以还需要一步。

六、给Apache设置默认字符编码

编辑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,中文显示正常了。

上一篇下一篇

猜你喜欢

热点阅读