单宇科技 發表於 2020-2-29 10:55:00

CentOS安装Gitea教程

<h1 class="article-title">CentOS安装Gitea教程</h1>
<div class="meta"><span class="muted">&nbsp;</span></div>
<h2>简介</h2>
<p>Gitea是一个极易安装,运行非常快速,安装和使用体验良好的自建Git服务。采用Go作为后端语言,这使得只要生成一个可执行程序即可。并且他还支持跨平台,支持Linux、macOS和Windows以及各种架构,除了x86,amd64,还包括ARM和 PowerPC。</p>
<p>Github地址:https://github.com/go-gitea/gitea</p>
<h2>功能</h2>
<ul>
<li>支持活动时间线</li>
<li>支持SSH以及HTTP/HTTPS协议</li>
<li>支持SMTP、LDAP和反向代理的用户认证</li>
<li>支持反向代理子路径</li>
<li>支持用户、组织和仓库管理系统</li>
<li>支持添加和删除仓库协作者</li>
<li>支持仓库和组织级别Web钩子(包括Slack集成)</li>
<li>支持仓库Git钩子和部署密钥</li>
<li>支持仓库工单(Issue)、合并请求(Pull Request)以及Wiki</li>
<li>支持迁移和镜像仓库以及它的Wiki</li>
<li>支持在线编辑仓库文件和Wiki</li>
<li>支持自定义源的Gravatar和Federated Avatar</li>
<li>支持邮件服务</li>
<li>支持后台管理面板</li>
<li>支持MySQL、PostgreSQL、SQLite3、MSSQL和TiDB(实验性支持)数据库</li>
<li>支持多语言本地化(21种语言)</li>
</ul>
<h2>二进制安装</h2>
<h3>1、安装MySQL数据库</h3>
<p>手动安装数据库方法不在这里说明,很简单。恰巧我这个站长安了宝塔服务器管理面板。啥啥套件都一键安装了。</p>
<p>宝塔可视化服务器面板安装。</p>
<p>#Centos系统<br>yum install -y wget &amp;&amp; wget -O install.sh http://download.bt.cn/install/install.sh &amp;&amp; sh install.sh</p>
<p>#Ubuntu系统<br>wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh &amp;&amp; sudo bash install.sh</p>
<p>#Debian系统<br>wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh &amp;&amp; bash install.sh</p>
<p>安装完成后,安装MySQL,至少5.7版本。</p>
<h3>2、安装Git</h3>
<p>先查看下内置的git版本,是否达到最新gitea的git版本要求。然后觉得是否升级。</p>
<p>#Debian和Ubuntu系统<br>apt-get -y install git</p>
<p>#CentOS系统<br>yum -y install git</p>
<div id="crayon-5bc9cb3d6d4ec797650504-1" class="crayon-line"><span class="crayon-p">#添加Git用户</span></div>
<div id="crayon-5bc9cb3d6d4ec797650504-2" class="crayon-line"><span class="crayon-e">groupadd&nbsp;<span class="crayon-e">git</span></span></div>
<div id="crayon-5bc9cb3d6d4ec797650504-3" class="crayon-line"><span class="crayon-e">useradd&nbsp;<span class="crayon-v">git&nbsp;<span class="crayon-o">-<span class="crayon-i">g&nbsp;<span class="crayon-v">git&nbsp;<span class="crayon-o">-<span class="crayon-v">s&nbsp;<span class="crayon-o">/<span class="crayon-v">bin<span class="crayon-o">/<span class="crayon-t">false</span></span></span></span></span></span></span></span></span></span></span></div>
<h3>3、安装Gitea</h3>
<div id="crayon-5bc9cb3d6d4ec797650504-12" class="crayon-line"><span class="crayon-p">创建目录</span></div>
<div id="crayon-5bc9cb3d6d4ec797650504-13" class="crayon-line"><span class="crayon-v">mkdir&nbsp;<span class="crayon-o">/<span class="crayon-v">home<span class="crayon-o">/<span class="crayon-v">git<span class="crayon-o">/<span class="crayon-v">gitea&nbsp;<span class="crayon-o">/<span class="crayon-t">var<span class="crayon-o">/<span class="crayon-v">log<span class="crayon-o">/<span class="crayon-v">gitea</span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div id="crayon-5bc9cb3d6d4ec797650504-14" class="crayon-line"><span class="crayon-p">获取程序</span></div>
<div class="crayon-line">最新版本下载地址:https://dl.gitea.io/gitea。</div>
<div class="crayon-line">wget &nbsp;&nbsp;https://dl.gitea.io/gitea/1.6.0-rc1/gitea-1.6.0-rc1-linux-amd64&nbsp;&nbsp;-O /home/git/gitea/gitea<br>添加执行权限<br>chmod +x /home/git/gitea/gitea<br>修改所有人<br>chown -R git:git /home/git/gitea /var/log/gitea</div>
<div>运行项目</div>
<div>./gitea web</div>
<div>接下来打开http://ip:3000即可</div>
<h2>常见问题</h2>
<p>1、进入ip:3000打不开网站<br>打不开需要关闭防火墙,或者打开对应的3000端口。</p>
<p>CentOS 7<br>systemctl stop firewalld.service<br>systemctl disable firewalld.service</p>
<p>其它系统<br>iptables -I INPUT -p tcp --dport 3000 -j ACCEPT<br>service iptables save<br>service iptables restart</p>
<p>2、保持程序一直运行<br>首先新建编辑下面这个文件<br>vi /etc/systemd/system/gitea.service</p>
<p>输入下面配置文件</p>
<div id="crayon-5e59cc200bc6d117311961" class="crayon-syntax crayon-theme-sublime-text crayon-font-monaco crayon-os-pc print-yes notranslate crayon-wrapped" data-settings=" minimize scroll-mouseover wrap">
<div class="crayon-plain-wrap">&nbsp;</div>
<div class="crayon-main">
<table class="crayon-table">
<tbody>
<tr class="crayon-row">
<td class="crayon-nums " data-settings="show">
<div class="crayon-nums-content">
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-1">1</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-2">2</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-3">3</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-4">4</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-5">5</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-6">6</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-7">7</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-8">8</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-9">9</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-10">10</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-11">11</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-12">12</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-13">13</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-14">14</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-15">15</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-16">16</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-17">17</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-18">18</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-19">19</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-20">20</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-21">21</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-22">22</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-23">23</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-24">24</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-25">25</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5e59cc200bc6d117311961-26">26</div>
<div class="crayon-num" data-line="crayon-5e59cc200bc6d117311961-27">27</div>

