局域网办公网络硬盘的搭建
龚群辉
摘 要:我们在互联网上可以看到有很多的网络硬盘,如百度网盘,115网盘,华为网盘,快盘,360网盘等等,但这些网盘都是架设在互联网上的,一是需要连接互联网,二是使用时会占用上网带宽,那么我们是否可以在局域网环境搭建网络硬盘便于办公使用呢?
关键词:办公网络硬盘;局域网;搭建
我们在互联网上可以看到有很多的网络硬盘,如百度网盘,115网盘,华为网盘,快盘,360网盘等等,但这些网盘都是架设在互联网上的,一是需要连接互联网,二是使用时会占用上网带宽,那么我们是否可以在局域网环境搭建网络硬盘便于办公使用呢?下面我们来一步步搭建局域网办公用网络网盘。
平台:centos 5.8 x64
软件:php5.1.6,lighttpd 1.4.28,lighttpd-fastcgi,quixplorer 2.4.1
假设服务器ip地址为192.168.1.20
⑴安装centos 5.8x64。
⑵安装php,lighttpd,lighttpd-fastcgi
yum install php
yum install lighttpd
yum install lighttpd-fastcgi
查看一下php-cgi的路径及版本:
whereis php-cgi
php-cgi:/usr/bin/php-cgi
php-cgi-v
PHP 5.1.6(cgi-fcgi) (built:Jun 27 2012 12:16:09)
⑶配置lighttpd
vi/etc/lighttpd/lighttpd.conf 修改以下内容
var.server_root="/www"
var.socket_dir="/var/tmp"
server.document-root=server_root+"/htdocs"
index-file.names+=(
"index.php"
)
vi /etc/lighttpd/modules.conf 修改以下内容
server.modules=(
"mod_access",
"mod_redirect",
"mod_rewrite",
)
include "conf.d/fastcgi.conf"
vi /etc/lighttpd/conf.d/fastcgi.conf加入以下内容
fastcgi.server=(
".php"=>((
"socket"=> socket_dir+"/fcgi.socket",
"bin-path"=>"/usr/bin/php-cgi"
)))
当然目录/www先要创建好,并设好权限。
⑷配置php
vi/etc/php.ini:
cgi.fix_pathinfo=1
session.save_path="/var/lib/php/session"
session.cookie_path="/var/tmp"
chmod777/var/lib/php/session
编辑hello.php放到/www/htdocs下,检验php网页是否正常显示
如果网页正常显示“Hello World”,说明环境已经搭建好。
⑸安装quixplorer 2.4.1
从quixplorer主页获取源码,解压上传到/www/htdocs/webhd,并修改属主及权限,以免遇到权限问题。
cd/www/htdocs
chmod 777 webhd
cd webhd
chown-R lighttpd:lighttpd *
不使用认证时的网盘路径设置
修改.config/conf.php
$GLOBALS["home_dir"]="/www/htdocs/webhd";
$GLOBALS["home_url"]="http://192.168.1.20/webhd";
⑹启动lighttpd
/etc/init.d/lighttpd start
使用浏览器打开http://192.168.1.20/webhd,就可以看到网盘界面了,使用admin帐号登录管理,默认密码为pwd_admin。
新增test用户设置如下:
home_path:../down
home_url:http://192.168.1.20/down
至此,网盘就已经可以使用了,但由于quixplorer对中文处理有缺陷,在中文文件及处理上会有问题。
下面我们来对quixplorer进行中文化处理。
⑴解决中文文件名显示问题
修改_lang/en.php
$GLOBALS["charset"]="utf-8";
保存为utf-8格式
网页字体加大:
修改_style/style.css中font-size为12:
body,td,input,textarea,select {
font-size:12;
}
⑵中文文件名处理
由于quixplorer中用basename函数来取得路径字符串中的文件名部分,也就最后一个”/”或“\”之后的部分,而basename在某些linux系统下,处理含有中文的路径时会使中文的部分丢失,无法正确获得带有中文路径中的文件名,下面给出解决方法:
使用下面这个函数来代替basename使用,采用了正则表达式:
function sbasename($filename) {
return preg_replace('/^.+[\\\\\\/]/', '',$filename);
}
将此函数加入到.include/init.php中,共有7个文件使用了basename函数,在7个文件中将basename改成sbasename即可,这7个文件均在.include文件夹下:
fun_archive.php,fun_copy_move.php,fun_down.php,fun_edit.php,fun_extra.php,fun_list.php,fun_mkitem.php
⑶gb2312编码文件在utf-8下的编辑:
.include/fun_edit.php
44行
$code=stripslashes($GLOBALS['__POST']["code"]);
$code=iconv('UTF-8', 'GB2312', $code);//增加
$fp=@fopen($file_name,"w");
104行:
@fclose($fp);
$buffer=iconv('GB2312', 'UTF-8', $buffer); //增加
echo htmlspecialchars($buffer);
经过上面处理后,网盘对中文的处理就比较完善了。
局域网网络硬盘的架设使用,便于员工的办公使用,同时也更加安全,也便于网络管理员进行控制。