美文网首页我爱编程
MacOS中启动Apache多站点配置

MacOS中启动Apache多站点配置

作者: 阿伟派 | 来源:发表于2017-09-07 16:46 被阅读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,中文显示正常了。

    相关文章

      网友评论

        本文标题:MacOS中启动Apache多站点配置

        本文链接:https://www.haomeiwen.com/subject/gfwijxtx.html