Apache简单搭建文件共享服务器

2017/3/17 posted in  服务器

前言

因为公司需求,增加打包测试发布的效率以及方便查看log信息。所以需要搭建一个简单的文件服务器。Mac内置Apache,所以我们可以很方便的搭建起来。

启动Apache

启动:sudo apachectl start

停止:sudo apachectl stop

重启:sudo apachectl restart

查看 Apache 版本 httpd -v

浏览器打开 http://127.0.0.1 可以看到 It works! 的页面

文件根目录

系统级的根目录

http://localhosts/ 对应的是 /Library/WebServer/Documents/

系统级根目录默认没有开启目录列表,开启方法:

编辑 /etc/apache2/httpd.conf

文件搜索找到 <Directory "/Library/WebServer/Documents">Options FollowSymLinks Multiviews 修改为Options Indexes FollowSymLinks Multiviews

用户级根目录

另一个 Web 根目录默认是 ~/Sites ,10.9 中你需要手动创建这个Sites目录。

检查/etc/apache2/users/这个目录下是否有 username.conf 文件

如果没有,则需要新建一个,username 需要是你的账户名字,建议使用终端创建这个文件:

cd /etc/apache2/users

sudo vi username.conf

贴入以下内容,注意修改 username 为你的账户名字

<Directory "/Users/username/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>

这个文件的权限应该是:

-rw-r--r-- 1 root wheel 298 Jun 28 16:47 username.conf

如果不是,请修改:

sudo chmod 644 username.conf

编辑 /etc/apache2/httpd.conf 文件,删除下列这些代码前的注释符号: #

Include /private/etc/apache2/extra/httpd-userdir.conf
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so

编辑 /etc/apache2/extra/httpd-userdir.conf文件,删除下列这些代码前的注释符号: #

Include /private/etc/apache2/users/*.conf

重启 Apache

sudo apachectl restart

这时,这个网址应该已经可以用了:

http://localhost/~username/

想去除/~username/

~username看着的确比较累赘,所以我们重定向把他给去掉

进入/Library/WebServer/Documents文件夹中,找到index.html.en文件,在里面添加一行<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/~rainbird">。最后变成这个样子。

<META HTTP-EQUIV="Refresh" CONTENT="0; URL=/~rainbird">
<html><body><h1>It works!</h1></body></html>