Mac下Apache2本地域名配置相关

9 篇文章 0 订阅

最近在学前端,牵扯到了跨域名通信的问题,然而教程上只有windows的配置域名过程,在网上找了找大部分都是windows或者Linus的。由是折腾良久。

如果只想看过程可以直接跳到下面“正式开始部分”

首先,这是本地域名配置,比如针对Apache服务器下有两个文件,通过浏览器访问是  127.0.0.1/..../a,127.0.0.1/----/b,这时可以针对这两个文件分别单独设置一个域名便于访问

例如,可以设置www.a.com指向A文件夹,www.b.com指向B文件夹,这样就方便访问,也方便当多人用同一台电脑时区分自己的独立空间。

然后普及一下相关的MAC的终端操作的一些基本用法

sudo 获取超级管理权限一段时间,会让你输入你的MAC账户密码,一段时间后需要重新输入

sudo su 进入超级管理权限,持续...

vim 一个可在终端操作的非常强大的编辑器,常常可见sudo vim fileName,就是以超级管理权限打开fileName文件进行编辑,很多没有应用能处理的文件都可以这样编辑

vim内也有许多命令,进入vim模式后,可以直接输入下面指令,人后enter即有效果(vim指令只识别英文,所以最好把输入法调到英文状态)相关的有

/word  在文件内查找word查找后 按n找下一个,按N找上一个

i    开启插入模式(开启后,终端下方会显示INSERT) 插入模式可以修改文件内容  按ESC退出插入模式

dd    删除光标所在位置的那一行,插入模式无效

D    删除到光标所在位置的那一行的行末,插入模式无效,和dd的区别是会保留该行

:w    将内容存入缓存区,只有先存入缓存区,才能够保存退出

q    将缓存区内容保存退出

q!    缓存区内容不保存退出,如果没有内容推入到缓存区,只能以这种方式退出,或者改错了地方,可以以这种方式退出

:wq    等于:w + q

:x    等于:wq

cd 指定当前路径,例如cd /Users/username/Desktop  输入后则指定当前位置是在桌面,可以操作左面的文件

cd .. 返回上一级目录例如当前目录是在../a/b/c,输入cd ..后则当前目录变为 ../a/b

ls 查看当前目录下的文件有哪些

pwd 查看当前的路径

基本上用到的终端命令就这些


然后,下面是和主题直接相关的内容

Mac是自带Apache的,怎么启用的教程网络上还是有很多的。一般配置完后可以用127.0.0.1或者localhost进行访问。

一般Apache的安装路径是在/etc/apache2/下,内部主要牵涉到配置域名的相关文件一个是主文件下的httpd.conf,另一个是大部分人采用的子文件extra下

的httpd-vhosts.conf.

一般启用Apache的时候都会推荐在/Users/username/下建立一个Sites文件夹(username是你的MAC用户名),具体原因可以参见httpd.conf文件

可以使用如下命令(一步步来)

sudo su
vim /etc/apache2/httpd.conf
/DocumentRoot
即可以找到下面的部分

# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/Users/username/Sites"
<Directory "/Users/username/Sites">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
上面的DocumentRoot后面跟着的就是你的服务器的根目录,下面的Directory标签应该是针对该文件进行权限设置。

所以要配置域名最好将指定域名的文件夹置于/Users/username/Sites文件夹内,以防权限不足,服务器禁止访问。

正式开始部分

然后在httpd.conf中找到

#Include /private/etc/apache2/extra/httpd-vhosts.conf

这有点类似于导入头文件,只不过前面的#代表注释,所以我们可以将注释打开,导入httpd-vhost.conf文件,具体操作如下

将光标调到#位置,然后按x(小写,英文输入法),然后输入  :wq,然后enter退出vim

然后打开httpd-vhost.conf:

vim /etc/apache2/extra/httpd-vhosts.conf
打开后会发现前面都是注释的,只有下面两个标签没有注释, 那只是人家的demo,所以按i键进入插入模式,然后在每一行前面加#号

<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" common
</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" common
</VirtualHost>

然后在最底下加入下面的代码:(具体域名和路径请自己修改)

NameVirtualHost *:80   #这句必须要加,可能是指定访问端口号的吧,我也没弄明白


#下面三个标签就是配置的域名  第一个是因为配完后发现首页访问不了了,就自己再配了个首页
<VirtualHost *:80>
        ServerAdmin admin@.com	#服务器账号,一般填邮箱账号,我是乱填的
        ServerName localhost.com	#服务器名字,可以自己命名
        ServerAlias localhost.com	#指定域名,自己慎重
        DocumentRoot "/Users/username/Sites/"	#服务器的文件位置,也就是该域名指向的位置(必须要有访问权限
#也就是必须要在httpd.conf文件中声明的文件内,否则会出现You don't have permission to access / on this server.)
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin admin@.com
        ServerName www.b.com
        ServerAlias www.b.com
        DocumentRoot "/Users/username/Sites/b"
</VirtualHost>
<VirtualHost *:80>
        ServerAdmin admin@.com
        ServerName www.a.com
        ServerAlias www.a.com
        DocumentRoot "/Users/username/Sites/a"
</VirtualHost>

这就相当于配置好了,然后按ESC退出插入模式,输入 :wq退出当前文件

接下来就是该hosts文件了,打开/etc/hosts:

vim /etc/hosts
然后按i键进入插入模式,光标移动到最下方,在里面加入你刚刚添加的域名解析就好了,

具体格式如下

127.0.0.1       www.b.com

127.0.0.1       www.a.com
前面是Apache的指定主域名,后面是你想要添加的域名。然后按ESC退出插入模式,再输入 :wq 退出vim。

之后再重启Apache服务器就OK了!

退出Apache服务器,超级管理模式下   apachectl restart

非超级管理模式   sudo apachectl restart

总结:大部分人的教程不要说授人以渔,连授人以鱼都做不到,究其主因,最终还是自己本身理解有限,而我也不能例外。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值