PHP实现git部署的方法教程详解
虽然一直用git做版本管理,以前也用过git项目的部署,但都没有坚持这种习惯,最近决定再学习下,下面这篇文章主要给大家介绍了关于PHP实现git部署的方法教程,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
背景
在小站点上,直接用git来部署php代码相当方便,你的远程站点以及本地版本库都有一个版本控制,追踪问题或者回滚是很轻松的事情。
因为在小公司上班,原先的系统还在使用传统的ftp上传部署,部署太麻烦,也不好管控线上的代码。在网上找了下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实现git部署的方法教程详解的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP在现代Web开发中仍然重要,尤其在内容管理和电子商务平台。1)PHP拥有丰富的生态系统和强大框架支持,如Laravel和Symfony。2)性能优化可通过OPcache和Nginx实现。3)PHP8.0引入JIT编译器,提升性能。4)云原生应用通过Docker和Kubernetes部署,提高灵活性和可扩展性。

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP和Python各有优势,适合不同场景。1.PHP适用于web开发,提供内置web服务器和丰富函数库。2.Python适合数据科学和机器学习,语法简洁且有强大标准库。选择时应根据项目需求决定。

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP适合web开发,特别是在快速开发和处理动态内容方面表现出色,但不擅长数据科学和企业级应用。与Python相比,PHP在web开发中更具优势,但在数据科学领域不如Python;与Java相比,PHP在企业级应用中表现较差,但在web开发中更灵活;与JavaScript相比,PHP在后端开发中更简洁,但在前端开发中不如JavaScript。

PHP成为许多网站首选技术栈的原因包括其易用性、强大社区支持和广泛应用。1)易于学习和使用,适合初学者。2)拥有庞大的开发者社区,资源丰富。3)广泛应用于WordPress、Drupal等平台。4)与Web服务器紧密集成,简化开发部署。

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。
