【463.com】Nginx(一)初始环境的安装(php5.3+mysql5.1+fastcgi…)

关参考资源 http://www.lnmp.org/index.html \\LNMP一键安装包 http://www.howtocn.org/nginx \\Nginx模块参考手册中文版 http://blog.s135.com/nginx\_php\_v6/ \\张宴写的nginx文章 http://www.nginx.com.cn/ \\nginx中文网

一、fedora系统的网络配置文件

如下为我写的。。。。。。

     
要建立一个Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置。在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,下面介绍几个基本的TCP/IP网络配置文件。
1./etc/sysconfig/network-scripts/ifcfg-<interface-name>文件
在RedHat中,系统网络设备的配置文件保存在/etc/sysconfig/network-scripts目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。在启动时,系统通过读取这个配置文件决定某个网卡是否启动和如何配置。
下面是/etc/sysconfig/network-scripts/ifcfg-eth0文件的示例:

yum -y remove httpd*
yum -y remove mysql*
yum -y remove php*

 

时间同步
/usr/sbin/ntpdate 0.rhel.pool.ntp.org > /dev/null 2>&1 ; /sbin/clock -w > /dev/null 2>&1

DEVICE=eth0
HWADDR=00:e0:4c:fe:bb:f5
ONBOOT=yes
BOOTPROTO=none
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
NM_CONTROLLED=yes
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=192.168.0.[ip]
GATEWAY=192.168.0.1
DNS1=202.96.128.68
DNS2=202.96.128.133

yum –enablerepo=remi -y install gcc gcc-c++ automake autoconf libtool

若希望手工修改网络地址或增加新的网络连接,可以通过修改对应的文件ifcfg-<interface-name>或创建新的文件来实现。
DEVICE=<name> <name>表示物理设备的名字
IPADDR=<address> <address>表示赋给该网卡的IP地址
NETMASK=<mask> <mask>表示子网掩码
BROADCAST=<address> <address>表示广播地址
ONBOOT=yes/no 启动时是否激活该卡
BOOTPROTO=none none:无须启动协议
bootp:使用bootp协议
dhcp:使用dhcp协议
GATEWAY=<address> <address>表示默认网关
MACADDR=<MAC-address> <MAC-address>表示指定一个MAC地址
USERCTL=yes/no 是否允许非root用户控制该设备

yum -y –enablerepo=remi install gd freetype gd-devel.x86_64 freetype.x86_64 \
freetype-devel.x86_64 libjpeg.x86_64 libjpeg-devel.x86_64  \
libpng.x86_64 libpng-devel.x86_64 libxml2.x86_64 libxml2-devel.x86_64 \
zlib.x86_64  zlib-devel.x86_64 libevent.x86_64 libevent-devel.x86_64 \
bzip2.x86_64 bzip2-devel.x86_64 glib.x86_64 glib-devel.x86_64 glib2.x86_64 glib2-devel.x86_64

2./etc/resolv.conf文件
文件/etc/resolv.conf配置DNS客户端,它包含了DNS服务器地址和域名搜索配置,每一行应包含一个关键字和一个或多个的由空格隔开的参数。下面是一个例子文件:
search wuxp.com
nameserver 192.168.0.1
nameserver 192.168.0.2

yum –enablerepo=remi -y install libc-client.x86_64  libc-client-devel.x86_64

search
wuxp.com:表示当提供了一个不包括完全域名的主机名时,在该主机名后添加wuxp.com的后缀;
nameserver:表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。因此,应该首先给出最可靠的服务器。目前,至多支持三个名字服务器。

yum –enablerepo=remi -y install net-snmp.x86_64 net-snmp-devel.x86_64 \
net-snmp-libs.x86_64 net-snmp-utils.x86_64 net-snmp-perl.x86_64

可以在/etc/sysconfig/network-scripts/ifcfg-eth0中直接设置DNS,如文章开头的例子:

ln -s /usr/lib64/libpng.so /usr/lib/
ln -s /usr/lib64/libc-client.a /usr/lib/
我的是64位系统所以要做这一步

PEERDNS=yes


相关软件包的下载,有必要时可到链接处找最新的安装包

 DNS1=202.96.128.68

