【Git】linux搭建Gitea配置mysql数据库

ops/2025/3/10 20:11:40/

WindowsServer搭建内网Gitea【中文更方便使用】

1. 安装Gitea

# 下载
wget https://dl.gitea.io/gitea/1.23.5/gitea-1.23.5-linux-amd64

2. 创建用户

# 创建 gitea 用户:这个命令的作用是创建一个名为 git 的系统用户,该用户使用 /bin/bash 作为默认 shell,添加了注释信息 Git Version Control,并且为其创建了主目录 /home/git
sudo adduser --system --shell /bin/bash --comment 'Git Version Control' --create-home --home-dir /home/git git
# 创建 Gitea 数据目录,/opt/gitea
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
# sudo mkdir -p /opt/gitea/lib/gitea/{custom,data,indexers,public,log}
# 设置目录权限,sudo chown -R git:git /opt/gitea,sudo chmod -R 777 /opt/gitea
sudo chown -R git:git /var/lib/gitea
sudo chmod -R 777 /var/lib/gitea
# 创建配置文件目录。
sudo mkdir -p /etc/gitea
sudo chown git:git /etc/gitea
sudo chmod 777 /etc/gitea
# 将下载文件,移动到git目录
mv gitea-1.23.5-linux-amd64  /opt/gitea
# 应用执行权限:
sudo chmod +x gitea-1.23.5-linux-amd64

在这里插入图片描述

3. 配置 Gitea 服务

创建一个 Systemd 服务文件,用于管理 Gitea 服务:

