官方下载:https://github.com/82Flex/WEIPDCRM

环境部署

环境支持

  1. 操作系统支持
    类 Unix 操作系统(推荐 ) 或 Windows
  2. FastCGI 支持
    PHP >= 5.3

需要预编译的 GZIP, BZIP2, GD, MYSQL 扩展 ,支持在 Safe Mode 下运行(如果不支持某项扩展,只需注释掉相关行即可。)

  1. 网页服务端支持
    Apache >= 2.4.7, Nginx >= 1.0.11 (Rewrite: include dcrm.conf;), Lighttpd >= 1.0 (Rewrite: include dcrm_lighttpd.conf;)
  2. 数据库支持
    MySQL 或 MariaDB

安装步骤

  • 自动安装:配置好上文中的服务器环境,将 main 目录中的所有文件上传到网站目录
  • 确保程序根目录下有读取、写入权限
  • 如果您使用的 Web 服务器不是 Apache,将需要您有一定的高级操作知识和能力。您需要视情况启用相应的 Rewrite 规则。
  • 访问 http://{YOUR_REPO_URL} 自动跳转或直接访问 http://{YOUR_REPO_URL}/install 进行数据库配置

如果您有特殊的要求并有一定的高级操作知识和能力,您可以修改 ./system/config/connect.inc.default.php 手动配置数据库:

  1. 将 DCRM_CON_SERVER 设为 MYSQL 数据库服务器的完整地址
  2. 将 DCRM_CON_SERVER_PORT 设为 MYSQL 数据库服务器端口
  3. 将 DCRM_CON_DATABASE 设为已经建立完成的数据库名
  4. 将 DCRM_CON_USERNAME, DCRM_CON_PASSWORD 设为可访问该数据库并拥有足够权限的用户名和密码
  5. 如果您需要保持数据库连接,请将 DCRM_CON_PCONNECT 设为 True
  6. 我们不推荐手动初始化程序所需要的数据库,请访问 ./install/setup-install.php,进行数据库的安装

升级步骤

  1. 将所有文件上传或替换到网站目录
  2. 访问源的任意页面即可自动更新

使用说明

首次使用

请进入右上角的设置以及左侧的源信息设置进行初期配置。

软件包功能

  • 上传软件包
    您可以通过网页以及 FTP 将软件包上传到 upload 目录下,以便导入。
  • 导入软件包
    您可以将 upload 目录下的软件包导入到数据库。
  • 升级导入
    如果您是对软件包进行升级导入操作,导入时会出现操作提示。

· 继承并替换是指新软件包继续使用原软件包的信息(除版本号外),并将原软件包隐藏;
· 直接替换是指将原软件包隐藏;
· 添加条目是指忽略原软件包的存在;

  • 管理软件包
    您可以:

· 控制软件包的显示、隐藏;
· 搜索、寻找并选择编辑或删除软件包;
· 查看软件包概况;

  • 显示或隐藏软件包
    新导入的软件包默认是隐藏的(包括升级导入),隐藏状态表示为 绿色,显示状态表示为 蓝色;

    • 若要更改状态,单击它们前方的按钮,在左侧点击“显示软件包”或“隐藏软件包”。
  • 查看软件包
    您可以查看该软件包中所包含的控制信息,以及管理系统的附加信息。
  • 编辑软件包
    · 常规编辑提供了常见信息的修改与保存;

· 高级编辑提供了更多字段的修改,这需要您对 Debian 软件包有一定的高级操作知识和能力。

  • 查找软件包
    您可以按照多个字段查找软件包,暂时不能使用通配符和正则表达式。
  • 为软件包绑定UDID
    您为软件包绑定设备UDID,详细请参阅《UDID 绑定》一节。

分类管理

您可以添加,删除,查看软件包分类,并在编辑软件包的时候为其选择一个已配置的分类。

图标管理

您可以上传源图标,分类图标,并在分类管理中生成图标包。

运行状态

您可以查看数据库状态、系统信息、总下载量与软件包数量等信息。

关于程序

您可以查看 DCRM 的开发人员名单、翻译名单、感谢名单等。

刷新列表

刷新列表前您必须将欲显示的软件包置于 显示 状态;
单击此按钮将生成 Packages, Packages.gz, Packages.bz2 列表文件并计算 MD5sum 与 Size。

UDID 绑定^*^

简介

DCRM 为您提供了软件包 UDID 绑定功能,使用该功能您可以很简单地保护您的个人软件包^+^ 。
该功能通过检测请求设备的 UDID 来阻挡或允许下载软件包。

  • UDID 绑定为1.6.15.3.26新增功能。
  • 本功能推荐用于个人开发者的软件包内测。