mkdir /usr/local/src/lnmp
wget -c http://nginx.org/download/nginx-0.9.1.tar.gz
wget -c http://cn2.php.net/get/php-5.3.3.tar.gz/from/cn.php.net/mirror
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.53.tar.gz/from/http://mysql.ntu.edu.tw/
wget -c http://soft.vpser.net/web/pdo/PDO_MYSQL-1.0.2.tgz
wget -c http://pecl.php.net/get/memcache-3.0.5.tgz
wget -c http://soft.vpser.net/web/pcre/pcre-8.10.tar.gz
wget -c http://soft.vpser.net/web/libiconv/libiconv-1.13.tar.gz
wget -c http://soft.vpser.net/web/libmcrypt/libmcrypt-2.5.8.tar.gz
wget -c http://soft.vpser.net/web/mhash/mhash-0.9.9.9.tar.gz
wget -c http://soft.vpser.net/web/mcrypt/mcrypt-2.6.8.tar.gz
wget -c http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2

3./etc/sysconfig/network文件
该文件用来指定服务器上的网络配置信息,下面是一个示例:
NETWORK=yes
RORWARD_IPV4=yes
HOSTNAME=server.wuxp.com
GAREWAY=192.168.0.1
GATEWAYDEV=eth0

Install

NETWORK=yes/no 网络是否被配置
FORWARD_IPV4=yes/no 是否开启IP转发功能
HOSTNAME=<hostname> <hostname>表示服务器的主机名
GAREWAY=<address> <address>表示网络网关的IP地址
GAREWAYDEV=<device> <device>表示网关的设备名,如:eth0

cd /usr/local/src/lnmp;cur_dir=$(pwd)
cd $cur_dir; tar zxvf libiconv-1.13.tar.gz
cd libiconv-1.13/
./configure –prefix=/usr/local
make && make install

 

cd $cur_dir
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make && make install
/sbin/ldconfig
cd libltdl/
./configure –enable-ltdl-install
make && make install

cd $cur_dir
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make && make install
cd ../

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ldconfig

cd $cur_dir
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
./configure
make && make install
cd ../

4./etc/hosts文件
当机器启动时,在可以查询DNS以前,机器需要查询一些主机名到IP地址的匹配。这些匹配信息存放在/etc/hosts文件中。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。
下面是一个/etc/hosts文件的示例:
127.0.0.1 Localhost server.wuxp.com
192.168.0.3 station1.wuxp.com

Mysql的安装

最左边一列是主机IP信息,中间一列是主机名。任何后面的列都是该主机的别名。

cd $cur_dir
tar -zxvf mysql-5.1.53.tar.gz
cd mysql-5.1.53/
groupadd mysql
useradd -g mysql mysql
./configure –prefix=/usr/local/mysql –sysconfdir=/etc \
–with-extra-charsets=all \
–with-charset=utf8 \
–with-plugins=all \
–with-big-tables \
–with-embedded-server \
–enable-local-infile \
–enable-assembler \
–with-mysqld-user=mysql

 

###如果报configure: error: No curses/termcap library found
#yum –enablerepo=remi -y install ncurses.x86_64 ncurses-devel.x86_64

make && make install
cd ../
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
chown -R mysql.mysql /usr/local/mysql/
sed -i ‘s/skip-locking/skip-external-locking/g’ /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db –user=mysql
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chkconfig –level 345 mysql on
echo “/usr/local/mysql/lib/mysql” >> /etc/ld.so.conf
echo “/usr/local/lib” >>/etc/ld.so.conf
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
ldconfig
/etc/init.d/mysql start
/etc/init.d/mysql restart

网络配置例子:

php+fast-cgi的安装, 5.3.3 源码中开始包含
php-fpm,不用专门再打补丁了,只需要解开源码直接configure,关于php-fpm的编译参数有
–enable-fpm –with-fpm-user=www –with-fpm-group=www
–with-libevent-dir=libevent位置。

