最好的方式保持CRM工作与PHP离线


Best way to keep CRM working offline with PHP

我用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容器也值得一看!