官方下载:https://github.com/82Flex/WEIPDCRM
环境部署
环境支持
- 操作系统支持
类 Unix 操作系统(推荐 ) 或 Windows - FastCGI 支持
PHP >= 5.3
需要预编译的 GZIP, BZIP2, GD, MYSQL 扩展 ,支持在 Safe Mode 下运行(如果不支持某项扩展,只需注释掉相关行即可。)
- 网页服务端支持
Apache >= 2.4.7, Nginx >= 1.0.11 (Rewrite: include dcrm.conf;), Lighttpd >= 1.0 (Rewrite: include dcrm_lighttpd.conf;) - 数据库支持
MySQL 或 MariaDB
安装步骤
- 自动安装:配置好上文中的服务器环境,将 main 目录中的所有文件上传到网站目录
- 确保程序根目录下有读取、写入权限
- 如果您使用的 Web 服务器不是 Apache,将需要您有一定的高级操作知识和能力。您需要视情况启用相应的 Rewrite 规则。
- 访问 http://{YOUR_REPO_URL} 自动跳转或直接访问 http://{YOUR_REPO_URL}/install 进行数据库配置
如果您有特殊的要求并有一定的高级操作知识和能力,您可以修改 ./system/config/connect.inc.default.php 手动配置数据库:
- 将 DCRM_CON_SERVER 设为 MYSQL 数据库服务器的完整地址
- 将 DCRM_CON_SERVER_PORT 设为 MYSQL 数据库服务器端口
- 将 DCRM_CON_DATABASE 设为已经建立完成的数据库名
- 将 DCRM_CON_USERNAME, DCRM_CON_PASSWORD 设为可访问该数据库并拥有足够权限的用户名和密码
- 如果您需要保持数据库连接,请将 DCRM_CON_PCONNECT 设为 True
- 我们不推荐手动初始化程序所需要的数据库,请访问 ./install/setup-install.php,进行数据库的安装
升级步骤
- 将所有文件上传或替换到网站目录
- 访问源的任意页面即可自动更新
使用说明
首次使用
请进入右上角的设置以及左侧的源信息设置进行初期配置。
软件包功能
- 上传软件包
您可以通过网页以及 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 文件进行签名,这代表您对软件源的安全性有一定要求,也代表您有一定的高级操作知识和能力,如果您认可了这两点,请继续阅读。
环境要求
- Windows 或 类Unix操作系统
- 处于 non-Safe Mode (非安全模式)下的 PHP 环境,且具有运行 GPG 命令的权限,GPG 工具可以通过各种方式获取。
操作
请先阅读 how_to_host_cydia_repo.pdf 中《用于签名 Release 的密匙》章节,为您的软件源生成一个密钥,并制作相关软件源验证包,导出私钥。
在服务器上导入该私钥,并修改 ./system/config/gnupg.inc.php 中的相关参数:
- 将 DCRM_GNUPG_ENABLED 设为 1;
- 将 DCRM_GNUPG_PATH 设为 gpg 命令的路径;
- 将 DCRM_GNUPG_NAME 设为您私钥的名称;
- 将 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 编码。