利用Apache的http功能共享文件
来源:互联网 发布:西安哪里可以学php 编辑:程序博客网 时间:2024/05/23 22:14
本文介绍如何开启Apache2的用户目录模式并设置public_html。
使用场景
假设某个用户在Ubuntu服务器上有个人的用户名,他打算将某个文件放到个人目录下,并提供给其他用户浏览和下载。此时可以直接利用Apache的http功能传送文件,同时不污染/var/www标准目录。
例如,服务器的IP地址172.1.163.96,服务器上有一个普通的的用户账户名为xlu。在其他用户的PC上,只需要在浏览器中输入172.16.163.96/~xlu,就可以浏览并下载xlu的个人文件。效果如下图,在浏览器上,其他人可以看到xlu打算共享的所有文件,并且自由下载。
通过这种方式,你可以很方便地传输文件,而不用发邮件,U盘拷贝等方式。而且,有没有一种很高大上的感觉。
其实,这种文件共享很简单,只需要几步操作就可以达成。
操作方式
1开启用户目录模式
打开Terminal,输入命令sudo a2enmod userdir开启用户目录模式。
按照提示,要激活新配置,需要运行service apache2 restart来重启Apache服务器。
至此,用户目录模式已开启并且可用。
2创建public_html目录
现在,在用户目录下创建public_html目录,并放置几个文件。如下图示例已创建好的目录/home/$USER/public_html和文件1.file, 2.file,3.file。
3自测试
在Ubuntu主机上打开浏览器,输入127.0.0.1/~xlu测试是否有效。
至此,Apache用户目录功能已经证明可用了。如果要向其他人传输文件,只需要将文件放到目录/home/$USER/public_html,并让其他人登录浏览器,输入$IP/~$USER/$file_name(注意,用户名前加波浪线~)即可下载。这种方式简单易用,不需要写任何代码,非常方便公司员工使用内部网络传输文件。
当然,由于基于http协议,如果其他人的系统为Ubuntu,可以直接用wget命令,如
wget 172.16.163.96/~xlu/1.file下载文件。如果为Windows系统,则需要安装wgetfor windows工具。
个人页面
前面讲述的是基于用户目录共享文件的操作方式。现在讲述如何在用户目录下开发个人页面。
Apache默认网页存储在/var/www目录下,需要所有开发者共同维护。但有时,开发者自己开发了某些网页,不适合放在这个目录,而是放在自己的个人目录/home/$USER下,此时参照前文,在public_html下创建一个index.html文件即可,如下图示例。
在浏览器中的浏览效果如下图。
由于这种方式创建的文件都在用户的个人目录下,因此,不会干扰/var/www中的任何文件。
取消用户目录功能
要取消用户目录功能,禁止用户浏览和下载。只需要使用a2enmode对应的命令a2dismode并重启apache服务器即可。
- 利用Apache的http功能共享文件
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- java利用org.apache.http.client下载文件
- 简单的Http共享文件SimpleHTTPServer
- 利用iptables的SNAT功能实现局域网共享上网
- Apache HTTP Server 的文件根目录(DocumentRoot)
- apache中.htaccess文件的功能写法
- apache中.htaccess文件的功能写法
- 利用apache的HttpClient组件得到http内容
- 利用Ansible部署运行Apache(http)的Docker容器
- 利用 apache 的 rewrite 功能生成静态页面URL地址
- 使用apache,让ubuntu的文件共享给windows
- 利用SVNListParentPath增加http浏览仓库根目录的功能
- 利用SVNListParentPath增加http浏览仓库根目录的功能
- 利用SVNListParentPath增加http浏览仓库根目录的功能
- 利用SVNListParentPath增加http浏览仓库根目录的功能
- 利用nginx的http转发功能做内网yum源
- Android认识和最基本开发流程
- 数据加密方法
- Ubuntu14.04 最近出现问题解决
- Android adb.exe程序启动不起来,如何处理
- SSH框架 POI例子小结
- 利用Apache的http功能共享文件
- Gradle for Android 第二章:自定义构建
- ArcGIS API For Javascript之动态图层
- linux lsof
- 关于 场 的几个概念
- 关于IO和NIO区别
- 近来比较有意思的新形式网络广告
- continue break return的用法和区别
- 导致java.lang.UnsatisfiedLinkError错误的一种解决办法