• 05月18日 星期六

简单建立属于自己的cydia源

效果如下

简单建立属于自己的cydia源

第一购买域名、服务器、有一定基础的我这里不再讲解,如果这都不了解,请先补充一下在来,域名和服务器最好是同一公司的,国内最大的也就那几个阿里云/腾讯云等等,大家也知道国内嘛,必须要备案的不是吗?

效果如下第一购买域名、服务器、有一定基础的我这里不再讲解,如果这都不了解,请先补充一下在来,域名和服务器最好是同一公司的,国内最大的也就那几个阿里云/腾讯云等等,大家也知道国内嘛,必须要备案的不是吗?如果要问必须国内嘛?那倒不至于,只不过毕竟在美丽的中国,国人用国内的好处还是很多的,速度啊啥的,都是比较好的,用同一家公司兼容性啥的比较好,我推荐阿里云吧,直接一套服务的,域名、服务器、ssl、cdn啥都比较兼容的,不用来回的去找哪一个好哪一个靠谱,整套服务的更加便捷。阿里云和腾讯还有比较优惠的学生机,价格还是非常实惠的,自己搭建cydia源配置还是比较充足的。

如果你发现中间域名备案复杂耗时耗力,你可以直接使用阿里云的香港、新加坡的服务器,其他非国内的都可以的。

教程开始

注意,以下教程基于CentOS 7 64位系统,主要流程来自荒岛-CentOS7部署DCRM4(自建的Cydia源)基础上更新修改。

DCRM – Darwin Cydia Repository Manager(V4)是一个基于 Python Django 框架的 Cydia 源管理系统,由威锋技术组开发。可以建立属于自己的Cydia源。对于新手来说旧版的基于php的DCRM安装会更加友好(网上也有很多相关安装搭建教程)。但是由于安全与代码质量问题,旧版 WEIPDCRM 将于2017年4月起不再提供更新与技术支持,目前新版的DCRM4在长期维护更新,并且采用了更美观的前台/后台以及更好的架构。本帖希望人人都能用上最新的DCRM-Cydia 源管理系统,搭建属于自己的精品源。

安装步骤虽然多。但是只要你有耐心,小白也可以安装成功的哦。

首先安装开发工具包:

开源:github.co删除m/82Flex/DCRM

官方演示:apt.uozi.or删除g

1. yum -y groupinstall "Development Tools"

复制代码

然后安装EPEL源:( 自带源中无nginx supervisor )

1. yum -y install epel-release

复制代码

查看EPEL源是否安装成功:

1. rpm -q epel-release

复制代码

显示:epel-release-7-11.noarch 即为安装成功

查看EPEL源是否启用:

1. yum repolist

复制代码

如果源标识与源名称中有以下内容显示,即为EPEL源安装启用成功。进行下一步操作。

epel/x86_64 Extra Packages for Enterprise Linux 7 – x86_64

如果未显示则进行如下操作。

编辑EPEL源配置文件

1. nano /etc/yum.repos.d/epel.repo

复制代码

将[epel]中的enable=0改为enable=1。按ctrl+x输入y回车保存退出。再次输入yum repolist 如果源标识与源名称中显示epel源。进行下一步操作。

安装环境所需依赖

1. yum -y install MySQL-python mysql-devel python-devel python-setuptools libjpeg-devel

复制代码

用setuptools安装pip,然后使用pip安装下面这些包:

1. easy_install pip

2. pip install rq python-memcached Pillow exifread

复制代码

这里如果提示

You are using pip version 9.0.1, however version 19.0.3 is available.

You should consider upgrading via the 'pip install --upgrade pip' command.

可以进行pip升级输入(使用完毕以下升级命令,直接进入下一步,无需重复操作上一步)

1. pip install --upgrade pip

复制代码

现在安装程序需要用到的MySQL/Redis/Memcached:

1. yum -y install mariadb-server redis memcached

复制代码

接着装Nginx,顺带把supervisor装一下,supervisor用于管理后续各类进程:

1. yum -y install nginx supervisor nano curl

复制代码

启动Nginx和supervisor并设置开机自启:

1. systemctl start nginx

2. systemctl enable nginx

3. systemctl start supervisord

4. systemctl enable supervisord

复制代码

启动各种数据库并设置开机自启:

1. systemctl start redis

2. systemctl enable redis

3. systemctl start memcached

4. systemctl enable memcached

5. systemctl start mariadb

6. systemctl enable mariadb

复制代码

由于默认启用的memcached监听在外网,这样很不安全,所以编辑配置文件:

1. nano /etc/sysconfig/memcached

复制代码

将OPTIONS中的内容修改为下面的内容,让memcached只监听在本地:(注意这里是-l 不是-1)

1. OPTIONS="-l 127.0.0.1"

复制代码

按ctrl+x输入y回车保存退出。重启memcached:

1. systemctl restart memcached

复制代码

初始化MySQL数据库:

1. mysql_secure_installation

复制代码

按以下流程输入即可:

1. Enter current password for root (enter for none):回车

2. Set root password? [Y/n] Y

3. New password: 设置你的Mariadb数据库root密码