</div>

</td>
<td class="crayon-code">
<div class="crayon-pre">
<div id="crayon-5e59cc200bc6d117311961-1" class="crayon-line"><span class="crayon-sy">[<span class="crayon-v">Unit<span class="crayon-sy">]</span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-2" class="crayon-line crayon-striped-line"><span class="crayon-v">Description<span class="crayon-o">=<span class="crayon-e">Gitea<span class="crayon-h"> <span class="crayon-sy">(<span class="crayon-e">Git <span class="crayon-i">with<span class="crayon-h"> <span class="crayon-i">a<span class="crayon-h"> <span class="crayon-e">cup <span class="crayon-e">of <span class="crayon-v">tea<span class="crayon-sy">)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-3" class="crayon-line"><span class="crayon-v">After<span class="crayon-o">=<span class="crayon-v">syslog<span class="crayon-e">.target</span></span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-4" class="crayon-line crayon-striped-line"><span class="crayon-v">After<span class="crayon-o">=<span class="crayon-v">network<span class="crayon-e">.target</span></span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-5" class="crayon-line"><span class="crayon-v">After<span class="crayon-o">=<span class="crayon-v">mysqld<span class="crayon-e">.service</span></span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-6" class="crayon-line crayon-striped-line"><span class="crayon-c">#After=postgresql.service</span></div>
<div id="crayon-5e59cc200bc6d117311961-7" class="crayon-line"><span class="crayon-c">#After=memcached.service</span></div>
<div id="crayon-5e59cc200bc6d117311961-8" class="crayon-line crayon-striped-line"><span class="crayon-c">#After=redis.service</span></div>
<div id="crayon-5e59cc200bc6d117311961-9" class="crayon-line">&nbsp;</div>
<div id="crayon-5e59cc200bc6d117311961-10" class="crayon-line crayon-striped-line"><span class="crayon-sy">[<span class="crayon-v">Service<span class="crayon-sy">]</span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-11" class="crayon-line"><span class="crayon-c"># Modify these two values and uncomment them if you have</span></div>
<div id="crayon-5e59cc200bc6d117311961-12" class="crayon-line crayon-striped-line"><span class="crayon-c"># repos with lots of files and get an HTTP error 500 because</span></div>
<div id="crayon-5e59cc200bc6d117311961-13" class="crayon-line"><span class="crayon-c"># of that</span></div>
<div id="crayon-5e59cc200bc6d117311961-14" class="crayon-line crayon-striped-line"><span class="crayon-c">###</span></div>
<div id="crayon-5e59cc200bc6d117311961-15" class="crayon-line"><span class="crayon-c">#LimitMEMLOCK=infinity</span></div>
<div id="crayon-5e59cc200bc6d117311961-16" class="crayon-line crayon-striped-line"><span class="crayon-c">#LimitNOFILE=65535</span></div>
<div id="crayon-5e59cc200bc6d117311961-17" class="crayon-line"><span class="crayon-v">RestartSec<span class="crayon-o">=<span class="crayon-cn">2s</span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-18" class="crayon-line crayon-striped-line"><span class="crayon-r">Type<span class="crayon-o">=<span class="crayon-e">simple</span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-19" class="crayon-line"><span class="crayon-v">User<span class="crayon-o">=<span class="crayon-e">git</span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-20" class="crayon-line crayon-striped-line"><span class="crayon-v">Group<span class="crayon-o">=<span class="crayon-e">git</span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-21" class="crayon-line"><span class="crayon-v">WorkingDirectory<span class="crayon-o">=<span class="crayon-o">/<span class="crayon-v">home<span class="crayon-o">/<span class="crayon-v">git<span class="crayon-o">/<span class="crayon-e">gitea</span></span></span></span></span></span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-22" class="crayon-line crayon-striped-line"><span class="crayon-v">ExecStart<span class="crayon-o">=<span class="crayon-o">/<span class="crayon-v">home<span class="crayon-o">/<span class="crayon-v">git<span class="crayon-o">/<span class="crayon-v">gitea<span class="crayon-o">/<span class="crayon-e">gitea <span class="crayon-e">web</span></span></span></span></span></span></span></span></span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-23" class="crayon-line"><span class="crayon-v">Restart<span class="crayon-o">=<span class="crayon-e">always</span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-24" class="crayon-line crayon-striped-line"><span class="crayon-v">Environment<span class="crayon-o">=<span class="crayon-v">USER<span class="crayon-o">=<span class="crayon-e">git <span class="crayon-v">HOME<span class="crayon-o">=<span class="crayon-o">/<span class="crayon-v">home<span class="crayon-o">/<span class="crayon-v">git<span class="crayon-o">/<span class="crayon-i">gitea</span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-25" class="crayon-line">&nbsp;</div>
<div id="crayon-5e59cc200bc6d117311961-26" class="crayon-line crayon-striped-line"><span class="crayon-sy">[<span class="crayon-v">Install<span class="crayon-sy">]</span></span></span></div>
<div id="crayon-5e59cc200bc6d117311961-27" class="crayon-line"><span class="crayon-v">WantedBy<span class="crayon-o">=<span class="crayon-v">multi<span class="crayon-o">-<span class="crayon-v">user<span class="crayon-e">.target</span></span></span></span></span></span></div>

