欢迎光临:小米的东西有点杂乱,希望你慢慢享用,且有所收获 ^_^

MYSQL主从复制

0 ~o~

参考:https://blog.csdn.net/magerguo/article/details/80074980

简介
Simple replication
这是一种最简单的主从同步复制方式,添加一台新的mysql服务作为slave服务,并在此服务上回放master上所有的事务,当slave服务启动后,会去读取master上全部的binary log,这种方式简单快捷,但是需要耗费时间。

master服务设为只读
如果已经配置了主从同步并且正在运行,先将master所有服务设为只读,然后确保slave上所有服务已经将数据同步更新。

SET @@global.read_only = ON;

停止master服务
将所有master服务停止。

配置GTID
master、slave服务上修改my.ini或者my.cnf,server_id确保不重复,然后启动服务。

server_id=1
log_bin=mysql-bin-1
gtid_mode=on #开启GTID模式
binlog_format=mixed #启用混合模式
enforce-gtid-consistency=true #强制GTID一致性
log-slave-updates=true #从库从主库复制数据时可以写入到binlog日志
skip_slave_start=1
binlog-do-db=db1 #同步数据库
binlog-do-db=db2
expire_logs_days=7
max_binlog_size=20M

同步账号

master服务上创建同步账号。

mysql> grant replication slave on *.* to ‘repl’@’%’ identified by ‘repl’;

# 格式:mysql> GRANT REPLICATION SLAVE ON *.* TO ‘帐号’@’从服务器IP或主机名’ IDENTIFIED BY ‘密码’;

 

开启slave

mysql> CHANGE MASTER TO
> MASTER_HOST = ‘192.168.2.63’,
> MASTER_PORT = 3306,
> MASTER_USER = ‘repl’,
> MASTER_PASSWORD = ‘repl’,
> MASTER_AUTO_POSITION = 1;
mysql> start slave;

master取消只读
mysql> SET @@global.read_only = OFF;

 

宝塔面板增加cloudxns的api集成

0 ~o~

宝塔面板增加cloudxns的api集成,修改以下文件:

/www/server/panel/class/panelSite.py

增加:

{
“name”:”dns_cx”,
“title”:”cloudxns”,
“ps”:”使用cloudxns的API接口自动解析申请SSL”,
“help”:”cloudxns后台》用户中心》API管理,按指引获取AccessKey/SecretKey”,
“data”:[{“key”:”SAVED_CX_Key”,”name”:”AccessKey”,”value”:””},{“key”:”SAVED_CX_Secret”,”name”:”SecretKey”,”value”:””}]
},

也可以直接下载如下我修改好的替换。

https://pan.mlibaba.com/s/yqud3gts

【独家】宝塔面板申请Let’s Encrypt多泛域名SSL失败修复

0 ~o~

在使用宝塔面板申请SSL泛域名有个问题,泛域名只能通过DNS方式申请,如果我们只申请*.suo.me 这一个泛域名的话,根域suo.me解析过来就会报证书错误。同时选择两个域名申请的话面板又会报错,类似下面:

[Mon Nov 26 14:57:52 CST 2018] Multi domain=’DNS:*.a.xyz,DNS:*.b.cn,DNS:*.c.biz’
[Mon Nov 26 14:57:52 CST 2018] Getting domain auth token for each domain
[Mon Nov 26 14:57:53 CST 2018] Getting webroot for domain=’*.a
.xyz’
[Mon Nov 26 14:57:54 CST 2018] Getting webroot for domain=’*.b.cn’
[Mon Nov 26 14:57:54 CST 2018] Error, can not get domain token entry *.b.cn
[Mon Nov 26 14:57:54 CST 2018] The supported validation types are: dns-01 , but you specified: http-01
    经过分析,由于宝塔面板在dns方式申请传多个域名的时候,第一个泛域名dns-01认证成功了,但是第二个泛域名又变成用http-01进行验证,导致失败。
    重点来了,修复方式如下:
    修改/www/server/panel/class/panelSite.py 文件的869行,将execStr += ‘ -w ‘ + done; 注释即可。
     然后重启面板程序。
   

写在周五

0 ~o~

又到了周五了

最近组织架构调整带来的阵痛还未完全消化

一周的时间很快就过去了

迷茫的找不到方向

但是逐渐看到曙光

接触了解的越多,就越觉得不懂的东西有太多

这一周甚至晚上睡觉还在想着大数据、集群、长传…

利用Cloudreve搭建私有云盘

0 ~o~

转自:http://www.senra.me/build-your-own-cloud-storage-series-cloudreve-another-production-of-shudong-share-author/

一.介绍

Cloudreve这个我最早是在QQ群里看到的,有人发了一张图片,发现界面看上去很棒,我之前做了一个自建私人云盘的系列文章,在写的过程中搜集了很多相关的程序,毫不夸张的说我可能把国内外这方面的程序都起码是过了一遍的,然而这个看上去这么棒的程序我怎么会漏掉呢。

于是在百度上谷歌上到处搜索,然而当时作者还没有发帖,官网的搜索引擎Rank也很低,我只找到一个.com的网站,还是显示的域名正在出售,正在疑惑之时突然想起,这也许是有人新开发的程序,由于有中文,所以或许是国人开发的,于是尝试去GitHub搜索,果不其然,发现了它的Repo。