4. Re-enter new password: 重复输入一次密码

5. Remove anonymous users? [Y/n] Y

6. Disallow root login remotely? [Y/n] n

7. Remove test database and access to it? [Y/n] Y

8. Reload privilege tables now? [Y/n] Y

复制代码

重启mariadb:

1. systemctl restart mariadb

复制代码

登录到MySQL内,输入你设置的密码

1. mysql -u root -p

复制代码

创建数据库并授权:

1. CREATE DATABASE DCRM DEFAULT CHARSET UTF8;

2. GRANT ALL PRIVILEGES ON DCRM.* TO 'root'@'localhost';

3. FLUSH PRIVILEGES;

4. quit

复制代码

DCRM-V4需要用到的环境安装完成了,现在拉取开源项目文件:

1. mkdir -p /opt/wwwroot && cd /opt/wwwroot

2. git clone ht去除t删除ps://github.co去除m/82Flex/DCRM.git

3. cd DCRM

复制代码

安装项目所需依赖:

1. pip install -r requirements.txt

复制代码

此处如果提示 Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-XXXXXX/olefile/ 请执行以下代码

1. python -m pip install --upgrade --force pip

2. pip install setuptools==33.1.1

复制代码

然后重新执行:

1. pip install -r requirements.txt

复制代码

之后复制一份DCRM配置文件重命名并编辑

1. cp DCRM/settings.default.py DCRM/settings.py

2. nano DCRM/settings.py

复制代码

配置文件中需要改动的部分如下:

开启REDIS缓存等功能:

1. ENABLE_REDIS = True # redis-server, rq are required.

2. ENABLE_CACHE = True # memcached, python-memcached are required.

3. ENABLE_SCREENSHOT = True # libjpeg-dev, Pillow, exifread are required.

复制代码

修改随机KEY,确保站点安全:(任意设置个密码)

1. SECRET_KEY = 'impone'

复制代码

修改允许访问的域名:(将第一项改为你的域名,比如apt.c去除n.c去除om)

1. ALLOWED_HOSTS = [

2. 'apt.c去除n.c去除om',

3. '127.0.0.1',

4. 'localhost'

5. ]

复制代码

修改站点语言为中文

1. LANGUAGE_CODE = 'zh-Hans'

复制代码

修改数据库连接信息。USER改为root;PASSWORD改为你设置的密码 即可。

1. DATABASES = {

2. 'default': {

3. 'ENGINE': 'django.db.backends.mysql',

4. 'NAME': 'DCRM',

5. 'USER': 'root', # mysql user name here

6. 'PASSWORD': 'mysqlpassword', # mysql user password here

7. 'HOST': '127.0.0.1',

8. 'PORT': '3306',

9. 'OPTIONS': {

10. 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"

11. }

12. }

13. }

复制代码

按ctrl+x输入y回车保存退出。

初始化静态文件以及导入数据库创建管理员用户:(期间会要求设置管理员账户密码)

Username (leave blank to use 'root'): 输入你要设置的管理员用户名,不填写则默认为root

Email address: 输入你要设置的管理员邮箱

Password:输入你要设置的管理密码。此时设置密码不会显示,输入完之后回车将会要求再次输入一遍密码确认。

1. ./manage.py collectstatic

2. ./manage.py migrate

3. ./manage.py createsuperuser

复制代码

创建uwsgi配置文件:

1. nano uwsgi.ini

复制代码

写入

1. [uwsgi]

2.

3. chdir = /opt/wwwroot/DCRM

4. module = DCRM.wsgi

5.

6. master = true

7. processes = 4

8. socket = :8001

9. buffer-size = 32768

10. vaccum = true

11. uid = root

12. gid = root

复制代码

关闭SELinux:

1. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2. setenforce 0

复制代码

新建Nginx站点配置文件:

1. nano /etc/nginx/conf.d/dcrm.conf

复制代码

写入(以下所有有域名的部分全部替换为你自己的):

简单建立属于自己的cydia源

简单建立属于自己的cydia源

40.

41. location ~^/((CydiaIcon.png)|(Release(.gpg)?)|(Packages(.gz|.bz2)?))$ {

42. alias /opt/wwwroot/DCRM/resources/releases/1/$1; # make an alias for Cydia meta resources

43. }

44.

45. location @djangosite {

46. uwsgi_pass django;

47. include /etc/nginx/uwsgi_params;

48. }

49.

50. location ~* .(ico|gif|bmp|jpg|jpeg|png|swf|js|css|mp3|m4a|m4v|mp4|ogg|aac)$ {

51. expires 7d;

52. }

53.

54. location ~* .(gz|bz2)$ {

55. expires 12h;

56. }

57. }

复制代码

按ctrl+x输入y回车保存退出。

安装ACME.SH用于申请SSL证书

1. curl h去除tt删除ps://get.acme.sh | sh

复制代码

进入根目录,然后进入.acme.sh目录并申请证书(改为你的域名)

1. cd

2. cd .acme.sh

复制代码

这里将介绍使用dns pod申请证书,与阿里云申请证书。

其它方式请自行百度比如(腾讯云acme.sh申请证书)。如果成功请直接进行下一步操作。