sudo tee /etc/systemd/system/gitea.service <<EOF
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mysqld.service[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea[Install]
WantedBy=multi-user.target
EOF

4. 配置防火墙

开放 Gitea 默认使用的端口(3000):

# 开放 3000 端口
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
# 重新加载防火墙规则
sudo firewall-cmd --reload

在这里插入图片描述

5.创建 Gitea 配置文件【如果没有root权限,或者权限不足,这一步要注意了,指定路径要指定在有权限目录】

创建 app.ini 配置文件,并进行数据库等相关配置:widnows在git\custom\conf目录

sudo tee /etc/gitea/app.ini <<EOF
APP_NAME = Gitea: Git with a cup of tea
RUN_MODE = prod[server]
PROTOCOL = http
DOMAIN = 10.1.0.40
HTTP_PORT = 3000
ROOT_URL = http://10.1.0.40:3000/[database]
DB_TYPE  = mysql
HOST     = 127.0.0.1:3306
NAME     = gitea
USER     = root
PASSWD   = root123
SSL_MODE = disable
PATH     = /var/lib/gitea/data/gitea.db[repository]
ROOT = /var/lib/gitea/data/gitea-repositories[session]
PROVIDER = file[i18n]
LANGS = en-US,zh-CN
NAMES = English,简体中文
DEFAULT_LANG = zh-CN[log]
MODE      = file
LEVEL     = Info
ROOT_PATH = /var/lib/gitea/log
EOF

6. 启动 Gitea 服务

# 重新加载 Systemd 服务配置
sudo systemctl daemon-reload
# 启动 Gitea 服务
sudo systemctl start gitea
# 设置 Gitea 服务开机自启
sudo systemctl enable gitea
  • 如果启动不起来,或者git版本过低,看第 8,git建议2.0以上!

7. 完成安装

开浏览器,访问 http://your_domain_or_ip:3000,按照页面提示完成 Gitea 的初始化配置,包括管理员账号设置等。

8.如果报错版本不一致或者过低

Gitea数据库设置无效: migrate: installed git version “1.8.3.1” is not supported, G

卸载原来的,重新安装新版git

  • 安装依赖

在升级 Git 之前,需要安装一些编译和构建 Git 所需的依赖包:

sudo yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
sudo yum install -y gcc perl-ExtUtils-MakeMaker
  • 卸载旧版本的 Git

如果你之前安装的 Git 版本较低,可以先将其卸载:

sudo yum remove -y git
  • 下载并解压 Git 源码

从 Git 官方的 GitHub 仓库下载最新稳定版本的源码压缩包,并解压:


cd /opt
# 下载 Git 源码压缩包,这里以 2.8.3 版本为例,你可以根据需要更换版本,可以把安装包移动到git目录
wget https://github.com/git/git/archive/v2.8.3.tar.gz
# 解压压缩包
tar -zxf v2.8.3.tar.gz
cd git-2.8.3
  • 编译和安装 Git

在解压后的源码目录中,依次执行以下命令进行编译和安装:

# 配置编译选项
make configure
./configure --prefix=/usr/local/git
# 编译 Git
make all
# 安装 Git
sudo make install
  • 验证 Git 版本

安装完成后,验证 Git 的版本是否已经更新:重新登录新开个窗口!!!,配置环境变量,或者通过:

git --version
# 如果不展示,可以通过下面命令指定
ln -sv /usr/local/git/bin/git  /usr/bin/

确保输出的版本号是你刚刚安装的新版本(如 `git version 2.8.3`)。- 重启 Gitea 服务更新 Git 版本后,重启 Gitea 服务使更改生效:```bash
sudo systemctl restart gitea
  • 重新进行 Gitea 数据库设置

完成以上大概率99.9%就成功了,也有可能小伙伴没有/etc/,/usr/local/bin,/var/lib权限,看我上面提示!

  • select * from user;表中is_admin=1为管理员。

http://www.ppmy.cn/ops/164743.html

相关文章

课题推荐——无人机在UWB环境下基于TOA/TDOA/AOA的室内定位与精度对比

随着无人机在工业检测、仓储物流、应急救援等室内场景的广泛应用&#xff0c;高精度室内定位技术成为关键支撑。超宽带&#xff08;UWB&#xff09;技术凭借其高时间分辨率、强抗多径能力等优势&#xff0c;成为室内定位的主流方案。然而&#xff0c;不同的定位方法&#xff08…

可狱可囚的爬虫系列课程 19:静态页面和动态页面之分

在爬虫开发中&#xff0c;静态页面和动态页面的核心区别在于数据的生成和加载方式&#xff0c;理解两者的差异直接影响爬虫技术选型和数据抓取策略&#xff1b;掌握静态/动态页面的区别&#xff0c;可显著提升爬虫效率和成功率。 一、静态页面&#xff08;Static Page&#xf…

五子棋对弈

1.五子棋对弈 - 蓝桥云课 问题描述 “在五子棋的对弈中&#xff0c;友谊的小船说翻就翻&#xff1f;”不&#xff01;对小蓝和小桥来说&#xff0c;五子棋不仅是棋盘上的较量&#xff0c;更是心与心之间的沟通。这两位挚友秉承着“友谊第一&#xff0c;比赛第二”的宗旨&…

Halcon:HObject与opencv:Mat互转

Halcon:HObject与opencv:Mat互转 1. Mat转HObject2. HObject转Mat 1. Mat转HObject void MatToHObject(Mat mat, out HObject hObj){int width mat.Width;int height mat.Height;HTuple type, pointer, widthTuple, heightTuple;if (mat.Channels() 1){// 单通道图像&#x…

分布式锁—4.Redisson的联锁和红锁一

大纲 1.Redisson联锁MultiLock概述 2.Redisson联锁MultiLock的加锁与释放锁 3.Redisson红锁RedLock的算法原理 4.Redisson红锁RedLock的源码分析 1.Redisson联锁MultiLock概述 (1)MultiLock的简介 (2)MultiLock的使用 (3)MultiLock的初始化 (1)MultiLock的简介 一.一次…

解析 SQL,就用 sqlparse!

文章目录 解析 SQL&#xff0c;就用 sqlparse&#xff01;一、背景&#xff1a;为什么你需要 sqlparse&#xff1f;二、什么是 sqlparse&#xff1f;三、如何安装 sqlparse&#xff1f;四、简单易用的库函数1\. parse(sql)2\. format(sql, **options)3\. split(sql)4\. get_typ…

Android笔记:android 6.0 TextView对state_selected失效

在 Android 6.0 系统中&#xff0c;TextView 的 state_selected 状态失效可能由多种原因导致&#xff0c;下面为你详细分析原因并提供相应的解决办法。 原因分析 系统兼容性问题 Android 6.0 系统在处理视图状态和样式方面可能存在一些兼容性问题&#xff0c;导致 state_selec…

基于Spring Boot的扶贫助农系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…