分类目录归档:System

Linux 命令行快捷键

开始说说历史记录个数的 “HISTFILESIZE” 和 “HISTSIZE” 的区别,

  默认情况下 HISTFILESIZE 和 HISTSIZE的值都是 500,表示可以记录 500 条命令记录。

HISTFILESIZE 表示记录在文件中的命令条数
HISTSIZE 表示记录在内存中的命令条数
  当我们在 shell 命令行执行命令的时候,最近的 HISTSIZE 条命令被保存在内存当中可以使用上下光标或者 ctrl+p,ctrl+n 上下查找命令。

  当退出 shell 时 HISTFILESIZE 条命令被保存到历史命令文件中,下次登录 shell 时会从历史命令文件中读取命令道内存历史命令道中。

  当网络中断等异常时,你会发现之前的历史命令,下次登录时用上下光标找不到上次的历史命令,所以要正常退出或者发送探测包保持 shell 在线。

  如果想增加历史命令保存的数量,可以在 ~/.bash_profile 中手动修改 HISTFILESIZE 和 HISTSIZE 这两个变量的值。

搜索操作快捷键

  搜索历史命令的快捷键:Ctrl + r

  它是通过关键字去匹配历史记录,执行后会提示:(reverse-i-search)`’:

  输入你记得的关键字去匹配,如果出现你需要的命令,按Enter就可以选择命令;如果不是请输入更精确的关键字去匹配。

移动操作快捷键

Ctrl + f– 向右移动一个字符,当然多数人用→
Ctrl + b– 向左移动一个字符, 多数人用←
ESC + f– 向右移动一个单词,MAC下建议用ALT + →
ESC + b– 向左移动一个单词,MAC下建议用ALT + ←
Ctrl + a– 跳到行首
Ctrl + e– 跳到行尾

删除操作快捷键

Ctrl + d– 向右删除一个字符
Ctrl + h– 向左删除一个字符
Ctrl + u– 删除当前位置字符至行首(输入密码错误的时候多用下这个)
Ctrl + k– 删除当前位置字符至行尾
Ctrl + w– 删除从光标到当前单词开头

命令切换操作快捷键

Ctrl + p– 上一个命令,也可以用↑
Ctrl + n– 下一个命令,也可以用↓

其他操作快捷键

Ctrl + y– 插入最近删除的单词
Ctrl + c– 终止操作
Ctrl + d– 当前操作转到后台
Ctrl + l– 清屏 (有时候为了好看)

Ubuntu下使用Vi是方向键变乱码 退格键不能使用的解决方法

一、编辑/etc/vim/vimrc.tiny

由于/etc/vim/vimrc.tiny的拥有者是root用户,所以要在root的权限下对这个文件进行修改。很简单,这个文件里面的倒数第二句话是“set compatible”,

将“compatible”改成“nocompatible”非兼容模式就可以解决方向键变ABCD的问题了。接下来要解决Backspace键的问题也很简单,在刚才那句话后面再加一句:

  1. set backspace=2

就可以解决问题了。这个时候,无论对于哪个用户,使用vi都能很方便的按照我们的习惯去编辑文件了。

二、安装vim full版本

由于Ubuntu预安装的是tiny版本,所以会导致我们在使用上的产生上述的不便。但是,我们安装了vim的full版本之后,键盘的所有键在vi下就很正常了。

首先,要先卸掉旧版的vi,输入以下命令:

  1. sudo apt-get remove vim-common

然后安装full版的vim,输入命令:

  1. sudo apt-get install vim

这样安装好了之后,我们在编辑文件的时候依然是使用“vi”命令来启动新装的vim,但是操作起来比tiny更加方便了。

三、添加”.vimrc”文件

这并不是一个聪明的方法。它是在用户的个人目录下,编辑.vimrc文件(注意文件名是以“.”开头的),添加下面两句语句:

  1. set nocompatible          //以非兼容模式工作
  2. set backspace=2

Ubuntu 能PING IP但不能PING主机域名的解决方法

——————————————————————————-

——————————————————————————-

vi /etc/nsswitch.conf

hosts: files dns

networks: files

改成:

hosts: files dns wins

networks: files

如果不一样的话,就在hosts:原来那行后面加个wins 就行了。

——————————————————————————-

——————————————————————————-

最近碰到了这么一个问题: ping一个域名domain_name的时候提示”ping: unknown host domain_name“,但是ping域名对应的IP地址 (使用host或nslookup获取) 却没有问题。

so-name, real-name && linker-name
Linux共享库 (shared object) 的real-name命名规则为: libname.so.x.y.z。其中x表示主 (Major) 版本号,不同主版本号的库之间是不兼容的;y表示次 (Minor) 版本号,它表示库的增量升级,高的次版本号的库向后兼容 (Backwards Compatible) 低的次版本号的库;z表示发布 (Release) 版本号,表示库的一些修正,性能的改进等。

共享库的so-name是在real-name的基础上去掉次版本号和发布版本号。so-name文件一般都是一个指向对应的real-name文件的一个软链接。

共享库的linker-name是应用程序链接的时候的搜索名,通常是so-name的一个软链接。

运行ldconfig时,系统会更新所有的软链接,使它们指向最新版本的共享库。

libc && glibc
标准C库 (the standard C library) 实现了ISO C标准,包含了一套所有C程序都可以使用的函数。libc通常被用作the standard C library的简写。

libc也被用作一个标准C库的实现的名字。在19世纪90年代早期,Linux内核的开发者把glibc 1.x独立了出来 (forked glibc),并把它称为”Linux libc”,也简称为libc。Linux libc主要发布了2, 3, 4, 5四个版本。

1997年,FSF发布了glibc 2.0,它对POSIX标准有更好的支持,并且代码的可移植性更好。因此,现在所有主要的Linux发行版都是使用glibc

Linux libc的最后的so-name是libc.so.5。因此后来的glibc 2.x使用的so-name是libc.so.6。

网络信息服务(Network Information Service, NIS)
NIS也曾被称YP (Yellow Pages),它是一个基于RPC (Remote Procedure Call Protocol) 的客户机/服务器系统,允许一个NIS域中的一组机器共享一系列配置文件。在NIS环境中,有主服务器、从服务器和客户机三种类型的主机。服务器的作用是充当主机配置信息的中央数据库。主服务器上保存着这些信息的权威副本,而从服务器则是保存这些信息的冗余副本。客户机依赖于服务器向它们提供这些信息。

DNS Resolver
一个域名 (Domain Name) 由一个或多个标签 (label) 组成,标签之间用点隔开。最右端的标签代表顶级域 (top-level domain,TLD)。DNS (Domain Name System, 域名解析系统) 是互联网的一项核心服务,它是一个分布式层次化的系统,能够将域名和IP地址相互映射。DNS通过允许一个域名服务器把它的一部分域名解析服务委托给子服务器而实现了一种层次化的域名空间。DNS由解析器 (Resolver) 和域名服务器两部分组成。

DNS系统的客户端被称为DNS解析器 (DNS Resolver)。在Linux系统上,解析器并不是特指某个应用程序,而是指解析器库。这个库包含了标准C库中的一系列函数,最主要的两个函数是gethostbyname()gethostbyaddr()。可以对DNS解析器进行配置,使得它们查找/etc/hosts中的信息、查询DNS服务器或者使用网络信息服务系统的配置信息。libc使用/etc/host.conf配置文件;glibc使用/etc/nsswitch.conf配置文件。

/etc/host.conf中主要的选项有:(1) order指定域名解析的查找顺序,其中hosts表示/etc/hosts配置文件;bind表示查询DNS服务器;nis表示查询NIS系统的配置信息。(2) multi [on|off]指定/etc/hosts中的主机是否可以有多个IP地址。

/etc/nsswitch.conf是名字服务开关 (name service switch) 的配置文件,其中对应DNS解析器的数据库名字是hosts:。它的主要选项有:(1) dns表示使用DNS解析地址 (2) files表示使用/etc/hosts/etc/network配置文件 (3) nis或nisplus。

DNS服务器在/etc/resolv.conf中配置。

ping
ping命令用来测试网络上的一台主机是否能够连通。ping命令向目标主机发送ICMP (Internet Control Message Protocol) 回声请求消息然后等待目标主机的回应,与此同时计算消息从源主机到目标主机的往返时间 (round-trip time,RTT)。

问题解决
首先,能够ping域名对应的IP,显然不可能是服务器禁止了ping服务 (使用防火墙等)。host和nslookup能够返回域名对应的IP地址,那么/etc/resolv.conf中的DNS设置也是没有问题的。

事实上,使用ping命令处理一个域名的时候,是使用gethostbyname()函数返回对应的主机信息 (参加源代码); 而host和nslookup则是直接使用/etc/resolv.conf中的DNS服务器。因此,需要查看/etc/nsswitch.conf中的hosts:数据库是否打开了dns选项。

Ubuntu 的网络配置文件

Ubuntu 的网络配置文件主要有以下几个:IP地址配置文件、主机名称配置文件、DNS配置文件。

IP地址配置文件: /etc/network/interfaces
打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.

1. 以DHCP方式配置网卡

编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces

并用下面的行来替换有关eth0的行:
# The primary network interface – use DHCP to find our address
auto eth0
iface eth0 inet dhcp

用下面的命令使网络设置生效:
sudo /etc/init.d/networking     restart
也可以在命令行下直接输入下面的命令来获取地址
sudo dhclient eth0

2. 为网卡配置静态IP地址

编辑文件/etc/network/interfaces:

sudo vi /etc/network/interfaces

并用下面的行来替换有关eth0的行:# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.3.90
gateway 192.168.3.1
netmask 255.255.255.0

将上面的ip地址等信息换成你自己就可以了.用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart

3. 设定第二个IP地址(虚拟IP地址)

编辑文件/etc/network/interfaces: sudo vi /etc/network/interfaces

在该文件中添加如下的行:
auto eth0:1
iface eth0:1 inet static
address 192.168.1.60
netmask 255.255.255.0
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x

根据你的情况填上所有诸如address,netmask,network,broadcast和gateways等信息.
用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart

主机名称配置文件(/bin/hostname)

使用下面的命令来查看当前主机的主机名称:

sudo /bin/hostname

使用下面的命令来设置当前主机的主机名称:

sudo /bin/hostname newname

系统启动时,它会从/etc/hostname来读取主机的名称.

DNS配置文件

首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是简单使用本机的静态查询.

要访问DNS 服务器来进行查询,需要设置/etc/resolv.conf文件.
sudo vi /etc/resolv.conf

nameserver 202.96.128.68

nameserver 61.144.56.101

nameserver 192.168.8.220

/重新设置网络,以启用新设置

sudo /etc/init.d/networking restart

linux+apache+php+mysql源代码安装

安装的过程整体要分为三大过程:
安装apache 和 mysql
安装PHP
安装 memcached  php-memcache

安装apache 和 mysql
第一步  下载apache mysql;并且为二者建立对应的安装目录
#mkdir –p /opt/soft
#cd /opt/soft
#wget http://download.chyangwa.com/linux/apache/httpd-2.2.4.tar.gz
#wget http://download.chyangwa.com/linux/MySQL/mysql-5.0.19.tar.gz
#mkdir –p /usr/local/apache
#mkdir –p /usr/local/mysql

第二步   解压以及安装apache
#tar –zxvf httpd-2.2.4.tar.gz
#tar –zxvf mysql-5.0.19.tar.gz
#cd httpd-2.2.4
#./configure –prefix=/usr/local/apache –enable-so –enable-rewrite –enable-deflate –with-mpm=worker
#make && make install
#make clean
#cd

启动服务:
#/usr/local/apache/bin/apachectl –k start
然后在地址栏里面输入:本机IP/index.html 如果可以看到“It works!”就说明apache已经安装成功了

第三步 解压以及安装mysql
//建立数据库的用户和用户组:
# groupadd mysql
# useradd -g mysql mysql
//编译安装数据库:
#cd mysql-5.0.19
#./configure –prefix=/usr/local/mysql –with-extra-charsets=complex –enable-thread-safe-client –enable-local-infile –enable-assembler –disable-shared –with-client-ldflags=-all-static –with-mysqld-ldflags=-all-staticm –with-embedded-server –with-innodb –with-extra-charsets=gbk,gb2312,big5 –without-debug CFLAGS=-O3 -mcpu=pentium4 CXXFLAGS=-O3 -march=pentium4 -felide-constructors -fno-exceptions -fno-rtti CXX=gcc
# make && make install
# make clean
# cp -r mysql-5.0.19 /usr/local/mysql
# cp support-files/mysql.server /etc/rc.d/init.d/mysql
# cp support-files/my-medium.cnf /etc/my.cnf
修改mysql目录权限
# chown -R root /usr/local/mysql
# chgrp -R mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/data
生成mysql系统数据库
# /usr/local/mysql/bin/mysql_install_db –user=mysql&
# /usr/local/mysql/bin/mysqld_safe –user=mysql&
**如出现 Starting mysqld daemon with databases from /usr/local/mysql/data 代表正常启动mysql服务了.
make install结束后,新安装的需要执行bin/mysql_install_db文件来安装授权表,然后运行bin/mysqld_safe启动mysql服务。用mysql命令看是否则连接到服务器。在./configure的时候通常都会出现 checking for termcap functions library… configure: error: No curses/termcap library found这个错误!安装上libncurses5-dev (不同的系统可能名字也有所差异)这个包就好了

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
安装PHP
第一步 下载需要的组件(可以根据工作需要定制)
# cd /opt/soft
# wget http://download.chyangwa.com/linux/freetype/freetype-2.2.1.tar.gz
# wget http://download.chyangwa.com/linux/GD/gd-2.0.33.tar.gz
# wget http://download.chyangwa.com/linux/zlib/zlib-1.2.3.tar.gz
# wget http://download.chyangwa.com/linux/jpegsrc/jpegsrc.v6b.tar.gz
# wget ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.8.2.tar.gz
# wget http://download.chyangwa.com/linux/gettext/gettext-0.14.5.tar.gz
# wget http://download.chyangwa.com/linux/libiconv/libiconv-1.10.tar.gz
# wget http://download.chyangwa.com/linux/libxml/libxml-1.8.17.tar.gz
# wget http://download.chyangwa.com/linux/PHP/php-5.0.5.tar.gz
# wget http://www.libpng.org/pub/png/libpng.html/libpng-1.2.25.tar.gz
为以上的安装包建立目录
# mkdir –p /usr/local/libxml
# mkdir –p /usr/local/freetype
# mkdir –p /usr/local/gd2
# mkdir –p /usr/local/zlib
# mkdir –p /usr/local/jpeg
# mkdir –p /usr/local/gdbm
# mkdir –p /usr/local/gettext
# mkdir –p /usr/local/libiconv
# mkdir –p /usr/local/libxml
# mkdir –p /usr/local/php
# mkdir –p /usr/local/libpng
第二步  安装PHP相关连的包
a.安装 jpeg6 建立目录:如果选择默认安装,可能很顺利,指定路径后,请先创建以下文件夹
# mkdir –p /usr/local/jpeg6
# mkdir –p /usr/local/jpeg6/bin
# mkdir –p /usr/local/jpeg6/lib
# mkdir –p /usr/local/jpeg6/include
# mkdir –p /usr/local/jpeg6/man
# mkdir –p /usr/local/jpeg6/man1
# mkdir –p /usr/local/jpeg6/man/man1
# cd /opt/soft/
# tar –zvxf jpegsrc.v6b.tar.gz
# cd jpeg6
# ./configure –prefix=/usr/local/jpeg6/ –enable-shared –enable-static
# make
# make install
# make install-lib
# make clean

b.libpng包(支持PNG)
# cd /opt/soft/
# tar –zvxf libpng-(version).tar.gz
# cd libpng-(version)
# ./configure –prefix=/usr/local/libpng
# make
# make install
# make clean

c.安装 freetype
# cd /opt/soft/
# tar –zvxf freetype-2.2.1.tar.gz
# cd freetype-2.2.1
# ./configure –prefix=/usr/local/freetype
# make
# make install
# make clean

d.安装zlib
# cd /root/Software/
# tar –zxvf zlib-1.2.3.tar.gz
# cd zlib.1.2.3
# mkdir /usr/local/zlib
# ./configure –prefix=/usr/local/zlib
# make
# make install
# make clean

e.安装gettext
# cd /opt/soft /
# tar –zxvf gettext-0.14.5.tar.gz
# cd gettext-0.14.5
# ./configure –prefix=/usr/local/gettext
# make
# make install
# make clean

f.安装libxml
# cd /opt/soft /
# tar –zxvf libxml-1.8.17.tar.gz
# cd libxml-1.8.17
# ./configure –prefix=/usr/local/libxml
# make
# make install
# make clean

g.安装gdbm
# cd /opt/soft /
# tar –zxvf gdbm-1.8.2.tar.gz
# cd gdbm-1.8.2
# ./configure –prefix=/usr/local/gdbm
# make
# make install
# make clean

h.安装libiconv
# cd /opt/soft /
# tar –zxvf libiconv-1.10.tar.gz
# cd libiconv-1.10
# ./configure –prefix=/usr/local/libiconv
# make
# make install
# make clean

i.安装gd2
# cd /opt/soft /
# tar –zxvf gd-2.0.33.tar.gz
# cd gd-2.0.33
# ./configure –prefix=/usr/local/gd2 –with-zlib=/usr/local/zlib/ –with-png=/usr/local/libpng/ –with-jpeg=/usr/local/jpeg/ –with-freetype=/usr/local/freetype
# make
# make install
# make clean
第三步 安装PHP
# cd /opt/soft /
# tar –zxvf php-5.0.5.tar.gz
# cd php-5.0.5.tar.gz
# ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-jpeg-dir=/usr/local/jpeg/ –with-gettext –enable-mbstring –with-libxml-dir=/usr/local/libxml –with-png-dir=/usr/local/libpng/ –with-gd=/usr/local/gd2/ –with-freetype-dir=/usr/local/freetype –enable-trace-vars –with-zlib-dir=/usr/local/zlib/ –with-mysql=/usr/local/mysql –with-gdbm-dir=/usr/local/gdbm/ –enable-wddx  –with-iconv –enable-sockets –disable-ipv6
# make
# make install
# make clean
# cp php.ini-dist /usr/local/php/lib/php.ini

第四步 修改httpd.conf文件
编辑apache配置文件httpd.conf
#vi /usr/local/apache2/conf/httpd.conf

要改的有如下几处:
1一般都在
#AddType application/x-tar .tgz
下加一行
#LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
如果搜索其它地方没有以下这行
LoadModule php5_module modules/libphp5.so 把上面的#号去掉
2 找到 DirectoryIndex index.html index.html.var 在后面加 index.php 让它把index.php做为默认页
3 #ServerName      把#去掉,后面的IP改成本机的IP.

第五步 测试
在apache的根目录下面(/usr/local/apache/htdocs)建立一个文件内容为:
<?php
phpinfo();
?>
保存为test.php文件
然后重启apache服务器,进行如下操作
#/usr/local/apache/bin/apachectl –k stop
#/usr/local/apache/bin/apachectl –k start
然后在地址栏里面输入:本机IP/test.php 如果可以看到php的版本以及其他相关信息就说明PHP已经安装成功了
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
安装 memcached  php-memcache
第一步  下载相关组件
#wget http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz
#wget http://pecl.php.net/package/memcache/memcache-1.2.0.tgz
#wget http://www.monkey.org/~provos/libevent-1.2.tar.gz
第二步 安装组件
libevent-1.2 安装:
默认安装:
# tar –zxvf libevent-1.2.tar.gz
# cd libevent-1.2
# ./configure
# make
# make install
# make clean
建立一个符号连接:
# ls -s /usr/local/lib/libevent-1.2.so.1 /usr/lib     否则memcached无法运行。
memcached-1.2.2 安装,
# tar –zxvf memcached-1.2.2.tar.gz
# cd memcached-1.2.2
# ./configure –prefix=/usr/local/memcached
# make
# make install
# make clean
第三步 安装Memcache的PHP扩展
1.在http://pecl.php.net/package/memcache 选择相应想要下载的memcache版本。

2.安装PHP的memcache扩展
tar vxzf memcache-2.2.1.tgz
cd memcache-2.2.1
/usr/local/php/bin/phpize
./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir
make
make install

3.上述安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20041030/

4.把php.ini中的extension_dir = “./”修改为
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-zts-20041030/”

5.添加一行来载入memcache扩展:extension=memcache.so

memcached的基本设置:

启动Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.1.55 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB;
-u是运行Memcache的用户;
-l是监听的服务器IP地址;
-p是设置Memcache监听的端口,最好是1024以上的端口;
-c选项是最大运行的并发连接数,默认是1024;
-P是设置保存Memcache的pid文件,这里是保存在 /tmp/memcached.pid;

2.如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,不过端口不能重复。

3. 然后重启apache服务器,进行如下操作
#/usr/local/apache/bin/apachectl –k stop
#/usr/local/apache/bin/apachectl –k start

Memcache环境测试:
建立一个文件为pptest.php内容如下:
<?php
$mem = new Memcache;
$mem->connect(“127.0.0.1”,11211);
$mem->set(‘key’,’this is a test!’,0,60);
$val = $mem->get(‘key’);
echo $val;
?>
然后在地址栏里面输入:本机IP/pptest.php 如果可以看到this is a test!就说明已经安装成功了

源码安装Apache服务

1.Yum install –y gcc*                            安装gcc环境

   Yum install –y openssl*                         安装openssl软件包

 

2.下载httpd源码包;

   Tar –xzvf httpd-2.2.9.tar.gz –C /usr/src        解压源码包到/usr/src目录中<源码包放置目录>

 

3.Mkdir –p /usr/local/apache2

 

4../configure  –prefix=/usr/local/apache2  –enable-so            配置编译选项

       –enable-rewrite  –enable-ssl  –with-ssl=/usr/lib  

       –enable-suexec  –with-suexec-caller=daemon

       –with-suexec-docroot=/usr/local/apache2

 

5.Make                                                                           编译服务器程序

 

6.Make install                                                                                 安装服务器程序

 

7./usr/local/apache2/bin/apachectl  start                                         启动httpd服务

 

8./usr/local/apache2/bin/apachectl  -t                                                    语法检测

 

更改httpd启动方式

1.将http脚本复制到/etc/rc.d/init.d这个目录下:

cp -a apachectl /etc/rc.d/init.d/httpd

 

2.vi httpd

#chkconfig: 345 70 70

#description: apache

 

3.添加httpd到启动项:

chkconfig –add httpd

 

4.查看是否有httpd服务:

chkconfig –list httpd

 

源码安装后Apache服务器的根目录:

/usr/local/apache2/

 

日志文件:

/usr/local/apache2/logs/

 

Httpd主配置文件

/usr/local/apache2/conf/httpd.conf

 

Hhttp服务器网页根目录

/usr/local/apache2/htdocs/

 

创建虚拟WEB主机

Cd /usr/local/apache2/htdocs/                                               创建虚拟目录benetcom

Mkdir benetcom

Cd benetcom

Cp /usr/local/apache2/htdocs/index.html ./                                   创建测试网页

Vi index.html                                                                      

 

Cd /usr/local/apache2/conf/                                                  增加虚拟主机配置

Vi httpd.conf

:r extra/httpd-vhosts.conf

80>

#    ServerAdmin webmaster@dummy-host.example.com

     DocumentRoot/usr/local/apache2/docs/benetcom

ServerName www.benet.com

#    ServerAlias www.dummy-host.example.com

ErrorLog “logs/benet.com-error_log”

CustomLog “logs/benet.com-access_log” common

 

RPM安装后的Apache配置文件具体位置

/etc/httpd/                                                                Apache服务程序根目录

/etc/httpd/conf/httpd.conf                                         主配置文件

/var/www/html                                                          网页文档默认根目录

/var/log/httpd/error_log                                            错误日志文件

/var/log/httpd/access_log                                           访问日志文件

VMware虚拟机克隆Linux系统引起的网卡问题

1. 手动配置静态网卡地址不生效
2. 网卡名变成了eth1
[root@localhost network-scripts]# ls |grep ifcfg
ifcfg-eth0
ifcfg-lo
[root@localhost network-scripts]# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:0C:29:3A:8B:02
inet addr:192.168.1.134  Bcast:192.168.1.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe3a:8b02/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:5154 errors:0 dropped:0 overruns:0 frame:0
TX packets:299 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:529420 (517.0 KiB)  TX bytes:32319 (31.5 KiB)
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
[root@localhost network-scripts]# vim ifcfg-eth0

DEVICE=eth0
HWADDR=00:0C:29:52:39:18
TYPE=Ethernet
UUID=d12572cd-6808-4cae-b7b6-5480982206e8
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.119
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

手动设置静态ip地址和网关后,保存退出;然后重启网络后出现错误
[root@localhost network-scripts]# service network restart
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Error: No suitable device found: no device found for connection ‘System eth0’.
[FAILED]
[root@localhost network-scripts]#

英汉互译
No suitable device found: no device found for connection ‘System eth0’.
没有找到合适的设备:没有找到设备连接的系统eth0”。

总结了以下解决方案

更改ifconfig显示的eth1网卡名为eth0,并设置static ip地址

编辑/etc/udev/rules.d/70-persistent-net.rules文件,把NAME=”eth0″的那行配置注释掉或者删掉,把NAME=”eth1″的修改成NAME=”eth0″,修改后如下:
[root@localhost network-scripts]# vim /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
#SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:52:39:18″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:3a:8b:02″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″

查看以下信息
[root@localhost network-scripts]# ls |grep ifcfg-
ifcfg-eth0
ifcfg-lo
[root@localhost network-scripts]# vim ifcfg-eth0
DEVICE=eth0
HWADDR=00:0c:29:3a:8b:02
TYPE=Ethernet
UUID=d12572cd-6808-4cae-b7b6-5480982206e8
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.119
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

重启启动网卡服务
[root@localhost network-scripts]# service network restart
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/2
state: activated
Connection activated
[  OK  ]
[root@localhost network-scripts]# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:0C:29:3A:8B:02
inet addr:192.168.1.119  Bcast:192.168.1.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe3a:8b02/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:3833 errors:0 dropped:0 overruns:0 frame:0
TX packets:273 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:380984 (372.0 KiB)  TX bytes:45223 (44.1 KiB)
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Linux基本权限

一、文件基本权限
1、基本权限的修改

-rw-r--r--
-- '-' 文件类型('-' 文件 'd' 目录 'l' 软链接文件)
-- rw-      r--      r--
   u所有都  g所属组   o其他人
-- 'r' 读  'w' 写  'x' 执行

chmod 命令

[root@localhost ~]# chmod [选项] 模式 文件名
选项:
-- -R:递归
模式:
-- [ugoa] [+-=] [rwx]
-- [mode=421]

修改权限的方式

[root@localhost ~]# chmod u+x cangls.av
#给文件所有者加执行权限
[root@localhost ~]# chmod g+w,o+w furong.av
#给所有组及其他加写入权限
[root@localhost ~]# chmod a=rwx fengjie.av
#给所有人加读、写、执行权限

权限的数字表示

-- r --- 4
-- w --- 2
-- x --- 1

rwxr-xr-x
7  5  5

2、权限的作用
1)权限对文件的作用

r:读取文件内容(cat more head tail)
w:编辑、新增、修改文件内容(vi echo)
-- 但是不包含删除文件
x:可执行

2)权限对目录的作用

r:可以查询目录下文件名(ls)

w:具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切(touch rm mv cp)

x:可以进入目录(cd)

3、其他权限命令
1)修改文件的所有者

[root@localhost ~]# chown 用户名 文件名
例:
[root@localhost ~]# chown ds fengj.av

2)修改文件的所属组

[root@localhost ~]# chgrp 组名 文件名
例如:
[root@localhost ~]# chgrp group1 fengj.av

3)让用户对文件及目录拥有一定的权限
要求:
— 拥有一个test目录
— 让某用户拥有所有的权限
— 让另一用户有查看权限
— 其他所有人不许查看这个目录

二、文件默认权限
1、查看默认权限的命令
umask
#查看默认权限

0022
-- 第一位0:文件特殊权限
-- 022:文件默认权限

2、文件的默认权限
#文件默认不能建立为执行文件,必须手工赋予执行权限
#所有文件默认权限最大为666
#默认权限需要换算成字母再相减
#建立文件之后的默认权限,为666减去umask值

例如:
-- 文件默认最大权限666 umask值022
-- -rw-rw-rw-  减去  -----w--w- 等于 -rw-r--r--
例如
-- 文件默认最大权限666 umask值033
-- -rw-rw-rw-  减去  -----wx-wx 等于 -rw-r--r--

3、目录的默认权限
# 目录默认权限最大为777
# 默认权限需要换算成字母再相减
# 建立文件之后的默认权限,为777减去umask值
例如:

-- 目录默认最大权限为777 umask值022
-- -rwxrwxrwx 减去 -----w--w- 等于 -rwxr-xr-x

4、修改umask值
# 临时修改
[root@localhost ~]# umask 0002

# 永久修改
[root@localhost ~]# vi /etc/profile

三、ACL权限
1、ACL权限简介与开启
1)ACL权限简介
Introduction of ACL

2)查看分区ACL权限是否开启

[root@localhost ~]# dumpe2fs -h /dev/sda5
Default mount options:    user_xattr acl
#dumpe2fs命令是查询指定分区详细文件系统信息的命令
选项:
-- -h:仅显示超级块中信息,而不显示磁盘块组的详细信息

3)临时开启分区ACL权限

[root@localhost ~]# mount -o remount,acl /
#重新挂载根分区,并挂载加入acl权限

4)永久开启分区ACL权限

[root@localhost ~]# vi /etc/fstab
UUID=22029318-ae20-4bbd-b520-ce5d6fd8d4d5 /     ext4    defaults        1 1
# 加入acl
UUID=22029318-ae20-4bbd-b520-ce5d6fd8d4d5 /     ext4    defaults,acl    1 1
[root@localhost ~]# mount -o remount /
# 重新挂载文件系统或重启动系统,使修改生效

2、查看与设定ACL权限
1)查看ACL命令

[root@localhost ~]# getfacl 文件名
# 查看acl权限

2)设定ACL权限的命令

[root@localhost ~]# setfacl 选项 文件名
选项:
-- -m:设定ACL权限
-- -x:删除指定的ACL权限
-- -b:删除所有的ACL权限
-- -d:设定默认ACL权限
-- -k:删除默认ACL权限
-- -R:递归设定ACL权限

3)给用户设定ACL权限
Introduction of ACL

[root@localhost ~]# useradd tony
[root@localhost ~]# groupadd stu
[root@localhost ~]# mkdir /av
[root@localhost ~]# chown tony:stu /av
[root@localhost ~]# chmod 770 /av
[root@localhost ~]# useradd lw
[root@localhost ~]# setfacl -m u:lw:rx /av
# 给用户lw赋予r-x权限,使用"u:用户名:权限"格式

4)给用户组设定ACL权限

[root@localhost ~]# groupadd tgroup2
[root@localhost ~]# setfacl -m g:tgroup2:rwx /av
# 为组tgroup2分配ACL权限。使用"g:组名:权限"格式

3、最大有效权限与删除ACL权限
1)最大有效权限mask
# mask是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限”相与“才能得到用户的真正权限

修改最大有效权限

[root@localhost ~]# setfacl -m m:rx 文件名
# 设定mask权限为r-x。使用“m:权限”格式

2)删除ACL权限

[root@localhost ~]# setfacl -x u:用户名 文件名
# 删除指定用户的ACL权限

[root@localhost ~]# setfacl -x g:组名 文件名
# 删除指定用户组的ACL权限

[root@localhost ~]# setfacl -b 文件名
# 会删除文件的所有的ACL权限

4、默认ACL权限和递归ACL权限
1)递归ACL权限
递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。
# setfacl -m u:用户名:权限 -R 目录名

默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。
# setfacl -m d:u:用户名:权限 目录名

四、sudo权限
1、sudo权限
# root把本来只能超级用户执行的命令赋予普通用户执行。
# sudo的操作对象是系统命令

2、sudo使用

[root@localhost ~]# visudo
# 实际修改的是/etc/sudoers文件

root      ALL=(ALL) ALL
#用户名  被管理主机的地址=(可使用的身份)  授权命令(绝对路径)

#  %wheel  ALL=(ALL)    ALL
# %组名   被管理主机的地址=(可使用的身份)  授权命令(绝对路径)

五、文件特殊权限
1、SetUID
1)SetUID的功能
只有可以执行的二进制程序才能设定SUID权限
命令执行要对该程序拥有x(执行)权限
命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

2)设定SetUID的方法

4代表SUID
-- chmod 4755 文件名
-- chmod u+s 文件名

passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码

[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月  22 2012 /usr/bin/passwd

cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容

[root@localhost ~]# ll /bin/cat
-rwxr-xr-x. 1 root root 45224 11月 22 2013 /bin/cat

3)取消SetUID的方法
chmod 0755 文件名

chmod u-s 文件名

4)危险的SetUID
# 关键目录应严格控制写权限。比如”/”、”/usr”等
# 用户的密码设置要严格遵守密码三原则
# 对系统中默认应该具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限

新建suid权限文件列表suid.log

[root@localhost ~]# find / -perm -4000 -o -perm -2000 > suid.log

suid_check.sh

#!/bin/bash

find / -perm -4000 -o -perm -2000 > /tmp/setuid.check
#搜索系统中所有拥有SUID和SGID的文件,并保存在临时目录中
for i in $(cat /tmp/setuid.check)
#做循环,每次循环取出临时文件中的文件名
do
        grep $i /root/suid.log > /dev/null
        #对比这个文件名是否在模板文件中
        if [ "$?" != "0" ]
        #检测上一个命令的返回值,如果不为0,证明上一个命令报错
        then
                echo `date +"%Y-%m-%d %H:%M:%S"` "$i isn't in listfile!" >> /root/suid_log_$(date +%F)
                #如果文件名不再模板文件中,则输出错误信息,并把报错记录到日志中
        fi
done
rm -rf /tmp/setuid.check
#删除临时文件

2、SetGID
1)SetGID针对文件的作用
# 只有可执行的二进制程序才能设置SGID权限
# 命令执行者要对该程序拥有(执行)权限
# 命令执行在执行程序的时候,组身份升级为该程序文件属组
# SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效

2)SetGID针对目录的作用
# 普通用户必须对此目录拥有r和x权限,才能进入此目录
# 普通用户在些目录中的有效组会变成此目录的属组
# 若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组

3、Sticky BIT
1)SBIT粘着位作用
# 粘着位目前只对目录有效
# 普通用户对该目录拥有w和x权限,即普通用户可以在些目录拥有写入权限
# 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一但赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不删除其他用户建立的文件

2)设置与取消粘着位
设置粘着位
— chmod 1755 目录名
— chmod o+t 目录名

取消粘着位
— chmod 0777 目录名
— chmod o-t 目录名

六、不可改变位权限

Linux软件安装管理

一、软件包管理简介
1、软件包分类
1)源码包
#脚本安装包
2)二进制包(RPM包、系统默认包)

2、源码包
源码包的优点是:
— 开源,如果有足够的能力,可以修改源代码
— 可以自由选择所需的功能
— 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
— 卸载方便
源码包的缺点
— 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
— 编译过程时间较长,安装比二进制安装时间长
— 因为是编译安装,安装过程中一旦报错新手很难解决

3、RPM包
二进制包的优点:
— 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
— 安装速度比源码包安装快的多

二进制包缺点:
— 经过编译,不再可以看到源代码
— 功能选择不如源码包灵活
— 依赖性

4、脚本安装包
所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行程序脚本实现一键安装。但实际安装还是源码包和二进制包
— 优点:安装简单、快捷
— 缺点:完全丧失了自定义性

二、RPM命令管理
1、RPM包命名规则
1)RPM包的来源
RPM包在系统光盘中(Packages)

2)RPM包命令原则
httpd-2.2.15-15.el6.centos.1.i686.rpm
— httpd软件包名
— 2.2.15软件版本
— 15软件发布的次数
— el6.centos适合的Linux平台
— i686适合的硬件平台
— rpm rpm包扩展名

3)RPM包依赖性
— 树形依赖:a->b->c
— 环形依赖:a->b->c->a
— 模块依赖:模块依赖,查询网站:www.rpmfind.net

2、安装命令
1)包全名与包名
包全名:操作的包是没有安装的软件包时,使用包命名。而且要注意路径
包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库

2)RPM安装
rpm -ivh 包全名
选项:
— -i(install):安装
— -v(verbose):显示详细信息
— -h(hash):显示进度
— –nodeps:不检测依赖性

3、升级
rpm -Uvh 包全名
选项:
— -U(upgrade):升级

4、卸载
rpm -e 包名
选项:
— -e(erase):卸载
— –nodeps:不检查依赖性

5、RPM包查询
1)查询是否安装
rpm -q 包名
#查询包是否安装
— -q(query):查询

rpm -qa
#查询所有已经安装的RPM包
— -a(all):所有

2)查询软件包详细信息
rpm -qi 包名
选项:
— -i(information):查询软件信息
— -p(package):查询未安装包信息

3)查询包中文件安装位置
rpm -ql 包名
选项:
— -l(list):列表
— -p(package):查询未安装包信息

RPM包默认安装位置
The RPM package default installation location

4)查询系统文件属于哪个RPM包
rpm -qf 系统文件名
选项:
— -f(file):查询系统文件属性于哪个软件包

5)查询软件包的依赖性
rpm -qR 包名
选项:
— -R(requires):查询软件包的依赖性
— -p(package):查询未安装包信息

6、RPM包校验
1)RPM包校验
rpm -V 已安装的包名
选项:
— -V(verify):校验指定RPM包中的文件

验证内容中的8个信息的具体内容如下:
— S:文件大小是否改变
— M:文件的类型或文件的权限(rwx)是否被改变
— 5:文件MD5校验和是否改变(可以看成文件内容是否改变)
— D:设备的主从代码是否改变
— L:文件路径是否改变
— U:文件的属主(所有者)是否改变
— G:文件的属组是否改变
— T:文件的修改时间是否改变

文件类型
— c(config file):配置文件
— d(documentation):普通文档
— g(ghost file):”鬼“文件,很少见,就是该文件不应该被这个RPM包包含
— L(license file):授权文件
— r(read me):描述文件

2)RPM包中文件提取
rpm2cpio 包全名 | cpio -idv .文件绝对路径
— rpm2cpio
#将rpm包转换为cpio格式的命令
— cpio
#是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件

[root@localhost ~]# cpio 选项 < [文件|设备]
选项:
-- -i:copy-in模式,还原
-- -d:还原时自动新建目录
-- -v:显示还原过程

[root@localhost ~]# rpm -qf /bin/ls
#查询ls命令属于哪个软件包
[root@localhost ~]# mv /bin/ls /tmp/
#造成ls命令误删除假象
[root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
#提取RPM包中ls命令到当前目录的/bin/ls下
[root@localhost ~]# cp /root/bin/ls /bin/
#把ls命令复制回/bin/目录,修复文件丢失

三、yum在线管理
1、Yum源文件

[root@localhost ~]# vi /etc/yum.repos.d/CentOS-Base.repo
-- [base]:容器名称,一定要放在[]中
-- name:容器说明,可以自己随便写
-- mirrorlist:镜像站点,这个可以注释掉
-- baseurl:我们的yum源服务的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址
-- enabled:此容器是否生效,如果不写或写成enable=1都是生效,写成enable=0就是不生效
-- gpgcheck:如果是1是指RPM的数字证书生效,如果是0则不生效
-- gpgkey:数字证书的公钥文件保存位置,不用修改

2、光盘搭建yum源
1)挂载光盘

[root@localhost ~]# mkdir /mnt/cdrom
#建立挂载点
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
#挂载光盘

2)使用网络yum源失效

[root@localhost ~]# cd /etc/yum.repos.d/
#进入yum源目录
[root@localhost ~]# mv CentOS-Base.repo CentOS-Base.repo.bak
#修改yum源文件后缀名,使其失效

3)使光盘yum源生效

[root@localhost ~]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/  #地址改为你自己的光盘挂载地址如:file:///mnt/cdrom
        file:///media/cdrom/
        file:///media/cdrecorder/  #注释这两个不存在的地址
gpgcheck=1
enabled=0      #把enabled=0改为enabled=1,让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

3、yum命令
1)常用yum命令
(1)查询

yum list
#查询所有可用软件包列表

yum search关键字
#搜索服务器上所有和关键字相关的包

(2)安装

[root@localhost ~]# yum -y install 包名
选项:
-- install:安装
-- -y:自动回答yes
例如:
[root@localhost ~]# yum -y install gcc

(3)升级

[root@localhost ~]# yum -y update 包名
选项:
--  update:升级
-- -y:自动回答yes

(4)卸载

[root@localhost ~]# yum -y remove 包名
选项:
-- remove:卸载
-- -y:自动回答yes

2、YUM软件组管理命令

[root@localhost ~]# yum grouplist
#列出所有可用的软件组列表

[root@localhost ~]# yum groupinstall 软件组名
#安装指定软件组,组名可以由grouplist查询出来

[root@localhost ~]# yum groupremove 软件组名
#卸载指定软件组

四、源码包管理
1、源码包和RPM包的区别
1)安装之前的区别:概念上的区别

2)安装之后的区别:安装位置不同

3)源码包安装位置
#安装在指定位置当中,一般是
/usr/local/软件名/

4)安装位置不同带来的影响
#RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是

[root@localhost ~]# /etc/rc.d/init.d/httpd start
或
[root@localhost ~]# service httpd start
#service命令是redhat系统专有的命令

#而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,如:
[root@localhost ~]# /usr/local/apache2/bin/apachectl start

2、源码包安装过程
1)安装准备
#安装C语言编译器
#下载源码包
http://mirror.bit.edu.cn/apache/httpd/

2)安装注意事项
#源代码保存位置:/usr/local/src/
#软件安装位置:/usr/local/
#如何确定安装过程报错:
— 安装过程停止
— 并出现error、warning或no的提示

3)源码包安装过程

#下载源码包
#解压缩下载的源码包
[root@localhost ~]# tar -zxvf httpd-2.2.9.tar.gz
#进入解压缩目录
[root@localhost ~]# cd httpd-2.2.9
#./configure 软件配置与检查
-- 定义需要的功能选项。
-- 检测系统环境是否符合安装要求。
-- 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编译。
[root@localhost ~]# ./configure --prefix=/usr/local/apache2
#指定安装路径
[root@localhost ~]# make 
#预编译
[root@localhost ~]# make clean
#如果出错使用这个清除编译
[root@localhost ~]# make install 
#编译安装

五、脚本安装包
强大的Nginx服务器
#Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POPS)代理服务器,由俄国公司在2004年发布
Nginx comparison with Apache, Lighttpd

准备工作
#关闭RPM包安装的httpd和MySQL
#保证yum源正常使用
#关闭SELinux和防火墙

[root@localhost ~]# vi /etc/selinux/config
SELINUX=enforcing   #改为 SELINUX=disabled
#关闭SELinux

下载LAMP
http://lnmp.org/install.html

#脚本一键安装包
[root@localhost ~]# wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./centos.sh

centos.sh脚本分析
#所谓的一键安装包,实际上还是安装的源码包与RPM包,只是把安装过程写成了脚本,便于初学者安装
#优点:简单、快速、方便
#缺点:
— 不能定义安装软件的版本
— 不能定义所需要的软件功能(源码包的优势丧失)

Linux下查看、关闭及开启防火墙命令

Linux下查看、关闭及开启防火墙命令
1)永久性生效,重启后不会复原
开启: chkconfig iptables on 关闭: chkconfig iptables off

2)即时生效,重启后复原
开启: service iptables start 关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口, 修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

3)查看防火墙状态
chkconfig iptables –list