comparison Mercurial/doc/Install-Mercurial-on-Ubuntu.md @ 0:edd512324c03

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