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的文件
将这几行注掉即可:
配置完成记得重启服务
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:
<IfModule mod_userdir.c>
UserDir public_html
</IfModule>
<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
|