高兴之余突然发现作者的名字有点眼熟,点开他的Repo列表一看,原来是树洞的作者,惊了。然后也在Repo里看到了Demo网站,访问后感觉确实不错。

然后当天晚上就在Hostloc以及V2ex等网站上看到了作者发帖介绍他的新程序_(:з」∠)_,我也算是抢先了。

说了这么多废话,我还是来介绍下Cloudreve吧。Cloudreve基于ThinkPHP构建的网盘系统,能够助您以较低成本快速搭建起公私兼备的网盘。

目前已经实现的特性:

  1. 快速对接多家云存储,支持七牛、又拍云、阿里云OSS、AWS S3、自建远程服务器,当然,还有本地存储
  2. 可限制单文件最大大小、MIMEType、文件后缀、用户可用容量
  3. 图片、音频、视频、文本、Markdown、Ofiice文档 在线预览
  4. 移动端全站响应式布局
  5. 文件、目录分享系统,可创建私有分享或公开分享链接
  6. 用户个人主页,可查看用户所有分享
  7. 多用户系统、用户组支持
  8. 初步完善的后台,方便管理
  9. 拖拽上传、分片上传、断点续传、下载限速(*实验性功能)
  10. 多上传策略,可为不同用户组分配不同策略
  11. 用户组基础权限设置、二步验证
  12. WebDAV协议支持

安装需求:

  1. LNMP/AMP With PHP5.6+
  2. curl、fileinfo、gd扩展
  3. Composer

虽然是才放出来不久,但是从一开始功能就是相当多的了,我比较喜欢自建远端存储以及断点续传的功能,当然WebDAV这种也是必不可少的啦,Office的在线预览算是锦上添花。其实各种分享以及权限限制在树洞外链上其实也以及比较完善了,但是树洞对云存储过于依赖了,本地化的反而不足,由于一堆云在数据量和流量大的情况下比购置服务器或者VPS贵多了,所以实在是不适合。

二.安装

安装的话和常规的下载安装包解压不太一样,虽然如果非要这样也是可以的,Cloudreve使用Composer实现快捷的安装与配置。

当然,在安装之前还是请配置LNMP的环境,各种一键包和面板均可,然后新建vhost并创建新的数据库以及用户,我这边以OneInStack举例

12345678 #这儿的php路径请自行确认curl -sS https://getcomposer.org/installer | /usr/local/php/bin/phpmv composer.phar /usr/local/bin/composer #安装开发版,目前还在开发阶段,所以也没有啥稳定版啊啥的,不过也没啥大问题其实cd /path/to/vhost/root/#请注意这一步还会检测PHP的模块,如果缺少fileinfo请自行安装composer create-project hfo4/cloudreve:dev-master

然后会有个配置指引,按照说明输入数据库信息以及网址就行,我这边一开始创建的Mysql用户是只允许localhost访问的,用127.0.0.1不行,后来又加了个127.0.0.1能访问的用户才行

接着我们需要修改下程序的位置,以及目录的权限,主要是runtime目录以及public目录

1234567891011 #默认在vhost根目录下使用composer获取会把程序放在cloudreve文件夹中,我们需要 直接用根目录的话要么修改vhost配置,要么把里面的文件移出来,这个看你选择了cd /path/to/vhost/root/mv cloudreve/* .mv cloudreve/{.htaccess,.travis.yml} .rm -rf cloudreve#如果你打算使用二部验证功能,请额外运行如下命令添加依赖composer require phpgangsta/googleauthenticator:dev-mastercomposer require endroid/qrcode#设置所有者以及权限chown -R www:www *chmod -R 755 runtime public

这样就OK了,接着由于ThinkPHP框架的要求,我们需要设置下伪静态,Apache由于.htaccess文件的关系只要启用mod_rewrite.so模块并确保AllowOverride All就能够自动处理,而Nginx需要手动添加如下内容到vhost配置文件中。

当然,你也可以在面板或者一键包创建vhost的时候选择ThinkPHP伪静态

123456 location / {    if (!-e $request_filename) {        rewrite ^(.*)$ /index.php?s=/$1 last;        break;    }}

接着重启下Nginx然后就OK了,对了,还得配置下Cron,来定时处理一些任务

12345 #自己改域名echo “* * * * * curl http://pan.example.com/Cron” >> /var/spool/cron/rootchmod 600 /var/spool/cron/rootservice crond reloadservice crond restart

然后访问 http://pan.example.com/Admin 登陆就行
初始用户名:admin@cloudreve.org
初始密码:admin

登陆后可以右上角进管理面板,改改用户名、邮箱、密码啥的,如果是私人使用也可以把注册功能关掉

剩下的还有启用Sendfile支持和配置远程存储我就不提了,因为文档相当完善,下面给链接

  1. https://github.com/HFO4/Cloudreve/wiki/启用Sendfile下载支持
  2. https://github.com/HFO4/Cloudreve/wiki/远程存储服务端搭建

参照着来就OK,如果安装中还有其他问题可以看看FAQ

  1. https://github.com/HFO4/Cloudreve/wiki/安装及初次使用FAQ

如果有什么意见或建议可以去GitHub开issue,看了眼最近的issue作者可能会在下个大版本更新中添加Aria2实现离线下载功能,还是比较期待的。

您使用的是IE浏览器,请下载Chrome来获得更好的体验