定制Apache索引(目录浏览)样式

今天才知道,原来Apache的索引(目录浏览)样式是可以定义的,下面简单介绍一下方法。

1,开启Apache索引(目录浏览)功能
编辑httpd.conf文件:
[code lang=”plain”]
<Directory "/var/www/html">
……
Options Indexes FollowSymLinks
IndexOptions FancyIndexing ScanHTMLTitles FoldersFirst NameWidth=85 DescriptionWidth=128 IconHeight=16 VersionSort Charset=UTF-8
……
AllowOverride None
Order allow,deny
Allow from all
</Directory>

在Options选项中写入Indexes,即是打开了目录浏览功能。我的CentOS6中安装好了Apache以后默认就是打开了目录浏览的。但是使用浏览器访问首页,却不能显示出目录,原因在于/etc/httpd/conf.d/welcome.conf文件中的Indexes前面有个减号,原来Apache默认禁止了首页的目录浏览功能。去掉减号,再重启Apache就OK了。

2,定义索引(目录浏览)样式
IndexOptions项定义了索引(目录浏览)的样式,其中:
ScanHTMLTitles 搜索HTML标题
FoldersFirst 目录排在前面
NameWidth=85 表示文件名可以最多显示85个字符
DescriptionWidth=128 表示描述可以显示的字符数
IconHeight=16 小图标的长度
VersionSort 版本排序,如果没有此项,将按照拼音顺序排序
Charset=UTF-8 字符集

3,目录加密
编辑httpd.conf文件:
[code lang=”plain”]
<Directory "/var/www/html">
……

AuthType basic
AuthName "Authorization"
AuthUserFile /var/www/html/.htpasswd
Require user user1
……
</Directory>

其中,AuthName是弹出的提示文本,/var/www/html/.htpasswd是记录用户名与密码的文件,equire user指允许登陆的用户名。

管理登陆用户
[code lang=”plain”]
$ htpasswd -c /var/www/html/.htpasswd user1 #回车会要求输入两遍密码,会清除所有用户!
$ htpasswd -bc /var/www/html/.htpasswd user1 password #不用回车,直接指定user1的密码为password
$ htpasswd -b /var/www/html/.htpasswd user2 password #添加一个用户,如果用户已存在,则是修改密码
$ htpasswd -D /var/www/html/.htpasswd user2 #删除用户
Read More

Linux之Mock使用方法

在进行编包的时候大多数人会使用rpmbuild命令在本机进行编译,这样可以使一些依赖及本地相关包的修改可以生效,但在开发过程中必须模拟用户的环境或是构建一个“干净的”环境(既没有任何其他依赖的改动,直接从yum下载构建一个纯用户环境),这样我们就需要mock命令来构建这样一个编译的纯环境来进行编译软件包。

1,安装mock
mock的安装方法比较简单,请参照这篇文章即可。安装完成以后,系统会自动多出一个名为mock的组。

2,mock使用方法
mock编译过程不要用root身份,先建立一个普通的用户,然后把用户加入mock组。

[root@test ~]# useradd mockbuilder 
[root@test ~]# usermod -a -G mock mockbuilder 
[root@test ~]# su - mockbuilder

注意:如果强行使用root身份执行mock命令,python将会抛出“RuntimeError: mock will not run from the root account”的错误。

使用内置的mock配置文件来进行编译

mock 的配置文件在/etc/mock/目录下,系统默认内置了fedora、epel-5、epel-6等系统的配置文件,通过查看这些.cfg的配置文件,可以了解到Mock的原理,即软件使用yum来下载一个最小化的系统,并放入chroot环境中。

下面以编译fedora 15 64位系统的软件包来举例(对应的配置文件为fedora-15-x86_64.cfg) (more…)

Read More

CentOS 安装gnome/xfce+vncserver

CentOS 安装图形界面的过程,简单记录一下。这里提供了两种图形界面的安装,分别是CentOS自带的gnome桌面及轻巧的xfce。据测试,我的精简版CentOS 6 64位系统安装gnome需要下载522M的文件,而安装xfce仅需下载89M的文件。下面分别介绍安装方法:

1,安装gnome桌面

[root@localhost ~]# yum groupinstall "GNOME Desktop Environment"  (适合Centos 5)
[root@localhost ~]# yum groupinstall "Desktop"                    (适合Centos 6)
安装完gnome桌面以后,最好也同时安装以下两个软件包:
[root@localhost ~]# yum install fonts-chinese         (CentOS 5 安装中文字体)
[root@localhost ~]# yum groupinstall chinese-support  (CentOS 6 安装中文字体)

