zoukankan      html  css  js  c++  java
  • Mac 10.9 自带apache2虚拟目录设置

    花了好几天时间做这个事,终于成功,把正确的做法记录一下。

    如果是第一次使用apache,可以先执行sudo apachectl start,然后在浏览器里打开http://localhost看看效果,
    如果显示It Works!说明apache正常,接下来就可以来做虚拟目录设置了。
    首先,apache2在/private/etc/apache2目录,当然网上很多资料只提到/etc/apache2,其实指的是同一个目录,原因就不详说了。
    然后,打开httpd.conf文件:sudo nano /etc/apache2/httpd.conf
    虽然vi是编辑神器,但是我不怎么会用,nano也是第一次用,但是下方有提示,容易上手,而且设置里的操作也不多,适合不会vi的人使用。
    按ctl+W进行查找,查找vhosts.conf字符,找到Include /private/etc/apache2/extra/httpd-vhosts.conf这行,如果前面有#,把#删除,然后ctl+X,Y,ctl+T,httpd.conf一连串操作进行保存。我只会这种笨方法来保存,如果你会更简单的最好。
    很多资料上说还有一些其他的设置,我也试过,但当我成功实现了虚拟目录设置后,试着把这些设置还原,也并没有产生任何影响,至少在我的机器上,这些设置是没有起什么关键作用的,要不要做这些操作你来做主。
    然后执行sudo apachectl -t,这个命令是用来检查apache的一些配置文件的语法是否正确的,如果访问服务时在浏览器里显示连接不上服务器,就有必要用这个命令来检查一下是不是哪个文件有问题了。
    httpd-vhosts.conf这个文件是用来设置虚拟目录的,所以下面要在这个文件里设置自己指定的工作目录。
    执行sudo nano /etc/apache2/extra/httpd-vhosts.conf,把文件中已有的两个配置注释掉

    #<VirtualHost *:80>

    #    ServerAdmin webmaster@dummy-host.example.com

    #    DocumentRoot "/usr/docs/dummy-host.example.com"

    #    ServerName dummy-host.example.com

    #    ServerAlias www.dummy-host.example.com

    #    ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"

    #    CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" com$

    #</VirtualHost>

    #<VirtualHost *:80>

    #    ServerAdmin webmaster@dummy-host2.example.com

    #    DocumentRoot "/usr/docs/dummy-host2.example.com"

    #    ServerName dummy-host2.example.com

    #    ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"

    #    CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" co$

    #</VirtualHost>

    然后添加自己的配置

    <VirtualHost *:80>

        DocumentRoot "/Users/用户名/projects"

        ServerName www.sites.com

        ErrorLog "/private/var/log/apache2/sites-error_log"

        CustomLog "/private/var/log/apache2/sites-access_log" common

        <Directory "/Users/用户名/projects">

            Options FollowSymLinks Indexes

            AllowOverride None

            Order allow,deny

            Allow from all

        </Directory>

    </VirtualHost>

    这些是什么意思我也不多说了,总的来说就是指定虚拟目录、访问地址、虚拟目录访问权限。

    然后保存并检查语法是否误。

    最后,sudo nano /etc/hosts,在最后一行添加 127.0.0.1 www.sites.com

    并保存。

    最最后,sudo apachectl restart,重启apache服务,在浏览器里访问www.sites.com,你会看到自己工作目录下的文件和文件夹列表,恭喜,你成功了。

  • 相关阅读:
    CTS、CLS、CLR分别作何解释?
    C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?
    net中读写数据库需要用到那些类?他们的作用?
    什么叫应用程序域?
    一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。
    override与重载的区别
    请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
    求以下表达式的值,写出您想到的一种或几种实现方法: 12+34+……+m
    什么是强类型系统?
    在下面的例子里
  • 原文地址:https://www.cnblogs.com/favana/p/5165121.html
Copyright © 2011-2022 走看看