前言
在云端服务器上, 我们要管理自己的程序非常麻烦, 必须登陆云端进行管理, 而且云端都是命令行, 操作起来也不方便. 于是我们想到编程中最擅长的就是把所有变化集中到一个地方, 统一管理. 那么我们就可以参考这种思想, 把服务器的程序和配置全部集中到一个文件夹, 统一进行管理.
原理
我以我自己的为例, 因为我使用的是wordpress, mysql, nginx和hexo. 所以我服务器就有php配置文件, php-fpm配置文件, nginx配置文件, 并且有wordpress主程序, hexo程序, 还有存放https证书的目录, 还有定时备份数据库的脚本文件, 于是我就准备了一个统一目录zixuehu
用来存放他们.
接下来就是在服务器的/home/git下面配置一个zixuehu.git
裸仓库, 并且设置裸仓库的钩子, 当git仓库被更新时, 就把文件同步到/usr/local/zixuehu文件夹.
根据上面这种形式, 当我本地修改好文件后, 通过git就能自动同步到云端服务器. 从而实现对变化的统一管理.
步骤
把所有脚本和程序都找出来, 并且放入本地的zixuehu文件夹.
关闭云端服务器的nginx和php-fpm服务.
ps: php-fpm服务很烦, 线程很多, 必须使用
killall php-fpm
才能完全清除干净.在服务器上创建git裸仓库, 并且创建
/home/git/zixuehu.git/hooks/post-update
的钩子, 和服务器端的/usr/local/zixuehu
文件夹进行关联.本地修改好所有配置文件后, 和服务器端的git仓库关联, 并且推送.
指定配置文件的方式启动nginx和php-fpm.
#指定php-fpm的启动文件 php-fpm -y /usr/local/zixuehu/php/php-fpm.conf -c /usr/local/zixuehu/php/php.ini #指定nginx的启动文件 nginx -c /usr/local/zixuehu/nginx/nginx.conf
ps: 我的php是编译安装的, 所以自己手动去
/etc/profile
配置了环境变量才能直接使用php-fpm命令.
- 创建crontab的定时任务, 让服务器在凌晨3点自动备份数据库到github和码云.
推荐阅读
如果有什么地方不懂得,推荐阅读下面的文章:
编译安装php linux下搭建git服务端 git推送自动更新应用程序 利用git和crontab自动备份数据库
总结
我们今天学习了如何通过git来统一管理在服务器端的所有配置和程序. 这样也是利用了编程中的高内聚低耦合思想, 我们把配置和程序高度内聚到一个文件夹, 服务器不会牵扯到我们程序和配置本身. 我们可以随时更换任意服务器. 从而维护起来更方便.