[root@localhost ~]# yum install nautilus-open-terminal (桌面右键菜单在终端中打开,需重启)

2,安装xfce桌面 (more…)

Read More

CentOS 6桥接网卡配置

安装KVM虚拟机软件,需要配置一个桥接网卡,以便客户机获取到跟真实系统同一网段的IP,本文实验环境基于CentOS 6 64bit,记录一下,本文所有命令均是在真实系统里操作,而非在客户机操作。

1,准备工作

关闭NetworkManager服务,启用network服务
[root@localhost ~]# service NetworkManager stop
[root@localhost ~]# service network restart
[root@localhost ~]# chkconfig --level 2345 NetworkManager off
[root@localhost ~]# chkconfig --level 2345 network on

删除网卡记录文件(最好是删除,不要清空文件内容)
[root@localhost ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules

禁用seLinux
[root@localhost ~]# sestatus   
#如果返回值不是disabled,则编辑/etc/sysconfig/selinux,修改SELINUX=disabled

重启系统
[root@localhost ~]# reboot

按道理说还需要修改/etc/sysctl.conf文件,将net.ipv4.ip_forward的值改为1(即允许多块网卡互相通信),但后来经过试验,此项并不是必须的。如果你不放心,也可以改掉此值。

2,配置桥接网卡信息

这里我们假设复制的网卡名为br0。首先需要知道的是,如果让br0桥接eth0,那么eth0将不再能获得IP,反而是br0获得了原先eth0的IP。 (more…)

Read More

CentOS 6安装mock

最近工作中需要用到mock,这里介绍两种安装方式。本文的环境为CentOS 6.4 x86_64。

一,使用yum安装mock

安装第三方yum源RPMForge

Centos5 64位  wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
Centos5 32位  wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.i386.rpm
Centos6 64位  wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
Centos6 32位  wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm

安装下载回来的rpm包

yum install rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

安装mock

yum install mock

(more…)

Read More

Linux构造chroot环境

关于chroot的简介,可以参考IBM开发者网站上的这篇理解chroot,本文演示了如何构造一个最简单的chroot环境,本文实验环境为CentOS 6.4 64bit。

[root@os ~]# dd if=/dev/zero of=123.img count=512K bs=20480
[root@os ~]# /sbin/mkfs.ext3 123.img  
#格式化为ext3时可能会提示123.img is not a block special device.不用管它,直接按y继续
[root@os ~]# mkdir /mnt/123
[root@os ~]# mount -o loop 123.img /mnt/123
[root@os ~]# chroot /mnt/123
chroot: failed to run command `/bin/bash': No such file or directory

发生了错误,看来chroot环境不存在/bin/bash(事实也的确不存在),那我们从真实系统里拷贝一个过去吧:)

[root@os ~]# mkdir /mnt/123/bin
[root@os ~]# cp -av /bin/bash /mnt/123/bin/bash
[root@os ~]# chroot /mnt/123
chroot: failed to run command `/bin/bash': No such file or directory

错误依旧,原因是因为/bin/bash需要调用相关的库,因新环境不存在相关的库文件,因此bash不能运行,从而报上述错误,解决方法是利用ldd /bin/bash查找到其所需要的运行库 (more…)

Read More

Linux rpmbuild简单介绍

本博客先前介绍过如何解压rpm包,演示了将.rpm包还原成源代码的形式。rpmbuild则是用来将源代码打包成.rpm格式的工具。

xxx.rpm 指普通的软件包,执行rpm -ivh xxx.rpm以后即是完成了安装;
xxx.src.rpm 指的是包含源代码的软件包,执行rpm -ivh xxx.src.rpm以后,并不是安装了该软件,而是在/root目录下生成一个名为rpmbuild的文件夹(RHEL5中在/usr/src),里面包含了此软件的所有源代码,还需要使用rpmbuild工具将源代码打包成.rpm或者.tar.gz格式的软件包,才能正常安装使用。

CentOS6 中安装rpmbuild:

yum install rpm-build

rpmbuild命令参数介绍
-bp 只作准备 (解压与打补丁)
-bc 准备并编译
-bi 编译并安装
-bl 检验文件是否齐全
-ba 编译后做成*.rpm和src.rpm
-bb 编译后做成*.rpm
-bs 只做成*.src.rpm
-tc -ti -ta -tb -ts 的功能类似,只是所需参数由spec文件变成tar包。

例如:

cd /usr/src/redhat/SPECS
rpmbuild -bp kernel-2.6.spec

更具体的用法说明: (more…)

Read More