</div>

</td>

</tr>

</tbody>

</table>

</div>

</div>
<p>之后执行<br>systemctl daemon-reload<br>sudo systemctl start gitea</p>
<p>如果服务不能启动,你要注意的是下面几点(systemctl status giea查看服务状态,journalctl -b 0 -u gitea查看日志)</p>
<p>首先你的gitea放的目录问题,因为使用git用户启动的服务,所以你的gitea所在目录肯定要让git用户有访问权限,所以root目录下是不可以的<br>之后上面的配置参数你也要按照自己的环境目录来写,不要复制粘贴了,After=mysqld.service表示在mysql服务启动之后再启动gitea服务,所以这个根据你的数据库来选择去掉哪个注释</p>
<h2>服务操作相关命令</h2>
<p>查看服务列表与状态</p>
<p>systemctl list-units --type=service</p>
<p>启动一个服务:</p>
<p>systemctl start postfix.service</p>
<p>关闭一个服务:</p>
<p>systemctl stop postfix.service</p>
<p>重启一个服务:</p>
<p>systemctl restart postfix.service</p>
<p>显示一个服务的状态:</p>
<p>systemctl status postfix.service</p>
<p>在开机时启用一个服务:systemctl enable postfix.service</p>
<p>在开机时禁用一个服务:systemctl disable postfix.service</p>
<p>查看服务是否开机启动: systemctl is-enabled postfix.service</p>
<p>查看已启动的服务列表: systemctl list-unit-files | grep enabled</p>
<p>查看启动失败的服务列表: systemctl --failed</p>
<p>转载请注明:天狐博客&nbsp;»&nbsp;CentOS安装Gitea教程</p><br><br>
来源:https://www.cnblogs.com/u0mo5/p/12381850.html
頁: [1]
查看完整版本: CentOS安装Gitea教程