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

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

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

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

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

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

bash 复制代码
vim XX/gogs/custom/conf/app.ini  ## gogs所在的真实路径

将以下代码复制到mailer下

bash 复制代码
[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

;对于 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!

bash 复制代码
[mailer]
;ENABLED = true  ;注释掉
[email]
ENABLED = true


按照以上配置邮件,则可以正常使用。如果是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

bash 复制代码
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

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

问题排查

第一:先查看git版本

bash 复制代码
git --version

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

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

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

bash 复制代码
yum groupinstall "Development Tools"  -y  # 安装Development Tools包工具
bash 复制代码
yum install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel curl-devel  libcurl-devel expat-devel  perl-ExtUtils-MakeMaker -y 

第二步 下载git

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

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

bash 复制代码
tar -zxf git-2.9.5.tar.gz   && cd git-2.9.5

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

bash 复制代码
make prefix=/usr/local all 
如果没有报错,直接进行安装即可
bash 复制代码
make prefix=/usr/local install

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

bash 复制代码
git --version

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

bash 复制代码
git config --global push.default simple

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

bash 复制代码
git config --list

如果则表示设置成功。

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

bash 复制代码
systemctl restart gogs

第八步 查看gogs的运行状态

bash 复制代码
systemctl status gogs

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

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

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

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

bash 复制代码
git clone  https://github.com/gogs/gogs.git gogs

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


想要修改那个页面,就把哪个页面的文件夹复制过去。

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

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

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

***

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


相关推荐
A洛13 分钟前
Vercel 设置自动部署 GitHub 项目
github·webhooks·自动部署·vercel
油泼辣子多加1 小时前
2024年11月22日Github流行趋势
github
Stara051121 小时前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
不能只会打代码1 天前
大学课程项目中的记忆深刻 Bug —— 一次意外的数组越界
java·github·intellij-idea·话题博客
Web极客码2 天前
如何修复WordPress卡在维护模式
服务器·网络·github
油泼辣子多加2 天前
2024年11月17日Github流行趋势
github
海里有太阳2 天前
gitHub常用操作
github
量子孤岛2 天前
建立独一无二的GitHub Profile
github
小小宇宙中微子2 天前
QDUOJ(青岛大学在线评测系统)
github
Smilejudy2 天前
从 ES Kafka Mongodb Restful ... 取到 json 之后
后端·github