annotate Mercurial/doc/Install-Mercurial-on-Ubuntu.md @ 5:19a4c3672796 default tip

RE:重新新增Cgit配置文件
author Franklin Schmit <meokcin@gmail.com>
date Wed, 04 Sep 2024 08:15:23 +0800
parents edd512324c03
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
1 # Ubuntu下 apache2 和 hgweb 的安装
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
2 ## 安装
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
3 1. 安装 apache2、 hgweb
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
4 ```shell
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
5 sudo apt install apache2 mercurial libapache2-mod-wsgi-py3 apache2-utils
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
6 ```
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
7 2. 验证环境
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
8 ```shell
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
9 # 启用apache2
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
10 sudo systemctl start apache2
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
11 sudo systemctl enable apache2
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
12
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
13 # 查看HG
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
14 hg --version
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
15 ```
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
16 3. 创建文件夹和默认仓库
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
17 ```shell
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
18 sudo mkdir /var/hg
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
19 sudo hg init /var/hg/myrepo
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
20
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
21 #设置文件夹权限
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
22 sudo chown -R www-data:www-data /var/hg
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
23 sudo chmod -R 755 /var/hg
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
24 ```
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
25 4. 创建 ```/var/hg/hgweb.config``` 文件
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
26 ```shell
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
27 [web]
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
28 allow_push = *
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
29 push_ssl = true
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
30 allow_archive = gz, zip, bz2
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
31
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
32 [paths]
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
33 / = /var/hg/*
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
34 ```
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
35
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
36 5. 创建 ``` /var/hg/hgweb.wsgi``` 文件
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
37 ```shell
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
38 import sys
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
39 import os
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
40 from mercurial import demandimport
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
41 demandimport.enable()
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
42
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
43 # 设置编码为UTF-8
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
44 if not isinstance(os.environ.get('PYTHONIOENCODING'), str):
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
45 os.environ['PYTHONIOENCODING'] = 'utf-8'
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
46
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
47 from mercurial.hgweb.hgwebdir_mod import hgwebdir
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
48
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
49 application = hgwebdir(b'/var/hg/hgweb.config')
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
50 ```
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
51 6. 创建 ```/etc/apache2/sites-available/hgweb.conf```
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
52 ```shell
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
53 <VirtualHost *:80>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
54 ServerName repo.nnsui.com
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
55
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
56 RewriteEngine On
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
57 RewriteCond %{HTTPS} !=on
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
58 RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
59 </VirtualHost>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
60
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
61 <VirtualHost *:443>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
62 ServerName repo.nnsui.com
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
63
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
64 SSLEngine On
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
65 SSLCertificateFile /etc/apache2/cert/nnsui.com.pem
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
66 SSLCertificateKeyFile /etc/apache2/cert/nnsui.com.key
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
67
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
68 WSGIScriptAlias / /var/hg/hgweb.wsgi
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
69 WSGIDaemonProcess hgweb user=www-data group=www-data processes=2 threads=15
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
70 WSGIProcessGroup hgweb
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
71
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
72 <Directory /var/hg>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
73 Require all granted
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
74 </Directory>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
75
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
76 <Location "/">
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
77 AuthType Basic
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
78 AuthName "Restricted Access"
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
79 AuthUserFile /etc/apache2/hgweb.htpasswd
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
80 Require valid-user
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
81 <Limit GET>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
82 Require all granted
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
83 </Limit>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
84 <LimitExcept GET>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
85 Require valid-user
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
86 </LimitExcept>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
87 </Location>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
88 </VirtualHost>
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
89 ```
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
90
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
91 7. 启用apache2模块
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
92 ```shell
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
93 sudo a2enmod wsgi
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
94 sudo a2enmod ssl
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
95 sudo a2enmod rewrite
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
96 ```
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
97 8. 启动!
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
98 ```shell
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
99 # 检查配置
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
100 sudo apachectl configtest
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
101 # 重启
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
102 sudo a2ensite hgweb
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
103
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
104 sudo systemctl restart apache2
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
105 ```
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
106 9. 创建 ```htpasswd``` 文件并添加用户
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
107 ```shell
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
108 sudo htpasswd -c /etc/apache2/hgweb.htpasswd pluto
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
109 ```
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
110
edd512324c03 Add:Mercurial Files
Pluto <meokcin@gmail.com>
parents:
diff changeset
111 10.
备案号:苏ICP备2024087954号-2 | 渝公网安备50010402001513