你可以进入/etc/sysconfig/network-scripts。找到ifcfg-eth0.编辑它如下:
DEVICE = eth0
ONBOOT = yes
BOOTPROTO = static
IPADDR= 10.9.100.221(你需要的固定ip)
NETMASK=255.0.0.0
GATEWAY=10.255.255.254
如果需要动态分配IP,那么
DEVICE = eth0
ONBOOT = yes
USERCTL = yes
BOOTPROTO = dhcp

cd $cur_dir
tar zxvf php-5.3.3.tar.gz
cd php-5.3.3
./configure –prefix=/usr/local/php  \
–with-config-file-path=/usr/local/php/etc \
–with-mysql=/usr/local/mysql \
–with-mysqli=/usr/local/mysql/bin/mysql_config \
–with-gd \
–with-freetype-dir \
–with-jpeg-dir \
–with-png-dir \
–with-zlib \
–with-imap \
–with-kerberos \
–with-imap-ssl \
–with-mhash \
–with-mcrypt \
–with-curl \
–with-curlwrappers \
–with-openssl \
–with-gettext \
–with-iconv-dir \
–with-libxml-dir \
–enable-fpm \
–with-fpm-user=www \
–with-fpm-group=www \
–with-libevent-dir \
–enable-inline-optimization \
–enable-mbstring \
–enable-ftp \
–enable-gd-native-ttf \
–enable-zip \
–enable-sockets

 

#Kerberos libraries not found  ,解决方法是,ln -s /usr/lib64/ /usr/kerberos/lib

make ZEND_EXTRA_LIBS=’-liconv’
make install
cp php.ini-production /usr/local/php/etc/php.ini
cd ../
ln -s /usr/local/php/bin/php /usr/bin/php
ln -s /usr/local/php/sbin/php-fpm /usr/bin/php-fpm

cd $cur_dir
tar -zxvf memcache-3.0.5.tgz
cd memcache-3.0.5/
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make && make install
cd ../

cd $cur_dir
tar -jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
/usr/local/php/bin/phpize
./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config
make && make install
mkdir -p /usr/local/eaccelerator_cache
chmod 777 /usr/local/eaccelerator_cache

cd $cur_dir
tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-mysql=/usr/local/mysql
make && make install
cd ../

sed -i ‘s/;date.timezone =/date.timezone = Asia\/Shanghai/g’ /usr/local/php5/etc/php.ini
sed -i ‘s/short_open_tag = Off/short_open_tag = On/g’ /usr/local/php5/etc/php.ini
sed -i ‘s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g’ /usr/local/php5/etc/php.ini
sed -i ‘s/upload_max_filesize = 2M/upload_max_filesize = 50M/g’ /usr/local/php5/etc/php.ini
sed -i ’262i output_buffering = On’ /usr/local/php5/etc/php.ini

#————————-编辑php.ini文件做如下修改————————————-#
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/”
extension = “memcache.so”
extension = “pdo_mysql.so”

[eaccelerator]
;#######################zend_extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so”
extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so”
eaccelerator.shm_size=”64″
eaccelerator.cache_dir=”/usr/local/eaccelerator_cache”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”3600″
eaccelerator.shm_prune_period=”3600″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″

#————————–配置php-fpm.conf,如下操作————————————–#
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
vi /usr/local/php/etc/php-fpm.conf

[global]
pid = /usr/local/php5/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice
[www]
listen = 127.0.0.1:9000
user = www
group = www
pm = dynamic
pm.max_children = 2000
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35

groupadd www
useradd -g www www
mkdir -p /var/www/html
chown www.www /var/www/html/

完了之后:/etc/rc.d/init.d/network restart  或  /etc/init.d/network
restart。

cd $cur_dir
tar zxvf pcre-8.10.tar.gz
cd pcre-8.10/
./configure
make && make install
cd ../

 

tar zxvf nginx-0.9.1.tar.gz
cd nginx-0.9.1
./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module
make && make install
cd ../

 

cat >/var/www/html/phpinfo.php<<eof
<?php
phpinfo();
?>
eof

二、ubuntu系统的网络配置文件


给PHP加速,eAccelerator配置和使用指南
http://www.toplee.com/blog/100.html\#pp2
http://eaccelerator.net/wiki/InstallFromSource //安装文档
http://eaccelerator.net/wiki/Settings //配置说明

