git php开发配置文件,PHP如何实现git部署

本文详细介绍了如何使用PHP实现Git自动部署,包括配置Git、设置sudo免密、创建和设置钩子、修改文件权限、站点属主及权限设置、PHP钩子逻辑等步骤,确保安全且高效地进行代码部署。同时,强调了用户上传图片目录的文件忽视操作,以防止意外删除重要文件。
摘要由CSDN通过智能技术生成

PHP实现git部署的方法:首先配置git,并设置sudo免密;然后设置钩子,代码为【touch post-receive】;最后增加钩子可执行权限,代码为【chmod a+x .git/hooks/post-receive】。

3e8062d5f070ba0aa1c7d6530e42029d.png

PHP实现git部署的方法:

账号相关useradd -m git //新增git账号

ssh-keygen //密钥生成,如果已经有了可略过

su git //切换至git账号

cd ~ //切换到git账号根目录

mkdir .ssh //创建.ssh目录

cat /密钥存放目录/xxx.pub >> ~/.ssh/authorized_keys //设置公钥

此处一定要注意权限问题,否则密钥登入无法生效,各文件夹对应的权限如下.ssh文件夹权限 700

id_rsa 600

id_rsa.pub 644

authorized_keys 600

文件权限设置

将git与站点运行nginx或者apache的用户放同一用户组,如www

vim /etc/passwd 找到git账号与www账号,将git账号的组标识变更为与www组标识一致

站点所属者设置为git,用户组设置为 www //假设nginx与git 都归属于www用户组

目录权限设置775 ,文件权限设置为664

仓库代码

服务器端cd 站点目录

git init //初始化目录

git配置git config receive.denyCurrentBranch ignore //设置仓库接受代码提交

设置sudo免密vim /etc/sudoers

# Defaults secure_path 中若没有你要的命令,要注意添加

# php的命令默认需要在 secure_path最后面添加 :/usr/local/php/bin"

在 root ALL=(ALL) ALL 下面一行添加

git ALL=(ALL) NOPASSWD:ALL

# 保存退出 ,这样针对laravel 要重启队列命令就可以使用了.

# sudo php artisan queue:restart

钩子设置cd .git/hooks //切换至站点钩子目录

touch post-receive //创建接收提交时钩子

// 钩子文件内容如下:

#!/bin/sh

# 设置账号创建文件的默认权限

umask 002

unset GIT_DIR

cd ..

git checkout -f

# 执行PHP钩子逻辑

/usr/bin/curl http(s)://域名/钩子文字位置/hook.php

# 如果有使用laravel队列则需要重启队列进程,让新代码生效

# sudo php artisan queue:restart

exit 0

hook.php内容<?php

/**

* git上传执行钩子

*/

//TODO 安全限制

//TODO 其他钩子行为

// 清除opcache

if (version_compare(PHP_VERSION, '5.5.0', '>=')) {

opcache_reset();

}

增加钩子可执行权限chmod a+x .git/hooks/post-receive

本地代码git remote add 远程仓库名称 ssh://git@IP地址:/站点目录 //添加远程仓库

git push 远程仓库名称 master

特别注意

用户上传的图片目录一定要做好文件忽视动作,否则有可能在清除未追踪文件时将此部分文件删除,造成灾难性结果想了解更多编程学习,敬请关注php培训栏目!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值