简单配置 Apache

声明

有时候, 我们希望在自己本机(PC)搭建一个 WebServer, 然后自己可以在浏览器或者手机上面可以访问对应的地址直接查看效果, 再或者希望测试下载功能等, 其实 MacOS 自带的有 Apache 服务器.

下面简单分享一下, 在 MacOS 中如何简单的使用 Apache 服务器.

常用命令

常用的命令有开启/重启/停止等.

1.开启: sudo apachectl start
2.重启: sudo apachectl restart
3.关闭: sudo apachectl stop
4.查看版本号: httpd -v

1.查看 Apache 版本号

1
httpd -v

或者使用下面的命令:

1
sudo apachectl -v

查看结果如下:

1
2
Server version: Apache/2.4.28 (Unix)
Server built: Oct 9 2017 19:54:20

2.启动 Apache

1
sudo apachectl start

在浏览器打开: http://localhost

会显示:

1
It works

3.停止 Apache

1
sudo apachectl stop

如果没有开启 Apache 服务, 执行上面命令的话, 会报下面的错误:

1
2
/System/Library/LaunchDaemons/org.apache.httpd.plist:
Could not find specified service

4.重新启动 Apache

1
sudo apachectl restart

如果修改了 Apache 的配置文件, 需要重新启动 Apache 服务, 执行上面的命令即可.

配置 Sites

在自己的用户目录, 新建一个 Sites 目录, 例如我的用户目录是 /Users/mark, 可以在终端分别执行:

1
2
3
cd /Users/mark
mkdir Sites

执行成功后, 可以看到如下图所示的目录:

接下来修改 Apache 中的配置文件, 执行下面命令开始编辑 httpd.conf 文件.

1
sudo vim /etc/apache2/httpd.conf

打开 httpd.conf 文件,查找 userdir 关键字.

找到如下两行被注释掉的内容:

1
2
3
#Include /private/etc/apache2/extra/httpd-userdir.conf
#LoadModule userdir_module libexec/apache2/mod_userdir.so

将其前面的 #(注释) 去掉, 紧接着编辑这个文件, 增加如下内容:

1
2
3
<Directory /Users/mark/Sites>
Require all granted
</Directory>

将上面的这些代码放到如下代码下面即可:

1
2
3
4
5
<Directory "/Library/WebServer/CGI-Executables">
AllowOverride None
Options All
Require all granted
</Directory>

保存该文件并退出 vim.

执行下面的命令修改 httpd-userdir.conf 文件:

1
sudo vim /private/etc/apache2/extra/httpd-userdir.conf

增加如下内容:

1
2
3
4
5
UserDir Sites
<IfModule bonjour_module>
RegisterUserSite customized-users
</IfModule>

注意: 如果在 /private/etc/apache2/extra/ 目录下没有该文件, 新建一个即可.

保存文件并退出即可.

我们可以将自己需要运行的 html 等文件放到该目录, 如我将 index.html 放到该目录.

重新启动 Apache 服务, 在浏览器中输入 http://localhost/~mark/, 可以看到 index.html 里面的内容.

WebServer 目录

上面我们提到, 启动 Apache 服务之后, 在浏览器可以看到 It Works 的字样, 那么这个是哪个文件输出的呢?

这个文件是 sudo mvim index.html.en~orig, 在如下目录:

1
/Library/WebServer/Documents

可以使用 vim 编辑该文件, 然后再刷新浏览器就可以看到其变化.

我们也可以把自己的 html 文件放到这里, 如 mark.html, 内容如下:

1
2
3
4
5
<html>
<body>
<h1>Hi, mark, Apache server works!</h1>
</body>
</html>

在浏览器中输入 http://localhost/mark.html, 可以看到对应的输出.

如果嫌配置 Sites 目录麻烦, 可以使用这种方式, 直接拷贝对应的文件或者目录放到 /Library/WebServer/Documents 中, 只不过需要 root 权限罢了.

坚持原创技术分享!