PFN是一个开源的文件管理系统,应该说某种状况下有一定用处.今天将以前的东西重新翻了出来,整理一下.
这里附带了apache和mysql和php的一些安装及配置过程,熟悉的可pass掉,直接拖到最后.
下载:http://pfn.sourceforge.net/ 大概不到1M的样子. 相应的语言包可以在官网上的demo上try_it 进去选择下载,中文版本的同学用GB2312(时隔一年多,一看最新版本还是2.3.3..有点杯具)
前置环境: apache php mysql fedora 12 或者redhat AS4
一. apache下载: http://www.apache.org/ 进入download下httpd目录下载最新的apache 这里以2.2.17为例
httpd-2.2.17.tar.gz 放在/home/src下
tar –zxvf http-2.2.17.tar.gz
cd http-2.2.17
#./configure --prefix=/usr/local/apache --enable-module=so
/**这里是安装路径和告诉apache开启加载共享模块的功能****/
#make
#make install
启动测试: #/usr/local/apache/bin/apachectl start
/**如果不能启动成功的话请检查/etc/selinux/config项,查看selinux的设置情况,将其关闭
关闭selinux方法两种:
1.将SELINUX="disable",reboot
2.setenforce 0 设置SELinux 成为permissive模式
(或者直接setenforce 1 设置SELinux 成为enforcing模式)
加入启动项: vi /etc/rc.d/rc.local
增加行: /usr/local/apache/bin/apachectl start
**/
二.安装php(包括其插件)
插件安装
1. libxml2
/**
官网http://xmlsoft.org/ 在download里ftp或者其它下载里可以找到,这里以libxml2-2.6.26为例
它是一个xml C语言版的解析器,支持的编码多,功能比较强.(虽然apache自带有xerces)
**/
#tar –zxvf libxml2-2.6.26
#cd libxml2-2.6.26
#/configure –-prefix=/usr/local/libxml2
#make
#make install
2. openssl
/**
官网: http://www.openssl.org/ 在source里可以下载到,这里以openssl-0.9.8.e为例
SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输
利用OpenSSL就可以给Apache配置SSL安全链接的,也就是使用https://方式进行访问,在apache和php的环境配置中这个东东是常用到的.
**/
#tar –zxvf openssl-0.9.8.e.tar.gz
#cd openssl-0.9.8.e.tar.gz
#./config --prefix=/usr/local/openssl
#make
#make install
3. zlib
/**
官网 http://www.zlib.net/ 下载tar.gz包 这里以zlib-1.2.3-23.tar.gz为例
zlib是提供数据压缩用的函式库,用于数据的压缩和解压,比较在网络数据的传输方面,很多应用程序都直接或者间接的用到它,apache和php也不例外
这个东东大部分linux系统中已经自带了,不要强制卸载,否则会很杯具.
**/
可以查看系统中是否有相关的安装包
#rpm –qa |grep –i zlib ---当然也可以重复着装.
#tar zlib-1.2.3.23.tar.gz
#cd zlib-1.2.3.23
#./configure --prefix=/usr/local/zlib
#make
#make install
4. libpng
/**
官网: http://www.libpng.org/pub/png/libpng.html 这里以libpng-1.2.12.tar.gz为例
它是一个png图像库,主要由GD调用,用来生成PNG格式的图像,它可以调用上面提到的zlib库来进行图像的压缩.算是可选库,但还是装上,以后可能用得到
**/
#tar libpng-1.2.12.tar.gz
#cd libpng-1.2.12
#cp scripts/makefile.std Makefile
/**这里的Makefile是直接从scripts里拷贝一个,而不是用configure生成 **/
#make
#make install
5. freetype
/**
官网: http://freetype.sourceforge.net/index2.html 这里以freetype-2.2.1.tar.gz为例
与图像及字体相关的库,主要由GD调用,提供TureType支持.
**/
#tar freetype-2.2.1.tar.gz
#cd freetype-2.2.1
#./configure --prefix=/usr/local/freetype
#make
#make install
6. jpeg
/**
官网: http://www.ijg.org/ 以jpegsrc.v8b.tar.gz为例 (v6b版本的必须要自己手动建立目录的)
图像库,由GD调用生成jpeg图像
**/
#tar jpegsrc.v8b.tar.gz
#cd jpegsrc.v8b
#./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
/**这里带这两个参数是打开共享库和静态库,以便可以正常使用**/
#make
#make install
7. GD
/**
官网: http://www.libgd.org/Main_Page 这里以gd-2.0.35.tar.gz为例
gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。
**/
#tar gd-2.0.35.tar.gz
#cd gd-2.0.35.tar.gz
#./configure --prefix=/usr/local/jpeg --with-jpeg=/usr/local/jpeg
--with-freetype=/usr/local/freetype --with-png --with-zlib=/usr/local/zlib
#make
#make install
8. mysql安装
到这里为止,相关php用到的插件已经装完了,此时最好先装数据库,否则在装php时还需要另外重新configure一次.
因为PFN文件系统用到的是MySQL数据库,这里就以Mysql为例.
官网: http://www.mysql.com/ 例:在download里下载mysql-community-server 5.1.52
一般选择Generic linux就好了.一共有四个包,一个server和client必装.还有个devel和shared包最好也装上.安装之前先检查系统里是否有自带的mysql.
查询#rpm –qa |grep –i mysql
卸载#rpm –e MySQL-XXXX 可用加上--nodeps进行强制卸载
安装:
#rpm –ivh MySQL-server-5.1.52-1.glibc23.i386.rpm
#rpm –ivh MySQL-client-5.1.52-1.glibc23.i386.rpm
#rpm –ivh MySQL-devel-5.1.52-1.glibc23.i386.rpm
#rpm –ivh MySQL-shared-5.1.52-1.glibc23.i386.rpm
附错误:Starting MySQL. ERROR! Manager of pid-file quit without updating file.则参照上面关selinux 如setenforce 0
启动方法(两种都可以)
/etc/rc.d/init.d/mysql start
service mysql start
启动后可以用netstat –ant |grep 3306来查看mysql服务的端口是否已经打开
重启为restart
mysql以rpm包安装后的目录结构如下:
/var/lib/mysql 数据库文件,每一个库对应一个文件夹,一张表对应三个文件
/usr/share/mysql 配置文件放的地方,但都是demo,可以复制一个如 到/etc/下面命名为my.cnf
/usr/bin 相关命令及工具所在路径,这个位置已经在$PATH里,可以在任意位置启动
/etc/rc.d/init.d mysql的启动脚本名为:mysql
关闭方法:
/etc/rc.d/init.d/mysql stop 或者shutdown
mysqladmin shutdown
连接方法:
在mydql命令路径下(这里实际已经加到了环境变量里,任何路径下可运行)
mysql –uroot –p 提示输入密码. 离开用exit 或者\q\\
外部连接,比如用navicate
用mysql的root用户登入后
grant all on *.* to 'test'@'%' //创建一个test账号,有所有权限,没密码,可以用任何机器外连
use mysql; //换到系统库里.
update user set Password=password('qatest') where User='test'; //修改密码
FLUSH PRIVILEGES; //刷新后即可生效
exit
/usr/bin/mysqladmin -u root password qatest //顺便把root的密码也给改了
安装完成了mysql以后,开始php的安装,主要是配置部分
#tar -zxvf php-5.1.6.tar.gz
#cd php-5.1.6
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-gd=/usr/local/gd --enable-gd --with-jpeg-dir=/usr/local/jpeg --with-png --with-ttf --with-zlib=/usr/local/zlib --with-freetype-dir=/usr/local/freetype --enable-magic-quotes --with-mysql=/usr/ --with-mbstring --enable-mbstring --with-openssl=/usr/local/openssl --with-pear=/usr/local/php/pear --with-xml=/usr/local/lib --with-tsrm-pthreads
#make
#make install
#cp php.ini-dist /usr/local/lib/php.ini
测试: 编辑httpd.conf文件
修改
DocumentRoot:”/home/html” 将其对应该的文件权限也作此修改
Listen 本机IP:80
ServerName:本机IP:80
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
修改完成后要重启apache
此至,...基础环境算是安装完了.
最后开始安装PFN了.
mv pfn2.3.3.zip /home/html/pfn.zip
#unzip pfn.zip
#/etc/init.d/iptables stop //在本地虚拟机上测试的
到此处就可以了,打开本地IE,打开
1. 安装
http://192.168.50.128/pfn/instalar/index.php 选择第一项语言为english
按照提示,将pfn/data/conf 下的default-example.inc.php 重命名为default.inc.php
cd /home/html/pfn/data/conf/
mv default-example.inc.php default.inc.php
刷新页面,进入第二步
按提示将data/servidor/和data/conf/文件夹的目录权限设置为777
cd /home/html/pfn/data
chmod 777 servidor conf
刷新页面,进入第三步
按照提示将mysql的配置文件/etc/my.cnf里的设置作如下修改:
upload_max_filesize:20M 实际上这里是你上传文件允许的大小.
memory_limit:将内存改的大一些就OK了
记得改完要重启apache
刷新页面,第四步
选择字符集,如果是用英文默认用utf-8 unicode就行了,中文的话用GB2312这个选项.,
server保持默认的localhost就行了(也可以填写IP)
datebasename写pfn 要先进入到mysql里进行 create database pfn;
user: root password: 123456 这是连接数据库的用户名和密码,请自行设置
表名前缀,自行设置,这里用默认的就行了
admin-user这里是设置pfn系统的超级管理员用户的
commonname随便写个
user:root password: 123456 这里好像不让空密码连接的
改密码: mysqladmin –u root –p password 123456 因为默认的密码是空的.所以-p参数后面空着就行了,打完这个命令直接按回车就OK了 记得改完清理history
e-mail随便写
main root
name随便写绝对路径要写apache根目录下的,文件夹必须是存在的
webpath默认就好了
创建成功.finish
最后还需要delete or rename the "instalar
cd /home/html/pfn/
mv instalar rename_instalar
这样访问http://192.168.50.128/pfn/index.php就成功了
界面为英文的,在在官网上的demo上try_it 进去选择下载zh-CN_gb2312.zip
中文编码的问题:
解压至/home/html/pfn/data/idiomas下 ,比如建个新文件夹叫zh
unzip zh-CN_gb2312.zip
在/home/html/pfn/data/conf/basicas.inc.php将language一项设置为zh即可(默认是en)
刷新页面,变成了中文界面
PS可能遇到的问题:
1.php等基础环境之前就已经装好了,重编译时出错,提示:
make: *** [ext/mysqli/mysqli.lo] Error 1
解决方法:
进到php安装目录下:
make clean
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-gd=/usr/local/gd --enable-gd --with-jpeg-dir=/usr/local/jpeg --with-png --with-ttf --with-zlib --with-freetype-dir=/usr/local/freetype --enable-magic-quotes --with-pgsql=/usr/local/pgsql --with-mbstring --enable-mbstring --with-openssl=/usr/local/ssl --with-pear=/usr/local/php/pear --with-xml=/usr/local/lib --with-tsrm-pthreads --with-mysql=/usr
make && make install
如果再不行,则
echo "/usr/lib/mysql" >> /etc/ld.so.conf
ldconfig
后再执行. 成功后重启apache
2.如果你用的是比较新版本的mysql,如5.5.11等,会遇到一个非常纠结的问题.在第4步创建数据库时怎么也不成功..(找这原因浪费两小时,简直要泪奔)
原因: mysql版本不兼容,要么去mysql网站下载一下兼容以前语法的包
要么这么个解决:
PFN\pfn-2.3.3\instalar\mysql 下的所有sql文件,将所有
TYPE=MyISAM; 替换成:
ENGINE=MyISAM;
OK,看看装好后的效果:
-----------------------------
刚刚炒冷饭又装了一次.
出错the query has generated an error phpfilenavigator参考上面的错误2
然后居然 Call to undefined function session_register()..
cd ..pfn/
find . -name '*.php' |xargs grep 'session_register';
sed -i "s/session_register('sPFN')/$_session['sPFN']/g" `grep session_register\(\'sPFN\'\) -rl .`
sed -i "s/session_unregister('sPFN')/#session_unregister('sPFN')/g" `grep session_unregister\(\'sPFN\'\) -rl .`
还个有文件报错,直接注释掉那行就行了
下载限制
就目前版本(PHPfileNavigator v2.3.3 )默认情况下,安装好后是不能下载的,需要进行如下设置才能提供下载:
编辑data\conf\default.inc.php
Find:
'descargar' => false, // Download
change to:
'descargar' => true, // Download
同时下载多个文件的限制
默认情况下,系统没有启用文件夹打包功能,但可以通过设置参数,将整个文件夹打包成zip,然后下载,可以通过如下更改达到:
'multiple_descargar' => true, // Download multiple files at once默认是false.
下载了一个中文包,
vi .....pfn/data/conf/basicas.inc.php
将"idioma" => 'zh-CN' ,然后保存就OK了.
但这个中文包是gb2312的,而pfn默认是utf-8的 那么用比如notepad++将中文包中的几个文件转为utf-8无BOM的形式,再放上去可以解决这个问题。
大文件上传失败: 在php.ini中:
upload_max_filesize = 5000M
post_max_size = 5000M
在nginx.conf中: client_max_body_size 5000m; 重启nginx