使用说明

  • 为软件包启用该功能
    您需要在您想启用的软件包中的常规编辑界面中启用 保护 选项,系统将会自动为该软件包添加 cydia::commercial 标签。您也可以自行在软件包中添加该标签以启用此功能。

注意:修改该选项后您需要写入软件包才可正式生效。

  • 等级设置
    在 DCRM 的判断逻辑中,等级的优先度高于 UDID绑定。

举例来说,您想让一个设备拥有特殊的下载权限,您可以在UDID管理页中设置该设备的等级。此时,只要该设备下载的软件包等级低于该设备的等级,则该设备可以无视UDID绑定设置下载该软件包。

  • 管理等级
    管理UDID 页面中的 管理等级 为预留接口 ,目前您可以为等级添加备注。

其它说明

我们为受保护软件包在软件包详情页添加了状态显示,但由于Cydia的限制,可能会出现在已绑定的设备上显示的状态不正确。但下载软件包时 UDID 检测是正常工作的,在找到更好的替代方案前请见谅。

为 Release 文件签名

简介

DCRM 可以使用 GPG 工具对 Release 文件进行签名,签名后可以使 Cydia 检验源的文件在传输过程中是否被篡改,可以提高一定的安全性。
既然您选择为您的 Release 文件进行签名,这代表您对软件源的安全性有一定要求,也代表您有一定的高级操作知识和能力,如果您认可了这两点,请继续阅读。

环境要求

  1. Windows 或 类Unix操作系统
  2. 处于 non-Safe Mode (非安全模式)下的 PHP 环境,且具有运行 GPG 命令的权限,GPG 工具可以通过各种方式获取。

操作

请先阅读 how_to_host_cydia_repo.pdf 中《用于签名 Release 的密匙》章节,为您的软件源生成一个密钥,并制作相关软件源验证包,导出私钥。
在服务器上导入该私钥,并修改 ./system/config/gnupg.inc.php 中的相关参数:

  1. 将 DCRM_GNUPG_ENABLED 设为 1;
  2. 将 DCRM_GNUPG_PATH 设为 gpg 命令的路径;
  3. 将 DCRM_GNUPG_NAME 设为您私钥的名称;
  4. 将 DCRM_GNUPG_PASS 设为您私钥的口令;

进行源信息设置,并刷新列表,在用户端安装软件源验证包即可完成。
每次刷新列表,签名数据会自动更新。

疑难解答

  • 为什么保存编辑以后还需要写入软件包?
    这是由于 Cydia™ 要求 Packages 列表与软件包中的部分字段必须相同;

通常,您修改标题,作者,提供者,保证人,主页,预览页和描述的时候无需写入软件包。

  • 为什么需要手动刷新列表?
    每次编辑后自动刷新可能会导致软件源的不稳定,所以需要您在所有更改结束后手动刷新列表;
  • 缓存是如何产生的?
    导入、写入软件包、生成图标包等均会产生临时缓存,随时可以清理。
  • 为什么我不能通过普通浏览器或 Cyder 拉取软件源列表和软件包?
    这是因为 DCRM 具有防盗链功能,只允许 Cydia™ 的访问请求;

如果您想关闭此功能,只需在设置中关闭防盗链功能。

  • 我该如何在描述中使用换行符?
    Cydia™ 支持使用 HTML 中的换行标记。
  • DCRM 的安全性如何?
    DCRM 并不提供商业级别的安全保障,后台登录采用了会话机制,请确保您的会话未被监听;

后台密码采用 SHA1 摘要算法存储并对比;
我们推荐您开启 SSL 以保证访问的安全。(注意:开启 SSL 可能会增加服务器负载。)
请确保做好了服务器的防护工作,例如:将 PHP 运行于安全模式、不允许外网访问 MySQL 服务器等。

CDN DEB和页面 缓存配置

DEB缓存配置
路径:/system/function/downfile.php
修改:
header('Cache-Control: public, must-revalidate, max-age=0');
-----------------------------------------------
header('Cache-Control: max-age=31104000');
 
页面缓存配置
路径:/system/class/core.php
修改:
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-cache');
header('Pragma: no-cache');
-----------------------------------------------
header('Expires:Sun, 04 Feb 2018 00:00:00 GMT');
header('Cache-Control:max-age=31104000');
header('Pragma: public');

编码

请使用支持 utf8_general_ci 编码的 MYSQL 数据库,DCRM 所有部分均使用 UTF-8 编码。

备份

Last modification:September 5, 2022
如果觉得我的文章对你有用,请随意赞赏