Mac 自带 Apache 多端口配置
引言:
之前有写过本地部署项目,通过访问本机地址来测试项目的简单方法。这几天在看跨域相关的东西,有博文里提到的小例子,需要制造跨域条件,文件都放在本地,所以就通过请求不同的端口来实现。于是就有了这个笔记。
正文
配置Mac环境
- Mac OS X 10.13.4
默认情况Apache操作命令
$ sudo apachectl start // 启动。 此默认情况下对应电脑路径为“/LibraryWebServer/Document/”
$ sudo apachectl stop // 关闭。
$ sudo apachectl restart // 重新启动
一、配置服务器:
在finder中找到用户所在位置(finder中显示是一个小房子,名称为账户名)创建一个“Sites” 文件夹。【通过分析后面的操作和向后台小伙伴的请教结果,推测这个目录是可以自定义的,因为后面可以配置根目录的路径(就是虚拟主机后设置端口时虚拟根节点所在的真实节点),只要能配置正确,应该就可以用。本人未实践此推论,有小伙伴感兴趣可以试一下,把结果分享给我呦~。】
用户所在文件夹的站点位置上图中的站点就是我提到的 Sites 文件夹。我这个是已经存在的,没有做修改。只在里面添加了文件夹。
- 1、终端里切换工作目录:
$ cd /etc/apache2
- 2、备份文件,只执行一次:
$ sudo cp httpd.conf httpd.conf.bak
- 3、如果操作出现错误!可以使用命令,恢复备份的 httpd.conf 文件:
$ sudo cp httpd.conf.bal httpd.conf
- 4、用 vim 编辑 httpd.conf 文件,这个文件是Apache 的配置文件。执行:
$ sudo vim httpd.conf
使用 sudo 获取权限,需要输入密码,正确输入即可。
然后会出现:
httpd.conf文件的vim中展示
回车进入以下界面,反正就一直回车,直到出现以下界面,如果担心自己操作错,就每次回车看一眼:
回车定位到的位置
-
5、然后接下来就是 vim 的编辑操作啦。
按住 shift 键,同时输入 “:” 号进入vim命令模式,输入 “ /”拼上“搜索内容”找到要修改的内容对应位置: 搜索 /DocumentRoot, 找到图中对应路径修改成前面自己创建的 Sites 文件夹所在路径。
搜索找到DocumentRoot对应的位置 -
6、再找到 Options FollowSymLinks, 修改为Options Indexs FollowSysmLinks, 在两个单词之间加一个 Indexes单词。
-
7、接下来配置PHP,搜索/php, 定位到以下位置,将圈中的语句前面的#去掉:
查找到的取消注释的配置项 -
8、保存并退出“:wq!”。【这里加了 ! ,是我在保存时提醒我只读,不能修改,所以我用了强制方式保存并退出。可以先不加感叹号试一下,不行再加。】
-
9、切换工作目录:
$ cd /etc
- 10、拷贝 php.ini文件:
$ sudo cp php.ini.default php.ini
重新启动Apache服务器:
$ sudo apachectl -k restart
浏览器中输入 http://127.0.0.1/ , 就会将sites 文件夹中的目录列出来了。统一工作组的电脑可以通过电脑的IP地址来访问本电脑上的文件。
二、配置多端口
-
1、修改httpd.conf配置文件 ,在终端中输入:$ sudo vim /etc/apache2/httpd.conf
-
2、通过上述搜索方法,找到这句,放开虚拟机的配置:
-
3、确保上面的语句 Include 前面没有 #,:wq! 保存并退出。
-
4、在终端输入:
$sudo vim /etc/apache2/extra/httpd-vhosts.conf
回车得到如下:
虚拟机配置文件
-
5、找配置端口的位置,配置如下:
虚拟机配置端口的所在位置
【先写 “Listen 端口号”, 将服务器名称改成 localhost, DocumentRoot 为要配置的端口所对应的目录路径(当前的是配置在sites 下的一个文件夹),servername 改成loacalhost:port】
以上截图,我配置了两个端口,分别为 8001 和8080 ,在真实根节点目录Sites下又建了两个文件夹分别对应这两个端口的虚拟根节点。
综上,就可以正常访问了。访问结果如下:
自己配置的8001端口目录列表
自己配置的8080端口目录列表
至此就结束啦!
简单的总结
- 自己重新配置的目录不需要每次去更新部署文件进行密码的输入身份验证,省去一丢丢繁琐的步骤;
- 我搞这个只是为了自己配出个跨域的环境,其他的用处还没发掘;
- 可以配置多个目录,多个端口、多个路径访问项目,和这个配置文件培养出了一定的眼缘,还开发出这个小东西,以后总会用得着啦~