• 解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题


    解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题

    前几天出了教程本地部署gogs,在后期运行时发现两个问题:

    第一:邮件明明配置了,后台显示未配置,不生效

    第二:在新建仓库时勾选“使用选定的文件和模板初始化仓库”报500错误或者其他各种奇葩错误,在网上查了各种资料都无法解决,最终耗时48个小时,终于解决了。

    先解决邮件问题,直接替换成如下配置即可。

    vim XX/gogs/custom/conf/app.ini  ## gogs所在的真实路径
    
    • 1

    将以下代码复制到mailer下

    [mailer]
    [email]
    ENABLED = true;启用邮件配置在这里呢
    ;进入电子邮件配置部分。
    ADD_PLAIN_TEXT_ALT = true
    SUBJECT_PREFIX = [%(BRAND_NAME)s]
    ;设置主题行的前缀。这个前缀会在邮件主题的最前面出现,通常用于标识邮件的来源。%(BRAND_NAME)s是一个占位符,可能会在实际发送邮件时被替换为相应的品牌名称。
    HOST = smtp.126.com:25   ;SMTP服务器的主机和端口126的邮箱也是一个大坑,端口是25
    FROM = XXX@126.com  ;指定邮件发送者的邮箱地址。不要填写别的内容,否则QQ邮箱将无法正常接受邮件!!!!
    USER = XXX@126.com  ;指定登录SMTP服务器所需的用户名,与发件人邮箱地址相同。
    PASSWORD = DIRHLXGDRQADXTQO  ;这里不是邮箱密码!!不是邮箱密码!!不是邮箱密码!!是授权码!!! 授权码!!!授权码!!!
    DISABLE_HELO =true  ;控制是否禁用HELO操作,当主机名不同时使用。HELO是SMTP协议的一部分,用于在SMTP会话开始时标识发件人的主机。
    ;HELO_HOSTNAME =  ;指定用于HELO操作的自定义主机名。
    ;SKIP_VERIFY = false  ;控制是否跳过验证服务器的证书。设置为“false”表示不跳过,即会验证服务器的证书。
    ;USE_CERTIFICATE = false  ;控制是否使用客户端证书进行身份验证。
    ;CERT_FILE = custom/email/cert.pem  ;指定客户端证书文件的路径。
    ;KEY_FILE = custom/email/key.pem  ;指定客户端私钥文件的路径。
    ;USE_PLAIN_TEXT = false  ;控制是否使用“text/plain”作为邮件内容的格式。控制是否在发送HTML邮件时附加纯文本备用。这样做是为了支持老版本的邮件客户端,并让垃圾邮件过滤器更加愉快。如果需要启用,这里设置为true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    ;对于 DISABLE_HELO 和 HELO_HOSTNAME 两个配置项:

    DISABLE_HELO:
    ;这个选项用于控制是否禁用 SMTP 协议中的 HELO 操作,当发件人的主机名与实际主机名不匹配时。通常,SMTP 服务器在会话开始时会发送一个 HELO 或 EHLO 命令,以标识自己的主机名。如果设置为 true,表示禁用这个标识;如果设置为 false,则会使用系统的主机名。一般情况下,建议将其设置为 false,除非有特殊需求。

    HELO_HOSTNAME:
    ; 这个选项用于指定自定义的主机名,用于在 SMTP 会话开始时发送 HELO 或 EHLO 命令时使用。如果 DISABLE_HELO 被设置为 true,那么这个选项就不会起作用。如果需要自定义 HELO 操作中使用的主机名,就需要设置这个选项。一般情况下,如果没有特殊需求,可以将其保持为空或者与系统的实际主机名一致。
    在这里插入图片描述

    天坑 在[mailer] 里边直接配置ENABLED = true是不生效的,结果就是茹茹

    在这里插入图片描述

    一定一定要配置到[mailer][email]里边,邮件配置完毕,务必重启gogs!务必重启gogs!务必重启gogs!

    [mailer]
    ;ENABLED = true  ;注释掉
    [email]
    ENABLED = true
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在这里插入图片描述

    按照以上配置邮件,则可以正常使用。如果是gmail的话,还需要进行授权。

    错误描述:Gmail 发送返回 Error 534: Please log in via your web browser and then try again

    可能原因:这是因为 Google 不信任您的服务器导致的。

    解决方案:

    访问 https://accounts.google.com 并登录。

    访问 https://accounts.google.com/DisplayUnlockCaptcha 单击 continue。

    重试发送。

    第二个问题 解决gogs勾选“使用选定的文件和模板初始化仓库”报错500

    An error has occurred : initRepository: initRepoCommit: git push: warning: push.default 未设置,它的默认值将会在 Git 2.0'matching' 修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯, 进行如下设置: git config --global push.default matching 若要不再显示本信息并从现在开始采用新的使用习惯,设置: git config --global push.default simple 参见 'git help config' 并查找 'push.default' 以获取更多信息。 ('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git, 为保持兼容,请用 'current' 代替 'simple' 模式) No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'master'. fatal: The remote end hung up unexpectedly error: 无法推送一些引用到 '/git/gogs-repositories/zero/create_new_git.git'
    
    Application Version: 0.13.0
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    这一段的意思很明确,如果意思git版本小于2.0则 ‘matching’ 修改为 ‘simple’,反之则是小于2.0版本的我们需要执行git config --global push.default matching即可,我执行了,gogs重启了,结果没有毛用,依旧报错。废话不多,直接上思路及解决方法。【git小于2.0版本的有设置成功的欢迎留言/私信交流】

    问题排查

    第一:先查看git版本

    git --version
    
    • 1

    如果git小于2.0版本,不要挣扎了,直接升级git版本。以下为升级的全部过程,这里我升级的2.9.5版本 _ 升就升到最新

    git的官网下载链接 点此下载git

    在这里插入图片描述

    第一步 安装依赖,这里一行一行的写,方便各位码友复制也方便各位码友理解

    yum groupinstall "Development Tools"  -y  # 安装Development Tools包工具
    
    • 1
    yum install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel curl-devel  libcurl-devel expat-devel  perl-ExtUtils-MakeMaker -y 
    
    • 1

    第二步 下载git

    wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz --no-check-certificate   #可以不用  --no-check-certificatec 如果报错错误: 无法验证 www.kernel.org 的由 “/C=US/O=Let's Encrypt/CN=R3” 颁发的证书:颁发的证书已经过期。要以不安全的方式连接至 www.kernel.org,  就加上  个人建议直接加上个
    
    • 1

    第三步 解压git包 并进入git文件

    tar -zxf git-2.9.5.tar.gz   && cd git-2.9.5
    
    • 1

    第四步 进行编译 这里将git安装到/usr/local/git目录中

    make prefix=/usr/local all 
    
    • 1

    在这里插入图片描述

    如果没有报错,直接进行安装即可
    make prefix=/usr/local install
    
    • 1

    在这里插入图片描述

    第五步 如上图则表示安装成功,查看git版本是否为2.9.5

    git --version
    
    • 1

    第六步 非常豪横的执行设置simple

    git config --global push.default simple
    
    • 1

    设置完毕之后查看是否设置成功

    git config --list
    
    • 1

    在这里插入图片描述

    如果则表示设置成功。

    第七步 将gogs进行重启,以下为配置server服务的重启方式

    systemctl restart gogs
    
    • 1

    第八步 查看gogs的运行状态

    systemctl status gogs
    
    • 1

    在这里插入图片描述

    到这里就彻底OK了,打开gogs新增一个试试

    在这里插入图片描述

    在这里插入图片描述

    截止到此 gogs勾选“使用选定的文件和模板初始化仓库”报错500彻底解决啦。

    在多讲一下,如何更换gogs的模板,这里只讲操作流程,自行实践

    第一步 将源码克隆下来,建议放到/opt目录下,你可以随便放,但是一定一定一定不要放到gogs目录中

    git clone  https://github.com/gogs/gogs.git gogs
    
    • 1

    克隆完毕之后找到templates 这里边就是页面源文件

    在这里插入图片描述
    在这里插入图片描述
    想要修改那个页面,就把哪个页面的文件夹复制过去。
    在这里插入图片描述

    看官网介绍,在gogs的/custom目录下建立一个templates目录

    在这里插入图片描述

    如果需要修改静态文件,如icon图标,logo等,则查看下图

    在这里插入图片描述

    写在最后,模板文件是.tmpl结尾,前端小伙伴肯定非常熟悉,不熟悉的就把它当做html写即可。

    在这里插入图片描述

    ***

    如果各位码友在实际操作中遇到任何问题,欢迎留言或私信交流。


  • 相关阅读:
    记录 mybatis plus QuerWapper使用 FIND_IN_SET
    软件测试面试题:说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试?
    牛客题目——判断一个链表是否为回文结构、数据流中的中位数、PriorityQueue的常用方法
    Android Studio代码无法自动补全
    目标检测YOLO实战应用案例100讲-基于无人机的轻量化目标检测系统设计(续)
    YOLO系列简单汇总【个人笔记】
    记一次 .NET 某电力系统 内存暴涨分析
    win10通过命令修改系统只读文件
    Android 系统文件浏览器
    Java数据结构之哈希表
  • 原文地址:https://blog.csdn.net/weixin_44213550/article/details/136303632