我用PHP、jQuery和HTML为我的客户创建了一个CRM Saas。
最近我的客户在办公室的网络出现了一些问题,所有的业务都关闭了,因为当网络关闭时CRM不工作,
我想为这种情况创造一个解决方案,
例如,我认为也许我将创建crm的本地副本,我将在服务器中的数据库和本地数据库之间进行同步,并且在网络关闭的那一刻,我将重定向用户到crm的本地副本
,当网络再次运行时,我会将本地DB同步到服务器DB,并将用户重定向到服务器上的CRM。
但是我对这个解决方案有一个问题,
我不希望用户拥有CRM的源文件,
为什么要从他那里保护这些文件?
谢谢!
你可以安装一个本地服务器与你的风格的操作系统,Apache, MySQL等…并加密本地驱动器,以确保客户端无法随时访问文件:
Ubuntu链接: https://help.ubuntu.com/community/FullDiskEncryptionHowto
如果你所有的web文档(PHP, HTML等)都是静态的,那么我猜你的数据库是唯一需要同步的东西。我的建议是选择Active->Standby:
MySQL链接: https://grox.net/sysadm/misc/mysql_active-standby_master-master.replication
所以基本上你需要配置你的站点本地数据库是离线的,但仍然同步数据从活动实例。当本地DB无法通信(通过心跳或ICMP回显)时,本地DB将变为活动状态。这还需要少量的DNS配置,或者您需要在每个DB连接的PHP中配置此心跳。
查看上面的单个DB,我更倾向于放弃托管并将其保留在本地。只要给自己任何需要的访问权限来支持它们(FTP, VNC等)。
可以加密代码。有几种方法可以做到这一点,它们都会影响PHP代码本身或代码运行的平台。
PHP混淆器-只有几个,你可以在Google上获得更多
- http://www.zend.com/en/products/zend-guard
- http://phpshadow.com/
- http://www.fopo.com.ar/- free
另一种方法是在客户端安装VirtualBox,并在带有加密文件系统的Ubuntu/Fedora/WhateverDistroYouLike盒子中运行应用程序。当您需要更新某些内容时,您可以轻松地创建一个新版本的虚拟机,在您的终端进行测试,然后将其安装到客户端(只需几分钟)。加密的Docker容器也值得一看!