基于ThinkPHP开发的Drupal群集控制系统

自动化Drupal服务器群集控制,V1.0版本现已开发完成,开源免费,“水滴间”提供下载(唯一官方地址)

安装使用说明

介绍:
在使用Drupal进行大型系统构建时,为了提高系统负载能力,通常需要很多台Drupal服务器组成群集,由于Drupal系统本身已经实现了应用无状态,对于开发者而言只需要考虑数据库的读写分离和数据库群集问题,通常我们会设置一台“写”数据库作为主库,同时根据业务量设置很多台“读”数据库作为从库,在从库和主库之间实现读写分离,同时进行主从数据同步。
配置完数据库群集后,我们只需要简单的配置Drupal服务器的配置文件,就能启用这些数据库,但我们的Drupal服务器群集可能很大,手动配置里面的每一台服务器将很低效,出错风险高,为了自动化该过程,于是诞生了本系统。
本系统独立运行在一台服务器上,Drupal服务器群集中的每一台服务器会依据设定的时间定期向本系统请求配置数据,下发的配置数据将实时生效,如有更新(比如增加了从数据库),我们只需要在本系统中更新一次即可,将自动应用到群集中所有的Drupal服务器。


安装:
本系统的安装分为客户端安装和服务端安装两部分,它们协同工作:
客户端安装:
即在Drupal服务器上安装客户端程序,这里以Drupal默认站点路径(\sites\default)为例,如为其他路径请跟随变化:
1、备份存档原配置文件“\sites\default\settings.php”
2、将“settings.php”改名为“YK_settings.php”
3、将本目录下“客户端程序”文件夹里面的文件复制到“\sites\default\”,覆写替换
4、修改覆写后的settings.php文件内容,即YK_config()函数定义里面的配置信息,主要有群控中心主机地址、通讯签名密钥、机密内容加密密钥、本地配置文件生成时间、群集id、服务器id等,注意服务器id需要根据你的服务器动态生成,这用来识别客户端
5、将修改完成后的Drupal服务器配置为镜像(比如阿里云的弹性伸缩ess模板),以便以此为基础增减应用服务器群集大小


服务器端安装:
1、将本系统上传服务器,根目录设置为“ThinkPHP\public”
2、建立数据库,并导入数据表结构,见本目录下的“服务端数据库”目录
3、修改数据库配置文件“ThinkPHP\config\database.php"的“ykccc”一节,信息与前一步一致
4、修改配置文件“ThinkPHP\config\ykccc.php”,里面的通讯签名密钥和机密内容加密密钥要和客户端安装一节中设置相同,否则无法通讯,其他可保持默认
5、将客户端安装一节中备份的settings.php文件复制到“ThinkPHP\runtime\YKCCC”目录中,并改名为“YK_settings.php”,将来只需要修改该文件即可同步到所有Drupal服务器,此保存路径可以在前一步的配置中修改


常见问题:
1、如何查看客户端配置是否已经更新?
你可以使用phpMyAdmin这样的工具连接到数据库查看更新日志
2、通讯不成功
查看客户端和服务器中设置的通讯密码和内容加密密码是否一致,本系统采用AES加密数据
3、环境版本要求
请见Drupal和ThinkPHP对环境的要求,适用于Drupal 8 及以上版本
4、系统原理是什么?
ThinkPHP服务器端向Drupal系统下发其所需的settings.php来控制群集行为


版权信息:
开源免费,遵循GNU GENERAL PUBLIC LICENSE Version 2
如需进一步开发请联系:
开发者:云客 (微信号:indrupal)
开发公司:未来很美(深圳)科技有限公司 (网站:www.will-nice.com)

 

 

添加新评论

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
请输入以上问题的答案,换一个问题请刷新,不区分大小写