Ubuntu 的网络配置文件主要有以下几个

php-fpm管理 kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid`              
//终止
/usr/local/php5/sbin/php-fpm                                       //启动
kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid`         
//重启
kill -SIGUSR1 `cat /usr/local/php/var/run/php-fpm.pid`          //日志

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

nginx管理 /usr/local/nginx/sbin/nginx                                                      
//启动
/usr/local/nginx/sbin/nginx -s
reload                                            //平滑重启
/usr/local/nginx/sbin/nginx
-t                                                   //测试

  1. 以DHCP方式配置网卡

Others nginx0.8.52+php5.3.3
http://addcn.blogbus.com/tag/php5.3.3/

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

Category: 环境配置/软件安装  |  评论

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

XHProf安装使用笔记

2012 年 10 月 26 日, 上午 1:29

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

XHProf安装使用笔记

编译安装

获取源代码包
root@sourcjoy>wget http://pecl.php.net/get/xhprof-0.9.2.tgz
解压
root@sourcjoy>tar zxf xhprof-0.9.2.tgz
root@sourcjoy>cd xhprof-0.9.2
复制web访问目录到web应用目录
root@sourcjoy>cp -r xhprof_html xhprof_lib /var/www/html/ 
#复制xhprof的展示页面目录和库目录到web目录下,可以为xhprof_html建个虚拟目录来访问,也可以把这两个目录拷贝到应用的根目录下。
root@sourcjoy>cd extension/
编译插件
root@sourcjoy>/usr/local/webserver/php/bin/phpize
root@sourcjoy>./configure
–with-php-config=/usr/local/webserver/php/bin/php-config
root@sourcjoy>make
root@sourcjoy>make install
注意:这里安装的时候可能会出现访问php.ini没权限的问题,请把php.ini的权限改成666:
chmod 666 /usr/local/webserver/php/etc/php.ini

配置 php.ini 文件
root@sourcjoy>vi
/usr/local/webserver/php/etc/php.ini在合适位置加入以下内容:

[xhprof]
extension=xhprof.so;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
;
;xhprof.output_dir=<directory_for_storing_xhprof_runs>xhprof.output_dir=/var/logs/xhprof

重启web服务器

为了更加清晰显示程序执行、调用结构,安装Graphviz,如果安装了Graphviz,XHProf会用比较牛的图形方式展现统计数据。
获取源码包
root@sourcjoy>wget
http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
root@sourcjoy>tar zxf graphviz-2.24.0.tar.gz
root@sourcjoy>cd graphviz-2.24.0
编译安装
root@sourcjoy>./configure
root@sourcjoy>make
root@sourcjoy>make install

接下来在要统计的php应用中加入以下语句:
xhprof_enable(); // 统计的代码部分之前加,如果要显示CPU占用
可以加入XHPROF_FLAGS_CPU参数,内存是XHPROF_FLAGS_MEMORY,如果两个一起:XHPROF_FLAGS_CPU

  • XHPROF_FLAGS_MEMORY,如:xhprof_enable(XHPROF_FLAGS_CPU +
    XHPROF_FLAGS_MEMORY);

xhprof_disable();//统计的代码部分之后加

这样xhprof就可以统计当前页面的函数性能情况了。xhprof会把每次访问加入统计代码的页面的性能统计结果在指定目录下生成一个文件,文件名命名方式为:本次访问的系统ID.命名空间,每次刷新页面都会重新生成一个文件,每个的系统ID都不同。

然后通过xhprof_html目录的http访问url来查看结果。如:http://app/xhprof\_html/?run=运行id&source=命名空间(其中运行ID和命名空间可以根据xhprof生成的文件名来确定)
下面是个例子:

<?php
function a(){
echo ‘a’;
}
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);  
//XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY
// run program
a();
// stop profiler
$xhprof_data = xhprof_disable();   //返回运行数据

// 下面是保存运行数据
include_once “xhprof_lib/utils/xhprof_lib.php”;
include_once “xhprof_lib/utils/xhprof_runs.php”;

$xhprof_runs = new XHProfRuns_Default();

