aaa最近需要下一些数据,但是校园网的蜜汁出口导致基本下不下来,于是用梯子的机器搭了个离线下载,下完再倒腾过来。因为这是一台32位的机器,系统还是CentOS6.5,网上的教程并不是特别适合,这里把整个过程和踩到的坑记录一下。
安装aria2
网上找的安装教程基本都是CentOS7的,6.5的教程很多源都失效了,找到了一篇博客1介绍的还能用,不过他的是64位的教程,发现源可以网页访问,上去找了找32位的路径,安装过程就是下面这样:
wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/i386/rpmforge/RPMS/aria2-1.16.4-1.el6.rf.i686.rpm
wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/i386/rpmforge/RPMS/nettle-2.2-1.el6.rf.x86_64.rpm
wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/i386/rpmforge/RPMS/nettle-devel-2.2-1.el6.rf.x86_64.rpm
rpm -ivh nettle-2.2-1.el6.rf.i686.rpm
rpm -ivh nettle-devel-2.2-1.el6.rf.i686.rpm
rpm -ivh aria2-1.16.4-1.el6.rf.i686.rpm
安装过程中可能会缺少依赖:
error: Failed dependencies:
libgnutls.so.26 is needed by aria2-1.16.4-1.el6.rf.i686
libgnutls.so.26(GNUTLS_1_4) is needed by aria2-1.16.4-1.el6.rf.i686
这时候装上去再重新rpm就行了
yum instll gnutls
配置aria2
配置主要参考了这篇博客2(里面还有一些BT下载的tracker之类的东西),首先创建相关的文件和目录
cd /etc/ && mkdir aria2 && cd aria2 && touch aria2.conf && touch aria2.session
# download就是下载目录
cd ~ && mkdir download && chmod 777 /download
然后编辑配置文件:
vi /etc/aria2/aria2.conf
把博客的2的配置文件放进去,这里下载目录要根据实际创建的进行修改
dir=/root/download
然后用配置文件启动aria2
aria2c --conf-path=/etc/aria2/aria2.conf -D
就可以使用aria2c命令下载了。
###安装AriaNg
AriaNg是一个现代化的web前端,相当于给aria2提供了一个图形化的操作界面,可以通过网址或者IP访问。这个其实不用安装,都是静态资源,从github上下下来:
aria2c https://github.com/mayswind/AriaNg/releases/download/1.1.6/AriaNg-1.1.6-AllInOne.zip
创建一个文件夹把下下来的文件移动过去,解压:
mkdir ariang
# 就是上面那个下载目录
cd /root/download
mv AriaNg-1.1.6-AllInOne.zip ~/ariang
cd ~/ariang
unzip AriaNg-1.1.6-AllInOne.zip
服务器端还是习惯用nginx,首先安装nginx
yum install nginx
创建一个针对AriaNg的配置文件:
touch ariang.conf
内容大概这样:
server {
listen 80;
# 域名或者服务器IP
server_name your server name;
location / {
# 这个路径就是刚才解压的路径
root /root/ariang/;
index index.html;
}
}
修改nginx的配置文件:
vi /etc/nginx/nginx.conf
在http的大括号里加上一句
include /root/ariang.conf;
重启nginx
nginx -s reload
注意放通80和6800端口,现在可以通过上面配置的server name来访问AriaNg了
安装h5ai
h5ai是一个目录列表程序,比较适合用来做网盘,主要就是用来在线查看文件内容,提供打包下载等功能,也可以在线播放视频。这个项目虽然能在GitHub上找到,但release并不在上面,而是放在了一个h5ai网站上,很好的宣传方式,虽然官方的文档写得真的是十分简洁。
在部署这个项目得时候,采用的是nginx通过fastcgi与php-fpm通信来调用php脚本的方式。
首先还是下载下来
aria2c https://release.larsjung.de/h5ai/h5ai-0.29.2.zip
一系列操作
mkdir ~/ariang/h5ai
mv ~/download/h5ai-0.29.2.zip ~/ariang/h5ai
unzip ~/ariang/h5ai
mkdir ~/ariang/h5ai/test
# 创建软链接,把download链接到test目录下
ln -s ~/download ~/ariang/h5ai/test
现在的目录结构大约是这样
DOC_ROOT
└─ ariang
├─ h5ai
| ├─ _h5ai
| └─ test
| └─ download
└─ index.html
安装php
h5ai和AriaNg不一样,这是一个php的项目,所以首先需要安装php,h5ai需求php5.5+,当然如果已经安装了就可以跳过这一步,这篇博客3给出了一些相关的方法。
查询已经安装的php
rpm -qa|grep php
删除已经安装的php
rpm -e name #name就是上面查询出来的结果,可能会有很多组件
更新源(本来的源里版本比较老):
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
查看版本列表
yum list php*
然后安装(这里安装的是php7,5.3以后的版本就不需要单独折腾php-fpm了)
yum install php70w.i386 php70w-cli.i386 php70w-fpm.i386 php70w-common.i386 php70w-gd.i386
nginx的相关配置
依然是创建一个关于h5ai的配置文件:
cd ~
touch h5ai.conf
内容修改成这样(部分参考了4):
server {
listen 80;
# 这里是自己的域名或者服务器IP
server_name your server name;
index index.php /_h5ai/public/index.php;
# 配置根目录,这里要注意希望展示的目录一定要位于根目录下面
root /root/ariang/h5ai;
# 禁止访问private目录
location /_h5ai/private {
return 403;
}
# 网上抄的
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
# 下面是两种与php-fpm通信的方式,第一种是TCP的方式,php-fpm监听本地的9000端口
fastcgi_pass 127.0.0.1:9000;
# 这是套接字的方式,这种方式更优,但是我不知道怎么创建这个套接字
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
# 引入fastcgi的配置
include fastcgi.conf;
}
继续修改nginx的配置文件
vi /etc/nginx/nginx.conf
同样在http的大括号里面加进一句
include /root/h5ai.conf;
然后重启nginx
nginx -s reload
访问http://server_name/_h5ai/public/index.php
,可能不能正常访问后台,而是显示file not found
,这时候就用得上下一节有关php-fpm的配置了。
php-fpm配置
访问h5ai后台失败的情况下,查看nginx的错误日志:
tail /var/log/nginx/err.log
可以看到下面的信息:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
首先检查h5ai.conf
这个配置文件是否有问题,比如:
- root和index配置错误
- fastcgi配置错误(SCRIPT_FILENAME这一项配置,参见5)
按理说上面的那个配置文件不应该有问题,基本上就是php-fpm的配置出了问题。
先杀掉php-fpm的进程
killall php-fpm
修改配置文件
vi /etc/php-fpm.conf
找到错误日志这一行,取消注释,改成这样
error_log = /var/log/php-fpm/error.log
继续修改
vi /etc/php-fpm.d/www.conf
下面这些行需要修改
# 执行程序的用户和用户组
user = www
group = www
# 监听情况
listen = 127.0.0.1:9000
# 监听的用户、用户组和模式,用户需要与nginx.conf配置文件里的user一致
listen.owner = root
listen.group = root
listen.mode = 0660
# 下面这句就是要注掉
;php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
尝试运行php-fpm
/usr/sbin/php-fpm
应该会报错,因为www这个用户并不存在,所以创建用户和组
groupadd www
useradd -g www www
再次运行就可以了
这个时候如果还是file not found
可以参考这篇博客6说的查看是不是在php.ini
里面禁用了scandir
等函数,php.ini
的路径为/etc/php.ini
;另外一个非常可能的原因就是用户的文件权限,新建的www用户可能没有web目录的权限,可以加上权限
chmod 755 /root/ariang/
# 后来发现根目录也需要权限
chmod 755 /root/
这样应该就可以访问后台了,后台的页面就是下面这样
初始是没有密码的,直接点login就行了,如果点了以后没有跳转,可能是php没有开session,修改php的配置文件php.ini
vi /etc/php.ini
修改这一行
session.save_path = "/var/lib/php/session"
路径可以自己设置,如果路径中的目录不存在的话要创建
cd /var/lib
mkdir php
cd php
mkdir session
同时要修改权限
chmod 777 session
如果有必要,重启一下php-fpm就可以进入后台了
h5ai配置
在后台里可以查看各种插件的状态,可以根据需求安装,这里主要给上三个:
首先是ffmpeg,这里参考了这篇文章7,首先安装一些依赖项
yum install -y automake autoconf libtool gcc gcc-c++
安装第三方源
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
安装ffmpeg
yum install ffmpeg ffmpeg-devel
然后是安装zip,主要是为了打包下载
yum install zip
还有pdf预览
yum -y install ImageMagick
另外,h5ai的配置文件是/root/ariang/h5ai/_h5ai/private/conf/options.json
,具体的配置可以参考4或者别的教程。这里主要说一下关于密码的问题,配置文件里passhash
这一项是sha512哈希出来的密码,默认的这串字符是空密码的,修改密码直接找一个网站把想设置的密码hash出来以后替换这个字符串就行,之后就可以通过新设置的密码进入后台了。
nginx加密访问
如果不想让随便什么人访问服务,可以通过nginx设置用户名和密码,这里参考了这篇文章8,首先创建用户密码文件:
printf "user:$(openssl passwd -crypt your_passwd)\n" >> /etc/nginx/.htpasswd
这里的user
和your_passwd
代表用户名和密码,然后修改h5ai.conf
vi ~/h5ai.conf
把下面这一段加入server
的大括号里面
location ~ {
auth_basic "please login";
auth_basic_user_file /etc/nginx/.htpasswd;
autoindex on;
}
或者把这里边的三句放进想要加密的location
里面,重启nginx,再访问就需要验证用户名和密码了。同样也可以对AriaNg设置密码。
Reference
-
CentOS 6.5安装aria2 https://www.cnblogs.com/realpht/p/11213145.html ↩
-
aria2的安装与配置 https://www.cnblogs.com/awakenedy/p/10985061.html ↩ ↩2
-
CentOS6.5安装指定的PHP版本(php5.5)https://blog.csdn.net/leejianjun/article/details/52200909 ↩
-
Ubuntu 18.04手动安装h5ai https://www.timelate.com/archives/install-h5ai-on-ubuntu.html ↩ ↩2
-
php运行 Primary script unknown错误 https://blog.csdn.net/t_1007/article/details/79097266 ↩
-
宝塔Nginx环境搭建H5ai程序及注意事项 https://www.quchao.net/BT-H5ai.html ↩
-
CentOS下yum方式安装ffmpeg步骤 https://www.jianshu.com/p/ce035d19f5aa ↩
-
使用 nginx 为 h5ai 启用目录加密访问 https://www.timelate.com/archives/nginx-h5ai-passwd.html ↩