我开发了很多网站,并在本地运行 Apache 服务器来进行调试和设计。这些网站使用 Apache、PHP 和 MySQL。需要明确的是,我的 Apache 服务器不向互联网提供这些站点,我只是在本地访问它们。
我在两台机器上开发。一台台式机,一台笔记本电脑。两者都运行 Linux Mint,我尝试保持它们之间的设置一致。这意味着我必须复制 Apache 和 PHP 配置。我保持目录结构相同。如果我进行更改,我必须确保将 MySQL 数据库从一台计算机复制到另一台计算机。
这并不理想。它很容易出现人为错误,尤其是在保持 MySQL 数据库同步时。有时我在一台机器上工作,忘记导出和导入数据库,然后在另一台机器上完成工作后,我有两个版本,并且无法轻松合并它们。另外,备份也很麻烦。
有效的方法是我将所有 HTML、CSS 和 Javascript 存储在 Dropbox 目录中的一个文件夹中。因此,我对这些文件所做的任何更改都会自动同步。这也意味着我在云中有备份。如果需要的话,如果我搬到新机器上,要恢复这些文件,我只需安装 Dropbox,所有文件都会恢复。
如果在新计算机上进行设置,我要做的最多的事情就是创建一个指向存储 HTML 文件的 Dropbox 目录的符号链接:
sudo ln -s /home/dave/Dropbox/Websites /var/www/Websites
有没有办法可以用我的 Apache 设置和 MySQL 数据库来做到这一点?我可以在哪里使它们在两台计算机上的 Dropbox 文件夹中保持同步,并且在使用新计算机时进行最少的设置?
答案1
对于 apache,您可以轻松地将可用站点放入 dropbox,然后将要启用的站点符号链接到以下位置的启用站点的文件夹:/etc/apache2/sites-enabled/[name]
至于mysql,这有点棘手,因为访问受到apparmor的保护,您可以复制/var/lib/mysql
到dropbox并编辑其中的数据路径/etc/mysql/my.cnf
,但要使其工作,您需要编辑apparmor配置检查此链接了解详细信息
我想这就是你所需要的。
答案2
我建议不要尝试将这些文件直接保存在 Dropbox 中,而是使用诸如rsync
和 之类的工具crontab
将不同的文件备份到您的 Dropbox 文件夹中。
像这样的东西:
rsync -avz /etc/apache2 /etc/mysql $HOME/Dropbox/mybackup/
可以根据需要扩展这样的命令以包含更多文件和目录。此外,该命令可以crontab
每隔几分钟/秒从一个条目运行一次。
在另一个系统上,您可以rsync
将 Dropbox 中的文件“部署”到 /etc、/var 等中的实际位置。