Linux(CentOS)环境搭建Gitea做私有的git服务器
基本分三大步骤,1.安装Gitea,2.安装MySQL(或者SQlite等其中一款数据库)3.安装Git。初始化配置这里,用户名选择之前创建的gitea,数据库选择gitea数据库,密码gitea123同理。注意:配置文件中,Gitea的目录配置,以及使用用户不能为user,修改之前创建的为gitea。如果看到mysqld的服务,并且3,4,5都是on的话则成功,如果是off,则执行。3.gite
基本分三大步骤,1.安装Gitea,2.安装MySQL(或者SQlite等其中一款数据库)3.安装Git
一.Gitea
Gitea文档地址:文档 - Docs (gitea.io)
Gitea的官网:https://gitea.io
Gitea最新版本的下载地址:https://dl.gitea.io/gitea
1.登录linux系统,创建gitea普通用户
useradd gitea
设置密码
passwd gitea
2.修改用户附属组
usermod -a -G sudo gitea
【======================================================================】
这里可能会遇到报错: usermod: “sudo”组不存在
解决方法如下:
1.以 root 用户登录: 确保你已经以 root 用户或者拥有足够权限的用户登录到系统上。
2.编辑 sudoers 文件
sudo visudo
3.添加授权行: 在 sudoers 文件中,可以添加一行来授权一个用户或用户组使用 sudo
gitea ALL=(ALL:ALL) ALL
如图所示:
4.然后保存,重新登录即可。
【======================================================================】
3.root用户登录,gitea安装在/opt目录下, 所以,先进入/opt目录
cd /opt
4. 在opt目录下创建一个名为gitea的新目录
mkdir gitea
5.修改gitea目录的权限,修改为可读可写可执行
chmod 777 ./gitea/
6. 进入gitea目录
cd /opt/gitea
7.下载Gitea
wget -O gitea https://dl.gitea.io/gitea/1.22.1/gitea-1.22.1-linux-amd64
8.修改刚下载好的gitea文件,使其能够执行
sudo chmod +x gitea
9.返回/usr/local目录
cd /usr/local/
10.安装mysql作为数据库(使用root用户执行命令)
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-el7-x86_64.tar
11.拆分tar包
tar -xvf mysql-8.0.30-el7-x86_64.tar
12.解压安装包
tar -zxvf mysql-8.0.30-el7-x86_64.tar.gz
13.重命名解压后的文件为mysql
mv mysql-8.0.30-el7-x86_64/ mysql
14.创建存储数据文件
在mysql文件夹中创建data文件夹
mkdir mysql/data
15.设置用户组并赋权
创建用户组
groupadd mysql
创建用户
-r:创建系统用户
-g:指定用户组
useradd -r -g mysql mysql
更改属主和数组
chown -R mysql:mysql /usr/local/mysql/
更改权限
chmod -R 755 /usr/local/mysql/
16.初始化MySQL之前,先进入MySQL的bin目录
cd /usr/local/mysql/bin/
17.初始化
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
初始化完成后会打印一个随机密码,需要记一下,拷贝到txt临时存储,后面会用到。
18.配置参数文件
vi /etc/my.cnf
配置文件修可以根据自己需要设置:
[mysqld]
basedir=/opt/mysql
datadir=/opt/mysql/data
pid-file=/opt/mysql/data/mysqld.pid
log-error=/opt/mysql/data/mysqld.err
socket=/tmp/mysql.sock
或者:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/mysqld.log
pid-file = /usr/local/mysql/mysqld.pid
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
lower_case_table_names = 1 # 不区分大小写
sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO'
default-time_zone = '+8:00'
或者:
[client]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'
port = 3306
socket = /usr/local/mysql/data/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
datadir = /usr/local/mysql/data
#lower_case_table_names=1
#如果要设置lower_case_table_names可以在初始化里面设置 ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --lower_case_table_names=1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
19.配置后修改 /etc/my.cnf 的权限为777
chmod 777 /etc/my.cnf
20.启动mysql
/usr/local/mysql/support-files/mysql.server start
21.设置软连接,并重启MySQL
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/mysql.sock /var/mysql.sock
service mysql restart
22.登录并更改密码
[root@localhost bin]# mysql -uroot -p
Enter password: 输入初始化随机密码
进入之后修改密码
alter user 'root'@'localhost' identified by '123456';
或者使用另一种方式
set password for root@localhost = '123456';
都可以
23.开放远程连接(在mysql中执行)
use mysql;
update user set user.Host='%' where user.User='root';
刷新权限
flush privileges;
24.MySQL启动和停止
启动
service mysql start
或者
systemctl start mysql
停止
service mysql stop
systemctl stop mysql
重启
service mysql restart
systemctl restart mysql
查看状态
service mysql status
systemctl status mysql
25.设置开机自启动(可选)
将服务文件拷贝到 /etc/init.d下,并重命名为mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
赋予可执行权限
chmod +x /etc/init.d/mysqld
添加服务
chkconfig --add mysqld
显示服务列表
chkconfig --list
如果看到mysqld的服务,并且3,4,5都是on的话则成功,如果是off,则执行
chkconfig --level 345 mysqld on
重启(可选)
reboot
重启后查看mysql是否开机自启动
ps -ef|grep mysql
26.mysql安装成功,进入mysql
mysql -u root -p 123456
在数据库中首先创建一个名为gitea的用户
CREATE USER 'gitea' IDENTIFIED BY 'gitea123';
然后再创建giteadb的数据库
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
并为其授权
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';
刷新权限
FLUSH PRIVILEGES;
然后退出
exit
27.使用刚刚创建的用户连接数据库
mysql -u gitea -p gitea123
连接成功,说明配置成功。
28.安装Git
centos下,可以直接使用yum安装,所以
sudo yum install git
git安装完毕,接下来对gitea做服务
29.使用服务来启动Gitea
vi /usr/lib/systemd/system/gitea.service
写入
[Unit]
Description=gitea
[Service]
User=gitea
ExecStart=/opt/gitea/gitea
Restart=on-abort
[Install]
WantedBy=multi-user.target
注意:配置文件中,Gitea的目录配置,以及使用用户不能为user,修改之前创建的为gitea
30.重载daemon,让新的服务文件生效
systemctl daemon-reload
31.用systemctl来启动gitea
systemctl start gitea
32.设置开机启动
systemctl enable gitea
33.停止
systemctl stop gitea
34.查看状态
systemctl status gitea
启动成功,接下来去浏览器做初始化配置
35.浏览器打开ip:3000
初始化配置这里,用户名选择之前创建的gitea,数据库选择giteadb数据库,密码gitea123同理。
其他内容随意,然后点击安装。
等执行完毕之后,选择注册账号,第一个注册的账号为管理员。
关于Gitea的备份和数据转移:
- 项目代码备份
先切换到创建的gitea用户
su gitea
然后到去gitea安装路径,执行
./gitea dump
- 数据库备份
mysqldump -u gitea -p giteadb > backup.sql
输入密码后,在当前目录会有两个文件
分别是gitea-db-bk.sql 和gitea-dump-1724658223.zip
后续下载这两份文件在备份服务器上人工恢复,即可备份。
- 备份后在别的服务器还原
如果遇到mysqldump命令找不到
解决方案如下:
[root@host-10-1-1-103 data]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/local/mysql /usr/share/mysql
[root@host-10-1-1-103 data]# ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)