CentOS 7 上 Apache 服务器 (httpd 2.4) 实现简易的文件浏览下载服务

安利 HFS 工具

首先安利一个简单便携的小工具 HFS ~ Http File Server,这是一个简易的 Http 文件服务端工具,双击打开,添加要共享的文件,选择 IP 和 Port 之后就可以实现局域网的文件共享了,随用随开。在 Windows 和 Linux 之间传输单个文件,Samba 服务或者 Windows 的共享目录配置失败时,HFS 是一个很好的选择。

wp_59_35

使用浏览器访问 HFS 中的 URL,就可以看见共享的文件,选择特定文件后右键单击“将目标另存为”即可。

wp_05_58

CentOS 7 上 Http 文件服务器的实现

因为工作需要,得临时提供一个浏览页面供测试人员选择版本文件下载。首先想到的是使用 Nginx 服务,但在 yum install nginx 时发现 yum 源出现了问题,折腾了好久没搞好。使用源码安装也是过,nginx 编译依赖第三方库 pcre,依然需要 yum 安装。

只好换一个思路,恰好服务器上安装了 Apache 服务器,从理论上来讲让它监听多个端口(已经在 80 端口实现了另一个服务),实现一个文件浏览页面应该没有问题。

显示目录列表

通过搜索,发现有一个 Options Indexes 的参数可以启用目录浏览,可以设置虚拟目录,指定虚拟目录指向的真实路径。但 service httpd restart Apache 服务器重启之后总是遇到各种问题,比如 You don't have permission to access / on this server.
,比如总是出现 Apache 服务的欢迎页面……

因为Apache 服务器是 2.4 版本的,比较高,而搜索出来的都是低版本的设置,感觉还有些不兼容,其中发现了一个网友的博客,Linux Centos7 Apache 访问 You don’t have permission to access / on this server.,赶紧给目录附加了执行权限,关闭了 SeLinux。对于执行权限这一点,确实是需要的,虽然最终这个办法我还是没有折腾出来。

mod_userdir

最后发现了 Apache 有一个叫做 userdir 的模块,允许使用类似 http://example.com/~user/ 的语法来访问用户网站目录。下图是在 CentOS 7 服务器上新建了一个 uper 用户,该用户 public_html 目录下的文件浏览。

wp_49_20.png

简要步骤

首先,增加用户 uper,该用户主目录为 /home/uper,在主目录下新建 public_html 目录,将 /home/uper/public_html 各层目录给其他用户组添加执行权限,以便 Apache 有访问权限,参考命令 chown o+x /home/uper

其次,关闭 SeLinux 设置,不确定是否有影响。

然后,在 /etc/httpd/httpd.conf 中添加如下配置:

最后,重启 Apache 服务器。

如无特殊说明,文章均为本站原创,转载请注明出处
源自: 王明军的博客
本文链接地址: CentOS 7 上 Apache 服务器 (httpd 2.4) 实现简易的文件浏览下载服务
广告

Categories: 默认目录

Tagged as: , , ,

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.