转载网上的 Apache2 + Gitweb+CGI配置

 

Apache2 + Gitweb+CGI配置

 

1>安装Apache2

 

sudo apt-get install apache2

 

修改apache2的配置文件

 

ubatem@ubuntu:~$ cd /etc/apache2

ubatem@ubuntu:/etc/apache2$ ls

apache2.conf    conf-enabled  mods-available  sites-available

conf-available  envvars      mods-enabled    sites-enabled

conf.d          magic         ports.conf

 

我们看到没有想象中的httpd.conf配置文件,这里要说明的是apache2的配置文件是apache2.conf,而不是http.conf

ubatem@ubuntu:/etc/apache2$ sudo viapache2.conf

 

写入两条语句

ServerName localhost

DirectoryIndex index.html index.htmindex.php

这里的ServerName localhost是为了防止最后开启apache2服务的时候会提示DNS出错。

DirectoryIndex index.html index.htmindex.php是默认目录的写法。

把下面的<Directory/var/www/html/>改成<Directory/var/www>

<Directory /var/www/html/>

       Options Indexes FollowSymLinks

       AllowOverride None

        Require all granted

</Directory>

 

保存退出。

 

可以在apache2.conf中加入 AddDefaultCharset GB2312

设置默认字符集,定义服务器返回给客户机默认字符集(由于西欧UTF-8是Apache默认字符集,因此当访问有中文的网页时会出现乱码,这时只要将字符集改成GB2312,再重启Apache服务即可)

 

 

下面这步(横线里面的)可以忽略

------------------------------------------------------------------------------------------------------------------------

需要说明的是,在apache2中,根设置(默认主目录)在 /etc/apache2/sites-АVailable/default中,我们打开default,进行配置。如下

ubatem@ubuntu:/etc/apache2$ cdsites-available

ubatem@ubuntu:/etc/apache2/sites-available$ls

000-default.conf  default-ssl.conf

ubatem@ubuntu:/etc/apache2/sites-available$sudo vi 000-default.conf

这里我们的默认主目录设置的路径是/var/www,文档最上方的VirtualHost后方的*代表通配符,即表示所有本机ip地址,监听端口为80,ServerName填写你注册的域名,没有可以不填。保存退出。

------------------------------------------------------------------------------------------------------------------------

至此,基本配置已经全部完成,查看本机ip地址。ip为 172.16.6.129

ubatem@ubuntu:~$ ifconfig

eth0     Link encap:以太网  硬件地址 00:0c:29:b4:97:17 

         inet 地址:172.16.6.129  广播:172.16.6.255  掩码:255.255.255.0

         inet6 地址: fe80::20c:29ff:feb4:9717/64Scope:Link

输入启用apache2的命令:/etc/init.d/apache2 restart.并在浏览器中输入本机ip地址。

若显示 It Works!或者apache的页面则安装成功。

 

2>Gitweb安装

 

sudo apt-get install gitweb

 

默认没有 css 加载,把 gitweb 要用的静态文件连接到DocumentRoot 下:

cd /var/www/

sudo ln -s /usr/share/gitweb/* .

修改gitweb.conf配置文件

sudo vi /etc/gitweb.conf

将 $projectroot 改为git仓库存储目录(例如:/home/git/abc.git,abc.git为git初始化的仓库),保存退出。

如果没有找到项目,你需要将$projectroot/*.git 的属性改为755(sudo chmod 755 xxx.git),让apache用户有可读权限。http://localhost/cgi-bin/gitweb.cgi

修改/etc/gitweb.conf 内容

# path to git projects(<project>.git)

#$projectroot = "/var/cache/git";

$projectroot ="/home/git/repositories";

# directory to use for temp files

$git_temp = "/tmp";

# target of the home link on top of allpages

$home_link = $my_uri || "/";

# html text to include at home page

$home_text = "indextext.html";

# file with project list; by default,simply scan the projectroot dir.

$projects_list = $projectroot;

# stylesheet to use

@stylesheets =("/gitweb/static/gitweb.css");

# javascript code for gitweb

$javascript ="gitweb/static/gitweb.js";

# logo to use

$logo ="/gitweb/static/git-logo.png";

# the 'favicon'

$favicon = "/gitweb/static/git-favicon.png";

# git-diff-tree(1) options to use forgenerated patches

#@diff_opts = ("-M");

@diff_opts = ();

修改apache2.conf配置文件

添加如下内容

ScriptAlias /cgi-bin/"/var/www/cgi-bin/"

<Directory /var/www/cgi-bin/>

       Options Indexes FollowSymLinks

       AllowOverride None

</Directory>

 

启用更改,会出现以下信息

ubatem@ubuntu:~$ sudo /etc/init.d/apache2restart

* Restarting web server apache2

 [WedMar 04 16:26:54.355891 2015] [alias:warn] [pid 12803:tid 3074894464] AH00671:The ScriptAlias directive in /etc/apache2/conf-enabled/serve-cgi-bin.conf atline 11 will probably never match because it overlaps an earlier ScriptAlias.

                                                                        [ OK ]

ubatem@ubuntu:~$ cd /etc/apache2

,因为/etc/apache2/conf-enabled/serve-cgi-bin.conf文件里面已经有ScriptAlias /cgi-bin/"/var/www/cgi-bin/"这句语句,你可以注释/etc/apache2/conf-enabled/serve-cgi-bin.conf里面的ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"语句,也可以忽略,但是在apache2.conf配置文件里面不能缺少ScriptAlias/cgi-bin/ "/var/www/cgi-bin/"语句,否则你会在浏览器访问不了cgi文件,

403 错误    You don't have permissionto access /cgi-bin/XXXX.cgi on this server.

 

修改/etc/apache2/sites-available/000-000-default.conf配置文件

添加如下内容

<VirtualHost *:80>

   ServerName gitserver

   DocumentRoot /var/www/cgi-bin

   <Directory /var/www/cgi-bin/>

       Options +ExecCGI

       Options +FollowSymLinks

       Options+SymLinksIfOwnerMatch

       AllowOverride All

       order allow,deny

       Allow from all

       AddHandler cgi-script .cgi .pl

       DirectoryIndex gitweb.cgi

   </Directory>

</VirtualHost>

 

保存退出.

这一步非常重要,有可能你的浏览器会显示纯文本的cgi

sudo a2enmod cgid,或者是 sudo a2enmod cgi

启用配置

sudo /etc/init.d/apache2 restart

编写hello.cgi程序
cd /var/www/cgi-bin

sudo vi hello.c
#include<stdio.h>
intmain()
{
printf("Hello,world\n");
return0;
}
保存退出。
编译:
#sudo  gcc  hello.c  -o   hello.cgi
这里可以先运行一下看看 hello.cgi是否有错误
#sudo ./hello.cgi
若输出helloworld,则正确
然后可以在浏览器中键入http://你的apache服务器ip地址/cgi-bin/hello.cgi
若浏览器显示helloworld,则cgi配置正确。

Gitweb配置完成

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值