Ubuntu18.04 Server安装Nginx+Git服务和独立的svn服务
安装Nginx+Git
需要安装的包有 nginx, fcgiwrap, git. 其中git在Ubuntu18.04 Server安装时已经默认安装了. 需要安装的是前两个
而fcgiwrap是在 universe 区域里面(找一个包时如果不确定是在那个区域, 可以在 https://packages.ubuntu.com/ 上面先查一下
默认的Ubuntu18.04 Server的 /etc/apt/source.list 内容是这样的
deb http://cn.archive.ubuntu.com/ubuntu bionic main
deb http://cn.archive.ubuntu.com/ubuntu bionic-security main
deb http://cn.archive.ubuntu.com/ubuntu bionic-updates main
需要在main后面加上universe, 否则apt install 会找不到 fcgiwrap
deb http://cn.archive.ubuntu.com/ubuntu bionic main universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-security main universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-updates main universe
然后执行 sudo apt update 后, 就可以通过 sudo apt install fcgiwrap安装了.
创建Git工作目录
这里将git工作目录放置到 /var/www/git , 将目录权限设置为 www-data (和nginx的worker一致)
cd /var/www/
sudo mkdir git
sudo chown -R www-data:www-data git/
cd git/
sudo mkdir sandbox.git
cd sandbox.git/
sudo git --bare init
sudo git update-server-info
sudo chown -R www-data:www-data .
在sandbox.git目录下, 设置目录和文件权限
# 设置目录为755
sudo find . -type d -exec chmod {} +
# 设置文件为644
sudo find . -type f -exec chmod {} +
配置Nginx
修改nginx默认的配置文件
# backup the default config
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default-bak
# Open the file for editing with the command:
sudo vi /etc/nginx/sites-available/default
在默认的 location / {} 后面, 增加下面的内容
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a .
try_files $uri $uri/ =;
}
#增加的内容
location ~ (/.*) {
client_max_body_size ; # Git pushes can be massive, prevent suddenly cut the connection
auth_basic "Git Login"; # For displaying
auth_basic_user_file "/var/www/git/htpasswd";
include /etc/nginx/fastcgi_params; # Include the default fastcgi configs
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; # Tells fastcgi to pass the request to the git http backend executable
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /var/www/git; # The location of all of your git repositories.
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param PATH_INFO $; # Takes the capture group from our location directive and gives git that.
fastcgi_pass unix:/var/run/fcgiwrap.socket; # Pass the request to fastcgi
}
以上的配置, location ~ (/.*) 这个正则匹配会命中所有的访问, 并将括号内的值赋为 PATH_INFO, 这时候访问git的URL为 http://server_ip/sandbox.git .
如果想将访问限制在一个二级目录下, 假设为git目录, 那么需要修改上面的location为
location ~ /git(/.*)
这时候访问的URL就是 http://server_ip/git/sandbox.git
创建密码文件
可以通过 htpasswd -c /var/www/git/htpasswd milton 来创建, 也可以通过 openssl passwd -apr1 生成口令来手动创建
然后重启nginx
sudo systemctl restart/reload nginx
这时候就可以通过git客户端连接测试了.
添加新Git仓库
sudo mkdir sandbox.git
cd sandbox.git/ sudo git --bare init
sudo git update-server-info
sudo chown -R www-data:www-data .
# 设置目录为755
sudo find . -type d -exec chmod {} +
# 设置文件为644
sudo find . -type f -exec chmod {} +
安装SVN服务
安装subversion
sudo apt install subversion
创建svn的仓库目录
cd /var/www/
sudo mkdir svn
在这个目录下创建两个文件 passwd 和 auth, 内容分别如下, 作为共用的用户管理, 将在各个svn仓库的配置中引用这两个文件
/var/www/svn$ more passwd[users]
harry =
sally = /var/www/svn$ more authz
[aliases] [groups]
admin = harry,sally [/]
@admin = rw
创建一个svn仓库
cd svn/
sudo svnadmin create sandbox
编辑 sandbox/conf/svnserve.conf, 需要修改三处
[general]
anon-access = none
password-db = ../../passwd
authz-db = ../../authz
启动svn服务
# 去掉 --foreground就是后台运行
svnserve -d --foreground -r /var/www/svn/
在客户端就可以通过 svn co svn://server_ip/sandbox/ 来checkout项目了
Ubuntu18.04 Server安装Nginx+Git服务和独立的svn服务的更多相关文章
- Ubuntu18.04 server安装步骤
Ubuntu18.04 server安装步骤 1. select a language default 2. select your location default 3. configure th ...
- Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel
Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel 1.MySQL安装[安装 MariaDB]MariaDB是MySQL的一个分支首 ...
- 在ubuntu18.04上安装EOS
在ubuntu18.04上安装EOS 在ubuntu18.04上安装EOS的目的: 把交易所的eos转到eos主网,防止交易所跑路或者交易所被黑客攻击 在不联网的安全环境下,用eos官方的命令行工具, ...
- Ubuntu18.04下安装Sublime Text3!
这几天安装了Ubuntu18.04,然后在里面安装Sublime Text3,结果各种问题!各种BUG!试了网上各种办法!尼玛!都是坑爹的啊! 最后还是楼主自己解决了…… 废话不多说,直接按顺序执行下 ...
- Ubuntu18.04下安装MySQL
Ubuntu上安装MySQL非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client ...
- 在ubuntu18.04中安装opencv_contrib-3.2.0采坑教程
由于最近要在OpenCV3中使用SIFT和SURF特征提取,而自从OpenCV2升级到OpenCV3版本后,SIFT.SURF等这些算法都被移出opencv默认项目库,而被放到叫opencv_cont ...
- Ubuntu18.04下安装Sublime Text3并解决不能输入中文
Ubuntu18.04下安装Sublime Text3并解决不能输入中文! 废话不多说,直接按顺序执行下面命令开始安装! wget -qO - https://download.sublimetext ...
- Ubuntu18.04 离线安装 docker
Ubuntu18.04 离线安装 dockerhttps://blog.csdn.net/u012814856/article/details/804231851. 将下载下来的文件夹中的 4 个文件 ...
- Ubuntu18.04下安装搜狗输入法
Ubuntu18.04下安装搜狗输入法 第一步:安装 fcitx输入框架 sudo apt-get install fcitx 第二步:在官网下载 Linux 版本搜狗输入法 https://piny ...
随机推荐
- windows环境下安装mysql5.7.20
配置my.ini文件 [client] port=3306 default-character-set=utf8 [mysqld] # 设置为自己MYSQL的安装目录 basedir=D:\Progr ...
- Node: 包管理机制
Node.js 的模块机制可以很好地解决业务代码混乱的难题,但对于第三方模块包,就有些力不从心了,因为第三方模块包分散存放在各地,无法集中式管理.这就需要一个包管理机制,在 Node.js 中,Isa ...
- linux中container_of
linux 驱动程序中 container_of宏解析 众所周知,linux内核的主要开发语言是C,但是现在内核的框架使用了非常多的面向对象的思想,这就面临了一个用C语言来实现面向对象编程的问题,今天 ...
- 微信小程序~模板template引用
当您的项目需要多次使用同一个布局和样式的时候,您就可以考虑使用template(模板)来减少冗余代码. 使用方式: 1.新建一个template文件夹来存放您的通用模板: 2.在文件夹里面新建一个wx ...
- win10永久激活方法(真正永久激活)
win10的花费不低,所以很多电脑用户选择搜索激活,但是大部分用的激活工具激活的基本上都是假激活(或许本来就是),kms激活和试用账号临时激活都是有时间限制的,虽然到时都可以继续,但是系统还是明确此激 ...
- windows——快速得到某一目录下所有文件的名称
前言 其实用的是windows上dir命令,能快速得到某一目录下的所有文件名称,天天那么忙都没时间写博客(┬_┬) 步骤 打开cmd并cd到某目录下 C:\Users\Administrator.KI ...
- linux中添加自定义命令
centos下设置alias别名,比较简单,例如: vim /root/.bashrc addalias rm='rm -i' Linux alias设置指令的别名命令详解 功能说明:设置指令的别名. ...
- java项目部署
本文章只为帮助大家学习项目的发布,为基础篇,在此给大家示范在window环境下的项目部署及运维. 以下版本为讲解示例,可自行改至匹配版本. 服务器:window service2008 R2 Stan ...
- How to Start Up an Open Source Company
https://evolveum.com/start-open-source-company/ Evolveum is a successful open source company now. We ...
- Permission denied (publickey,gssapi-keyex,gssapi-with-mic).错误的解决
SSH登录提示 Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 修改被登录的SSH服务器ssh配置,/etc/ssh/sshd_ ...