Rat's

PyOne一键安装脚本 for CentOS 7/Debian 8+/Ubuntu 16+
说明:PyOne最近凭着离线下载(完成并自动上传至Onedrive)和绑定多网盘的功能被越来越多的人使用,如果你还...
扫描右侧二维码阅读全文
30
2018/11

PyOne一键安装脚本 for CentOS 7/Debian 8+/Ubuntu 16+

说明:PyOne最近凭着离线下载(完成并自动上传至Onedrive)和绑定多网盘的功能被越来越多的人使用,如果你还不知道PyOne是何物的可以查看该教程→点击查看。作者更新也勤奋,所以得支持一下,之前博主发过基于宝塔的手动安装教程和Docker安装教程,查看:手动安装Docker安装。不过由于宝塔的Mongodb很容易出错,有些小白也不会解决,而Docker也不支持OpenVZ,所以博主写了个一键脚本,这里分享下。

脚本说明

#脚本会一键安装PyOne所需要的Mongodb、Redis、Aria2等环境,域名使用Caddy反代,自动配置SSL证书。

#本脚本使用的Aria2为某大佬编译的多线程版本,其特点可以将下载速度最大化优化,博主已配置完毕,如服务器性能不足,可将线程自行调整。
方法:修改配置文件/root/.aria2/aria2.conf,线程参数split=64,请自行调整。

#Aria2已添加了BT-Trackers服务器,并定时自动更新服务器地址。

#脚本使用systemctl替换了程序所使用的supervisord进程守护,所以程序的重启等命令会和官方文档上的不一样,详细的使用命令可以看文章后面。

#选择域名访问的,需要提前让解析生效,不然脚本会自动断开,因为后面需要签发SSL证书,ip必须为服务器ip。

更新

【2020.05.21】
修复安装问题,重新支持CentOS 7系统,安装有问题可以留言。
【2020.02.14】
由于程序模块改动,手动改了下,不过只限于Debian 9、10,Ubuntu 18.04、18.10、19.04系统安装使用
【2019.9.28】
新增Debian 10,升级MongoDB版本到4.0,有问题可以留言。
【2019.6.27】
修复部分CentOS 7安装出错的问题,并新增Ubuntu系统,已在Vultr的Ubuntu 16.04、18.04、18.10、19.04上测试通过
【2019.2.23】
鉴于有人需要3.0版本,现已增加安装3.0版本选项,多个选择,并使用的3.0最后一个版本。
【2019.2.16】
修改脚本部分安装步骤,使其支持PyOne4.0
【2019.1.31】
修复部分系统安装启动pyone失败的问题
【2018.11.30】
修复PyOne刷新不出文件夹/文件的问题。

安装

系统要求:CentOS 7Debian 8+Ubuntu 16+,建议Debian 9,且为刚安装好的系统,尽量不要用精简版系统。

使用命令:

wget -N --no-check-certificate https://www.moerats.com/usr/shell/PyOne/PyOne.sh
bash PyOne.sh

根据需求选择是否使用域名访问,然后输入域名和Aria2密匙即可。
请输入图片描述

安装完成后,如果打不开网站的,可以使用命令一起查看下各程序状态。

#使用域名访问的
systemctl status aria2 mongod redis-server pyone caddy
#使用IP访问的
systemctl status aria2 mongod redis-server pyone

如果有显示Active:inactive的,可以留言说下具体程序和系统。反之如果都为running,可以检查下防火墙端口,比如阿里云,谷歌云等,还需要在服务器管理面板上开放34567端口才行。

相关命令

#以下程序均已配置开机自启,所以就不说开机自启命令了。

#Redis使用命令
启动:systemctl start redis-server
重启:systemctl restart redis-server
停止:systemctl stop redis-server
状态:systemctl status redis-server

#Mongodb使用命令
启动:systemctl start mongod
重启:systemctl restart mongod
停止:systemctl stop mongod
状态:systemctl status mongod

#Aria2使用命令
启动:systemctl start aria2
重启:systemctl restart aria2
停止:systemctl stop aria2
状态:systemctl status aria2

#Caddy使用命令(使用域名的才会安装Caddy)
启动:systemctl start caddy
重启:systemctl restart caddy
停止:systemctl stop caddy
状态:systemctl status caddy

#PyOne使用命令
启动:systemctl start pyone
重启:systemctl restart pyone
停止:systemctl stop pyone
状态:systemctl status pyone

相关目录

PyOne程序目录:/root/PyOne
Caddy配置文件目录:/root/.caddy
Aria2配置文件目录:/root/.aria2

相关说明

#关于操作说明
由于更换了原程序进程守护,所以网站右上角的重启网站按钮已失效,请在SSH客户端使用systemctl restart pyone命令重启程序。

#关于离线下载
Aria2配置文件的下载路径为/root/Download,但该程序自带的离线下载不调用配置文件,所以使用本程序离线下载的目录为/root/PyOne/upload。

由于本程序离线下载不调用配置文件,所以Aria2多线程可能会发挥不出来,BT服务器也无效,不过会玩的,可以通过修改根目录的aria2.py文件某些参数达到目的,或者直接研究该教程:https://www.moerats.com/archives/697/,使用Aria2面板来离线下载更好,毕竟后者用的脚本比自带离线下载更稳定。

