http文件服务器(CentOS)

apache文件服务器(CentOS)

环境:CentOS 8

需求:

搭建一个资源共享的文件下载站,支持多用户。

长这样:

在这里插入图片描述

传输文件的协议有很多,例如:http、ftp、smb、iSCSI等等,我们选择最简单的http协议。

一、安装

先安装httpd

yum install httpd

关闭防火墙

systemctl disable firewalld
systemctl stop firewalld

启动httpd

systemctl start httpd

访问该机ip即可看到测试页面

在这里插入图片描述

此时,httpd安装完成。

二、配置

配置文件是 /etc/httpd/conf/httpd.conf

vi /etc/httpd/conf/httpd.conf

目前可能需要修改参数

参数说明
DocumentRoot需要提供下载的资源就存放在这个目录
Linsten监听的端口

默认就可以。此时将文件放在DocumentRoot目录下,就可以实现效果。

在这里插入图片描述

问题1:无法访问到文件目录

此时可能会访问到刚才的测试页面或是403页面,原因是最后一行配置

IncludeOptional conf.d/*.conf

查看 conf.d 目录,该目录下有一个welcome.conf的文件

将这几行注掉即可:

#<LocationMatch "^/+$">
#    Options -Indexes
#    ErrorDocument 403 /.noindex.html
#</LocationMatch>

#<Directory /usr/share/httpd/noindex>
#    AllowOverride None
#    Require all granted
#</Directory>

配置完成记得重启服务

systemctl restart httpd

问题2:中文乱码

在配置文件结尾加入这样一行,全局配置编码,然后重启服务

IndexOptions Charset=UTF-8

问题3:文件名显示不全

全局配置name宽度自适应,然后重启服务

IndexOptions Charset=UTF-8 NameWidth=*

三、多用户

配置

目前已经实现了一个共享的文件下载服务器,Linux是一个多用户的操作系统,现在为每一位用户都建一个私人的下载站。

进行简单的配置即可。

vi /etc/httpd/conf.d/userdir.conf

userdir.conf:

#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.
#
# The path to the end user account 'public_html' directory must be
# accessible to the webserver userid.  This usually means that ~userid
# must have permissions of 711, ~userid/public_html must have permissions
# of 755, and documents contained therein must be world-readable.
# Otherwise, the client will only receive a "403 Forbidden" message.
#
<IfModule mod_userdir.c>
    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    #UserDir disabled

    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disabled" line above, and uncomment
    # the following line instead:
    # 
    UserDir public_html
</IfModule>

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory "/home/*/public_html">
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

根据提示,注释掉 UserDir disable 即可。

创建用户

useradd -m httpdUser
# 添加用户并为用户创建登录目录
passwd httpUser
# 为用户设置密码
cd /home/httpUser

mkdir public_html

现在,就可以通过 http://ip/~httpUser/ 来访问了

更改权限

若是出现这个问题,则需要修改权限。

在这里插入图片描述

chmod 711 /home/httpUser

chmod 755 /home/httpUser/public_html

若仍然无效,那么有可能是受到SELinux的限制

chcon -R -t httpd_sys_content_t /home/*/public_html

成功

在这里插入图片描述

如果仍然无法正常访问,请查看错误日志:

cat /var/log/httpd/error_log
gohttp是一个http文件服务器,因为是用go语言写的,所以加了一个go的抬头。之所以用go是因为发布起来是一个二进制文件,不同的平台都可以用,而且没有依赖问题,且稳定性也很好。    这个软件从很久以前就开始写了,第一次提交实在2015年的2月11号,作为组内存放公共文件的一个小软件。一开始的功能只有像 python -mSimpleHTTPServer 那种简单的功能。但是当我看到gotty这个软件的时候 ,意思到一个简单的软件竟然可以做到如此出色。之后这个http文件服务器就不断的被优化着,保持着简单易用的同时,开始赋予了它最强大的功能。    这个软件有很多的技术,隐藏在了其简易朴实的外表之下。请容我简单的介绍下pjax简称页面ajax技术        在gohttp进行目录却换的时候,你会看到地址栏在变,但是页面却是局部刷新的。各种文件的预览功能        所有常见的代码都可以直接在gohttp下预览,如果你用的是chrome浏览器的话,包括pdf,mp4,mp3都可以直接预览。实时的目录zip打包下载        强大的体现在它是实时的,即使你马上在目录下新增了一个文件,点击目录zip下载的时候,这个文件也会出现在里面。二维码的支持        手机下载往往没有电脑下载这么容易,点点鼠标就可以了。但是有了二维码,手机也只用扫一扫就可以下载了。苹果应用的在线安装        iphone应用安装包的扩展名是ipa,但是你还必须有个额外的plist文件才行。以及生成一个itms-services开头的地址,gohttp直接把这些工作都做了,ipa的解析,plist以及下载页面的自动生成。同普通文件一样,只需要点击右侧的生成二维码,然后用iphone手机扫描下,iphone的应用就安装到了你的手机上。PS:坑爹的苹果,就不能像安卓一样简单一点吗README文件的自动显示像github网站上的项目,readme文件都会作为项目的介绍自动显示出来。gohttp也借鉴了一下。如果目录下有readme文件的话,就会自动预览出来。文件上传简单的文件上传也有着出色的表现,可以看到上传的进度,以及支持拖拽的方式上传文件。为了更方便的结合自动发布的功能,文件上传也有其相应的API,上传的时候也可是指定软件的版本号,存储结构参考了python,pypi官方的模式。还有很多很多其他的特性    http basic auth认证,不同文件不同的icon,gzip支持,目录的整合显示.... 还有很多功能等待着你去发现和有能力的你去补充。    截图  标签:gohttp
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值