dns pod申请证书

进入dns pod控制台。左边导航-用户中心-安全设置-API Token-创建API Token-名称任意设置。保留生成的ID与Token。

继续在ssh连接输入:

1. export DP_Id="你保存的ID"

2. export DP_Key="你保存的Token"

复制代码

然后输入:(此时位于.acme.sh目录,apt.c去除n.c去除om改为你的域名)

1. ./acme.sh --issue --dns dns_dp -d apt.c去除n.c去除om

复制代码

阿里云申请证书

1.访问 :ram.console删除.aliyun.co删除m/overview,点击左侧人员管理中的用户。

2.点击右侧的新建用户。登录名称与显示名称可以设置为acme.sh,编程访问打勾。点击确认。

3.此时复制AccessKey ID与AccessKeySecret留作备用

4.再次点击左侧人员管理中的用户,此时看到新建好的用户,点击右侧的添加权限。在请输入搜索dns,点击管理云解析(DNS)的权限。此时右侧出现AliyunDNSFullAccess。然后点击确定即可。如图所示:

简单建立属于自己的cydia源

回到ssh连接

输入:(AccessKey ID与AccessKeySecret是之前第三步保存的)

1. export Ali_Key="你保存的AccessKeyId"

2. export Ali_Secret="你保存的AccessKeySecret"

复制代码

然后输入:(apt.c去除n.co去除m改为你的域名)

1. ./acme.sh --issue --dns dns_ali -d apt.c去除n.c去除om

复制代码

成功申请到证书后,创建证书存放目录,输入:(apt.c去除n.c去除om改为你的域名)

1. mkdir -p /etc/nginx/certs/apt.c去除n.c去除om

复制代码

将申请的证书移动到这个目录并完成安装:(apt.c去除n.co去除m改为你的域名)

简单建立属于自己的cydia源

复制代码

新建一个supervisor的配置文件:

1. nano /etc/supervisord.d/dcrm.ini

复制代码

写入:

1. [supervisord]

2. nodaemon=false

3.

4. [program:uwsgi]

5. priority=1

6. directory=/opt/wwwroot/DCRM

7. command=/usr/bin/uwsgi --ini uwsgi.ini

8.

9. [program:high]

10. priority=2

11. directory=/opt/wwwroot/DCRM

12. command=/usr/bin/python ./manage.py rqworker high

13.

14. [program:default]

15. priority=3

16. directory=/opt/wwwroot/DCRM

17. command=/usr/bin/python ./manage.py rqworker default

复制代码

按ctrl+x输入y回车保存退出。

最后重启supervisor:

1. systemctl restart supervisord

复制代码

如果没有意外的话,现在打开你的站点域名+/admin访问后台:

简单建立属于自己的cydia源

进入后台,点击站点,在域名处点击example.c去除om 将域名与显示名称改为你自己的。改完之后如图所示。

简单建立属于自己的cydia源

添加元数据:

简单建立属于自己的cydia源

按需填写,完成之后点保存:(以下是我的设置)

简单建立属于自己的cydia源

在设置页面把之前添加的元数据设置为活跃状态:(添加完源保存后页面导航条下面也有提示可以直接点击设置为活跃)

简单建立属于自己的cydia源

接着添加你的软件包:

简单建立属于自己的cydia源

上传deb格式的软件包:

简单建立属于自己的cydia源

启用软件包并保存:

简单建立属于自己的cydia源

最后构建活跃元数据:

简单建立属于自己的cydia源

详情任意填写注释信息即可:

简单建立属于自己的cydia源

注意:每次添加软件包后都需要重新构建一次。

有技术的建议 uwsgi/nginx/等程序用非root权限,来确保安全。这里不再说明。

DCRM-V4 bug解决 & 常见问题

1.DCRM后台Photologue-Galleries-添加 gallery报错( build_attrs() got an unexpected keyword argument ‘name’ )

原因为sortedm2m不兼容django 1.11

目前sortedm2m作者已经解决更新。用作者最新sortedm2m-1.5.0版本中的sortedm2m文件夹中的文件替换 /opt/wwwroot/DCRM/sortedm2m文件夹中的文件。bug fix

sortedm2m作者开源项目 github.c去除om/gregmuellegge ... m/archive/1.5.0.zip

2.DCRM后台设置出现 'ascii' 编码器不能编码位置0-1中的字符:序数不在范围内(128)

首先到python的site-packages文件夹,建立并编辑sitecustomize.py文件(按照以下命令操作即可)

1. cd /usr/lib/python2.7/site-packages/

2. nano sitecustomize.py

复制代码

写入

1. # encoding=utf8

2. import sys

3.

4. reload(sys)

5. sys.setdefaultencoding('utf8')

复制代码

按ctrl+x输入y回车保存退出。然后重启supervisor:

1. systemctl restart supervisord

复制代码

即可解决

上一篇新闻

每周硬科技领域投融资汇总(10.13-10.19)

下一篇新闻

外媒:中国人为啥要花这么多钱……打赏主播?

评论

订阅每日新闻

订阅每日新闻以免错过最新最热门的新加坡新闻。