Git部署代码到服务器
在这之前,部署网站代码到服务器,用的都是 FTP
、SCP
、SFTP
等等之类的工具,使用起来不够方便。无意中看到关于使用 Git
的 hooks
方式上传代码的,就亲自试了下,很香,这里记录一下。
首先,到要承载仓库的服务器上创建用来维护仓库的用户
|
|
然后,切换到该用户,并进入家目录(这里可以浏览到你自己想放代码库的地方)
|
|
创建一个裸库(即没有工作区的库,但是可以正常 push
,checkout
等)
|
|
再创建一个 Git
仓库,用来从上面创建的裸库中拉取代码,此处我们使用 git clone
的方式
|
|
进入 blog.git
仓库的 hooks
文件夹,并创建钩子文件 post-receive
,写入脚本代码,关闭保存后,赋予该文件可执行权限
|
|
|
|
到此,服务器端配置完成,下面到本地,利用 SSH
将代码 PUSH
到服务器。首先创建 SSH
连接
|
|
创建连接成功后,可以配置本地 git 仓库
|
|
提示成功后,就可以推送代码到服务器了
|
|
然后,我们可以去服务器的 blog_src
目录下查看,如果本地上传的文件,都已经在该目录下存在,就说明配置成功。
注意:该目录的拥有者为 user1
, 启动 nginx
服务器的用户一定要有权限操作该目录。可以修改 nginx
配置文件中的user
为 root
。
而对于 apache
来说,它需要的目录权限是 755
,然后 apache
需要父层文件夹都具有 x
权限,而如果在用户的家目录的话,用户目录是没有执行权限的,因此会报 403
错误 (nginx
是可以设置在家目录的,前提是把 user
修改为 root
)。综上所述,还是不建议在家目录创建网站目录,可以存放在 /var/www/blog_src
这样的目录,创建好目录,自动就满足权限要求。