$run_id = $xhprof_runs->save_run($xhprof_data, “sourcejoy”);  
//第一个参数是
xhprof_disable()函数返回的运行信息,第二个参数是自定义的命名空间字符串(任意字符串),返回运行ID。
?>
名词:

  1. Inclusive Time :包括子函数所有执行时间。
  2. Exclusive Time/Self
    Time:函数执行本身花费的时间,不包括子树执行时间。
  3. Wall Time:花去了的时间或挂钟时间。
  4. CPU Time:用户耗的时间+内核耗的时间
    5.Inclusive CPU:包括子函数一起所占用的CPU
    6.Exclusive CPU:函数自身所占用的CPU

最后要说点,这个xhprof程序有点小bug,还不支持php5.2一下的版本,不过这都是小问题,关键是能直观告诉我们程序的性能问题,这个很重要,我们自己开发程序的时候用这个进行性能检查是很不错的。

-END-

本文是sourcejoy.com的原创文章,要转载必须写明来自http://www.sourcejoy.com/ 如果没表明转载自本站,

http://www.sourcejoy.com/php\_dev/xhprof\_install\_and\_usage.html

Category: 高负载与系统架构/系统分析  |  评论

sudo dhclient eth0

启动php-fpm的时候出现 Starting php_fpm Dec 29 15:27:32.502790 [ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool ‘default’

2012 年 10 月 25 日, 上午 10:01

启动php-fpm的时候出现
Starting php_fpm Dec 29 15:27:32.502790 [ERROR]
fpm_unix_conf_wp(), line 124: please specify user and group other
than root, pool ‘default’
解决办法;
只需要修改php-fpm.conf
Unix user of processes
<!–     <value name=”user”>nobody</value>   –>
Unix group of processes
<!–     <value name=”group”>nobody</value>   –>

将<!– –>去掉即可。至于user/group根据实际情况修改(www)。
重新启动 /usr/local/webserver/php-fpm/sbin/php-fpm start 成功了!

Category: 环境配置/软件安装  |  评论

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

RedHat Linux网络配置文件详解

2012 年 10 月 24 日, 上午 7:31

目前在企业级服务器的Linux系统中,RHEL占有绝对的优势,不管是曾经在互联网公司还是在目前测试Virtualization都是用的RHEL,所以本文主要是针对RedHat的linux来写的。前阵子有一次也被测试中的各种网络配置给搞晕了,因为我们VT-D和SR-IOV基本上都用NIC来测试的。收集了点资料,结合实际经验总结一下。

Redhat
Linux的网络配置,基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用hostname来配置主机名,但是重启后会丢失。

Linux中网络相关的主要的几个配置文件为:
/ect/hosts配置主机名(域名)和IP地址的对应
/etc/sysconfig/network配置主机名和网关
/etc/sysconfig/network-scripts/ifcfg-eth0
eth0配置文件,eth1则文件名为ifcfg-eth1,以此类推/etc/resolv.conf配置DNS客户端(关于使用哪个DNS服务器的配置)

1./etc/sysconfig/network-scripts/ifcfg-<interface-name>文件 在RedHat中,系统网络设备的配置文件保存在/etc/sysconfig/network-scripts目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。在启动时,系统通过读取这个配置文件决定某个网卡是否启动和如何配置。
下面是/etc/sysconfig/network-scripts/ifcfg-eth0文件的示例:
DEVICE=eth0
IPADDR=192.168.0.2
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
NBOOT=yes
BOOTPROTO=none
GATEWAY=192.168.0.1

若希望手工修改网络地址或增加新的网络连接,可以通过修改对应的文件ifcfg-<interface-name>或创建新的文件来实现。
DEVICE=<name>   <name>表示物理设备的名字
IPADDR=<address>   <address>表示赋给该网卡的IP地址
NETMASK=<mask>  <mask>表示子网掩码
BROADCAST=<address> <address>表示广播地址
NBOOT=yes/no  启动时是否激活该卡
BOOTPROTO=none  none:无须启动协议;bootp:使用bootp协议;dhcp:使用dhcp协议
GATEWAY=<address> <address>表示默认网关
MACADDR=<MAC-address> <MAC-address>表示指定一个MAC地址
USERCTL=yes/no    是否允许非root用户控制该设备

2./etc/resolv.conf文件 文件/etc/resolv.conf配置DNS客户端,它包含了DNS服务器地址和域名搜索配置,每一行应包含一个关键字和一个或多个的由空格隔开的参数。下面是一个例子文件:
search wuxp.com
nameserver 192.168.0.1
nameserver 192.168.0.2

search
wuxp.com:表示当提供了一个不包括完全域名的主机名时,在该主机名后添加wuxp.com的后缀;nameserver:表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。因此,应该首先给出最可靠的服务器。目前,至多支持三个名字服务器。

3./etc/sysconfig/network文件
该文件用来指定服务器上的网络配置信息,下面是一个示例:
NETWORK=yes
RORWARD_IPV4=yes
HOSTNAME=server.wuxp.com
GAREWAY=192.168.0.1
GATEWAYDEV=eth0

NETWORK=yes/no    网络是否被配置
FORWARD_IPV4=yes/no    是否开启IP转发功能
HOSTNAME=<hostname> <hostname>表示服务器的主机名
GAREWAY=<address>    <address>表示网络网关的IP地址
GAREWAYDEV=<device>  <device>表示网关的设备名,如:eth0

4./etc/hosts文件
当机器启动时,在可以查询DNS以前,机器需要查询一些主机名到IP地址的匹配。这些匹配信息存放在/etc/hosts文件中。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。
下面是一个/etc/hosts文件的示例:
127.0.0.1 Localhost server.wuxp.com
192.168.0.3 station1.wuxp.com
最左边一列是主机IP信息,中间一列是主机名。任何后面的列都是该主机的别名。

修改后,需要重启网络才会生效:重新启动网络设置:/sbin/service network
restart
service network start //启动网络服务
service network stop //停止网络服务
service network status //查看网络服务状态

另外,还有单个网卡绑定多个IP和多个网卡绑定为一块虚拟网卡的配置。

1、单网卡绑定多个IP

有时,我们需要在一块网卡上配置多个IP,例如,在上面的例子中,我们还需要为eth0配置IP
192.168.168.2和192.168.168.3。那么需要再在/etc/sysconfig/network-scripts下新建两个配置文件:

ifcfg-eth0:0内容如下:

DEVICE=eth0:0
BOOTPROTO=static
IPADDR=192.168.168.2
NETMASK=255.255.255.0
NBOOT=yes

ifcfg-eth0:1内容如下:

DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.168.168.3
NETMASK=255.255.255.0
NBOOT=yes

2、多个网卡绑定成一块虚拟网卡

为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。比如我们可以将eth0和eth1绑定成虚拟网卡bond0

首先在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0,内容如下

DEVICE=bond0
BOOTPROTO=none
BROADCAST=192.168.168.255
IPADDR=192.168.168.1
NETMASK=255.255.255.0
NETWORK=192.168.168.0
NBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.168.250
USERCTL=no

然后分别修改eth0和eth1的配置文件
ifcfg-eth0内容:

DEVICE=eth0
BOOTPROTO=none
NBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes

ifcfg-eth1内容

DEVICE=eth1
BOOTPROTO=none
NBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes

因为linux的虚拟网卡是在内核模块中实现的,所以需要安装的时候已经装好该module。在/etc/modprobe.conf文件(好像有些老版本是/etc/modules.con)中添加如下内容(如果没有该文件,则新建一个):

alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0

其中miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡
mode=1表示主备模式,也就是只有一块网卡是active的,只提供失效保护。如果mode=0则是负载均衡模式的,所有的网卡都是active,还有其他一些模式很少用到
primary=eth0表示主备模式下eth0为默认的active网卡

最后,在/etc/rc.local中加入

modprobe bonding miimon=100 mode=1

重启机器后可以看到虚拟网卡已经生效,可以通过插拔两个物理网卡的网线来进行测试,不过linux中网卡接管的时间好象比较长。

参考资料:

http://ningzi82.itpub.net/post/12186/505365

http://www.ningoo.net/html/2007/redhat\_linux\_network\_configuration\_and\_bond.html

Category: linux/运维  |  评论

编辑文件/etc/network/interfaces:

相关文章