#刷新缓存问题
如果你在后台执行缓存刷新操作,可能短时间不会生效,建议直接在SSH客户端使用python /root/PyOne/function.py UpdateFile命令刷新

最后更多的使用方法(包括程序更新)可以查看该教程→点击查看,除了PyOne启动命令不一样以外,其它都一样,包括上传等命令。

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2020 年 05 月 21 日 10 : 36 PM

发表评论

416 条评论

  1. 也许明天会更好

    为什么我选择的是域名绑定,然后域名不能访问,要加34567端口才可以,用IP+34567也可以。

    1. Rat's
      @也许明天会更好

      估计caddy出了问题,看下日志journalctl -u caddy

      1. 也许明天会更好
        @Rat's

        [root@iZuu1hsvff249yZ ~]# /etc/init.d/caddy status
        -bash: /etc/init.d/caddy: No such file or directory
        [root@iZuu1hsvff249yZ ~]# wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && bash caddy_install.sh uninstall
        --2020-06-12 11:03:48-- https://www.moerats.com/usr/shell/Caddy/caddy_install.sh
        Resolving www.moerats.com (www.moerats.com)... 172.83.156.172
        Connecting to www.moerats.com (www.moerats.com)|172.83.156.172|:443... connected.
        HTTP request sent, awaiting response... 200 OK
        Length: 5543 (5.4K) [application/octet-stream]
        The sizes do not match (local 5609) -- retrieving.

        --2020-06-12 11:03:49-- https://www.moerats.com/usr/shell/Caddy/caddy_install.sh
        Reusing existing connection to www.moerats.com:443.
        HTTP request sent, awaiting response... 200 OK
        Length: 5543 (5.4K) [application/octet-stream]
        Saving to: ‘caddy_install.sh’

        100%[========================================================================================================================>] 5,543 --.-K/s in 0s

        2020-06-12 11:03:49 (764 MB/s) - ‘caddy_install.sh’ saved [5543/5543]

        [错误] Caddy 没有安装,请检查 !
        [root@iZuu1hsvff249yZ ~]#

        这应该是Caddy没有安装成功吧

        1. Rat's
          @也许明天会更好

          是不是跳脚本了?文中的脚本caddy是有安装的

  2. 天涯
    你好,大神! Pyone 安装完成,但是 ip:34567 端口访问,链接不到 ,错误如下:

    PyOne安装完成!
    请通过访问:http://ip:34567 继续后面的安装
    PyOne后台密码:111111
    Aria2密匙:111111
    常用命令:

    暂停PyOne: systemctl stop pyone启动PyOne: systemctl start pyone重启PyOne: systemctl restart pyone手动运行PyOne: systemctl stop pyone && gunicorn -keventlet -b 0:34567 run:app暂停Aria2: systemctl stop aria2启动Aria2: systemctl start aria2重启Aria2: systemctl restart aria2
    ———————————————————————————————————————

    PyOne交流群:864996565
    PyOne交流群TG:https://t.me/joinchat/JQOOug6MY11gy_MiXTmqIA
    [root@VM_32_2_centos PyOne]# pgrep 'pyone'
    [root@VM_32_2_centos PyOne]# pgrep 'aria2'
    5847
    [root@VM_32_2_centos PyOne]# start aria2
    -bash: start: command not found
    [root@VM_32_2_centos PyOne]# start pyone
    -bash: start: command not found

    1. Rat's
      @天涯

      重新运行脚本吧,之前程序相关软件包更新到新版后出了问题,改了下,可以安装了

  3. withrose

    给作者提个建议,作者经常改动脚本,新改的又出问题,往能保留历史安装版本,至少能保证大家能正常安装使用pyone

    1. Rat's
      @withrose

      现在可以安装了,固定了程序几个软件包版本

    2. Rat's
      @withrose

      这个与脚本无关,有些软件包更新后,会出现兼容性问题,有的改动太大,直接用不了,导致脚本安装就失败了,最好的办法就是把能用的写进docker

  4. didi

    mongod.service - MongoDB Database Server
    Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: e
    Active: failed (Result: exit-code) since Sat 2020-06-06 04:50:32 CST; 3s ago

    Docs: https://docs.mongodb.org/manual

    Main PID: 30119 (code=exited, status=14)

  5. withrose

    pyone 启动失败 centos7

    Welcome to Alibaba Cloud Elastic Compute Service !

    [root@izj6c0cofdn29jkvuio7kwz ~]# systemctl status pyone
    ● pyone.service - pyone
    Loaded: loaded (/etc/systemd/system/pyone.service; enabled; vendor preset: disabled)
    Active: failed (Result: start-limit) since Fri 2020-06-05 10:39:28 CST; 9min ago
    Process: 29168 ExecStart=/bin/gunicorn -w4 -b 0.0.0.0:34567 run:app (code=exited, status=1/FAILURE)
    Main PID: 29168 (code=exited, status=1/FAILURE)

    Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: Unit pyone.service entered failed ....Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: pyone.service failed.
    Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: pyone.service holdoff time over, s....Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: start request repeated too quickly...eJun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: Failed to start pyone.
    Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: Unit pyone.service entered failed ....Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: pyone.service failed.
    Hint: Some lines were ellipsized, use -l to show in full.
    [root@izj6c0cofdn29jkvuio7kwz ~]#

    1. Rat's
      @withrose

      有库更新暂时安装不了了,我到时候再想想办法吧

      1. withrose
        @Rat's

        能否搞个更新前的下载包给我们装,前段时间的版本可以用,现在你们更新了不能用,怎么能让我们能安装前面版本的,谢谢

  6. withrose

    Welcome to Alibaba Cloud Elastic Compute Service !

    [root@izj6c0cofdn29jkvuio7kwz ~]# systemctl status pyone
    ● pyone.service - pyone
    Loaded: loaded (/etc/systemd/system/pyone.service; enabled; vendor preset: disabled)
    Active: failed (Result: start-limit) since Fri 2020-06-05 10:39:28 CST; 9min ago
    Process: 29168 ExecStart=/bin/gunicorn -w4 -b 0.0.0.0:34567 run:app (code=exited, status=1/FAILURE)
    Main PID: 29168 (code=exited, status=1/FAILURE)

    Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: Unit pyone.service entered failed ....Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: pyone.service failed.
    Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: pyone.service holdoff time over, s....Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: start request repeated too quickly...eJun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: Failed to start pyone.
    Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: Unit pyone.service entered failed ....Jun 05 10:39:28 izj6c0cofdn29jkvuio7kwz systemd[1]: pyone.service failed.
    Hint: Some lines were ellipsized, use -l to show in full.
    [root@izj6c0cofdn29jkvuio7kwz ~]#

  7. fansgou

    博主 好像你的脚本强制按照py2.7 然后gunicorn代码要求 py3 ,我单独安装py3并设置全局后 还是不行,他启动的时候还是自动关联py2.7 无解啊

    1. Rat's
      @fansgou

      我看了下,好像是Setuptools不支持py2了,我找时间想想解决办法吧

  8. fansgou

    cd /root/PyOne && /bin/gunicorn -w4 -b 0.0.0.0:34567 run:app,运行日志是
    Traceback (most recent call last):
    File "/usr/lib/python2.7/site-packages/gunicorn/arbiter.py", line 507, in spawn_worker

    worker.init_process()

    File "/usr/lib/python2.7/site-packages/gunicorn/workers/base.py", line 118, in init_process

    self.wsgi = self.app.wsgi()

    File "/usr/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi

    self.callable = self.load()

    File "/usr/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load

    return self.load_wsgiapp()

    File "/usr/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp

    return util.import_app(self.app_uri)

    File "/usr/lib/python2.7/site-packages/gunicorn/util.py", line 355, in import_app

    __import__(module)

    File "/root/PyOne/run.py", line 7, in <module>

    from app import create_app

    File "/root/PyOne/app/__init__.py", line 5, in <module>

    from .extend import *

    File "/root/PyOne/app/extend.py", line 2, in <module>

    from flask_caching import Cache

    File "/usr/lib64/python2.7/site-packages/flask_caching/__init__.py", line 412

    nonlocal source_check ^

    SyntaxError: invalid syntax

  9. rain
    该评论仅登录用户及评论双方可见
    1. Rat's
      @rain

      没列表显示么?看是不是api啥的问题

      1. rain
        @Rat's
        该评论仅登录用户及评论双方可见
  10. fansgou

    centos 7.2 安装好了后就是启动不了
    pyone.service - pyone
    Loaded: loaded (/etc/systemd/system/pyone.service; enabled; vendor preset: disabled)
    Active: failed (Result: start-limit) since Wed 2020-06-03 22:46:02 CST; 2min 50s ago
    Process: 1471 ExecStart=/bin/gunicorn -w4 -b 0.0.0.0:34567 run:app (code=exited, status=1/FAILURE)
    Main PID: 1471 (code=exited, status=1/FAILURE)

    Jun 03 22:46:01 MyCloudServer gunicorn[1471]: [2020-06-03 22:46:01 +0000] [1483] [INFO] Worker exiting (pid: 1483)
    Jun 03 22:46:01 MyCloudServer systemd[1]: Unit pyone.service entered failed state.
    Jun 03 22:46:01 MyCloudServer systemd[1]: pyone.service failed.
    Jun 03 22:46:02 MyCloudServer systemd[1]: pyone.service holdoff time over, scheduling restart.
    Jun 03 22:46:02 MyCloudServer systemd[1]: Stopped pyone.
    Jun 03 22:46:02 MyCloudServer systemd[1]: start request repeated too quickly for pyone.service
    Jun 03 22:46:02 MyCloudServer systemd[1]: Failed to start pyone.
    Jun 03 22:46:02 MyCloudServer systemd[1]: Unit pyone.service entered failed state.
    Jun 03 22:46:02 MyCloudServer systemd[1]: pyone.service failed.

    1. Rat's
      @fansgou

      cd /root/PyOne && /bin/gunicorn -w4 -b 0.0.0.0:34567 run:app,看下运行日志