CentOS 6.8 配置 LNMP(Linux+Nginx+PHP5+MySQL)

1、使用 yum 直接安装 Nginx

[root@hexingxing ~]#  yum install -y nginx
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Determining fastest mirrors
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.nwsuaf.edu.cn
No package nginx available.
错误:无须任何处理

## 系统不能直接 yum install nginx,判断可能 yum 源有问题

2、下载 Nginx 源

[root@hexingxing html]# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
Retrieving http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
warning: /var/tmp/rpm-tmp.KcjpHW: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing...                ########################################### [100%]
1:nginx-release-centos   ########################################### [100%]

##下载成功

3、查看 Nginx 源是否下载成功

[root@hexingxing ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Vault.repo  nginx.repo

## 在/etc/yum.repos.d/ 存在 nginx.repo 文件,那么可以安装了,为了确认是否可安装,先查看下 Nginx 的软件信息

4、查看 Nginx 软件信息

[root@hexingxing html]# yum info nginx
已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: ftp.sjtu.edu.cn
* updates: centos.ustc.edu.cn
nginx                                                                                                                                                     | 2.9 kB     00:00
nginx/primary_db                                                                                                                                          |  15 kB     00:00
可安装的软件包
Name        : nginx
Arch        : x86_64
Version     : 1.10.1
Release     : 1.el6.ngx
Size        : 821 k
Repo        : nginx
Summary     : High performance web server
URL         : http://nginx.org/
License     : 2-clause BSD-like license
Description : nginx [engine x] is an HTTP and reverse proxy server, as well as
: a mail proxy server.

## 可以获取到 Nginx 的软件信息,说明已经可以安装了

5、安装 Nginx

[root@hexingxing ~]# yum install nginx
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: ftp.sjtu.edu.cn
* updates: centos.ustc.edu.cn
解决依赖关系
--> 执行事务检查
---> Package nginx.x86_64 0:1.10.1-1.el6.ngx will be 安装
--> 完成依赖关系计算

依赖关系解决

=================================================================================================================================================================================
软件包                                 架构                                    版本                                                仓库                                    大小
=================================================================================================================================================================================
正在安装:
nginx                                  x86_64                                  1.10.1-1.el6.ngx                                    nginx                                  821 k

事务概要
=================================================================================================================================================================================
Install       1 Package(s)

总下载量:821 k
Installed size: 2.1 M
确定吗?[y/N]:y
下载软件包:
nginx-1.10.1-1.el6.ngx.x86_64.rpm                                                                                                                         | 821 kB     00:23
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
Warning: RPMDB altered outside of yum.
正在安装   : nginx-1.10.1-1.el6.ngx.x86_64                                                                                                                                 1/1
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------
Verifying  : nginx-1.10.1-1.el6.ngx.x86_64                                                                                                                                 1/1

已安装:
nginx.x86_64 0:1.10.1-1.el6.ngx

完毕!

##Nginx 安装完成

6、启动 Nginx

[root@hexingxing ~]# service nginx start
正在启动 nginx:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
[失败]

##发现启动 Nginx 失败,根据以上错误信息,我发现可能是因为之前已安装并启动了 Apache,可能因此而报错,所以我现在停止 Apache 服务

6、停止 Apache

[root@hexingxing ~]# service httpd stop
停止 httpd:                                               [确定]

##停止 Apache

7、启动 Nginx

[root@hexingxing ~]# service nginx start
正在启动 nginx:                                           [确定]

##启动 Nginx 成功

8、访问服务器 IP

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

##访问服务器 IP 出现以上提示,说明 Nginx 已经安装成功并且可用,Nginx 的 Web 默认目录为 /usr/share/nginx/html/ ,可在此目录下放置网站文件,安装了 PHP 后可运行 PHP 网站。

 

到此,Nginx 已经安装成功。如果 Nginx 的 Web 页面不能访问可能还需要配置服务器的防火墙,配置防火墙和继续安装 MySQL 和 PHP ,可以参考何星星之前写的一篇《CentOS 6.8 配置 LAMP(Linux+Apache+PHP+MySQL)环境》。

 

CentOS 安装和配置 phpMyAdmin

一、安装 phpMyAdmin

[root@hexingxing /]# yum install -y phpMyAdmin
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
Resolving Dependencies
...
Installed:
  phpMyAdmin.noarch 0:4.0.10.19-1.el6                                                               

Dependency Installed:
  dejavu-fonts-common.noarch 0:2.33-1.el6              dejavu-sans-fonts.noarch 0:2.33-1.el6       
  fontpackages-filesystem.noarch 0:1.41-1.1.el6        libtidy.x86_64 0:0.99.0-19.20070615.1.el6   
  php-fedora-autoloader.noarch 0:1.0.0-0.1.rc1.el6     php-php-gettext.noarch 0:1.0.12-1.el6       
  php-process.x86_64 0:5.3.3-49.el6                    php-tcpdf.noarch 0:6.2.13-1.el6             
  php-tcpdf-dejavu-sans-fonts.noarch 0:6.2.13-1.el6    php-tidy.x86_64 0:5.3.3-49.el6              

Complete!

# 以上已成功安装 phpMyAdmin

[root@hexingxing /]# cd /usr/share/

# 进入到 phpMyAdmin 的默认位置

[root@hexingxing share]# ll
...
drwxr-xr-x    9 root root  4096 May 13 18:57 phpMyAdmin
...

# 确认 phpMyAdmin 存在这个目录

[root@hexingxing share]# cp -r phpMyAdmin/ /usr/share/nginx/html

# 将 phpMyAdmin 整个目录复制到我们目前的网页目录,这个目录可能不是默认的以上位置

二、配置 phpMyAdmin
1、打开通过 http://your.domain.com/phpMyAmin/ 测试访问,将显示 phpMyAdmin 登录页面,键入用户和密码登录;
2、点击 “数据库” 项目,新建数据库,命名数据库名称(mytest),以及 排序规则(utf8_general_ci);
3、创建后,点击 mytest 数据库,即可查看该数据库里的内容,当然,此时应该是空的。

三、可能遇到的问题
1、Wordpress 安装主题和插件出现权限问题时,
① 在 wp-config.php 文件中配置以下字段(放在最后一个配置字段之前):

define('WP_TEMP_DIR', ABSPATH.'wp-content/tmp');/* WordPress 的临时目录。*/
define("FS_METHOD", "direct");  
define("FS_CHMOD_DIR", 0777);  
define("FS_CHMOD_FILE", 0777);  

② 在 wp-content 目录下创建 tmp 和 upgrade 子目录,并为 wp-content 目录下的 languages、plugins、themes、tmp、upgrade、uploads 目录配置权限为 777

[root@hexingxing wp-content]# chmod 777 languages plugins themes tmp upgrade uploads

Linux 隐藏 Nginx 和 PHP 版本信息

1、隐藏 Nginx 版本信息

进入 Nginx 配置文件的目录,默认在 /etc/nginx/ 目录下,用 vi 编辑打开

[root@hexingxing nginx]# vi nginx.conf

在 http {…} 里添加 server_tokens off; 字段,如:

http {
...
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
server_tokens off;
...
}

重启 Nginx 服务即可生效

[root@hexingxing nginx]# service nginx restart

2、隐藏 PHP 版本信息
进入 PHP 配置文件的目录,默认在 /etc/ 目录下,用 vi 编辑打开

[root@hexingxing etc]# vi php.ini

在 php.ini 文件里使用 / expose_php 命令搜索到对应字段位置后,将 expose_php = On 改为 expose_php = Off
重启 PHP 服务即可生效

[root@hexingxing etc]# service php-fpm restart

CentOS 6.8 配置 LAMP(Linux+Apache+PHP+MySQL)环境

前期准备

1、配置防火墙,开启 80 端口、3306 端口

[root@hexingxing ~]# vi /etc/sysconfig/iptables #编辑防火墙规则

 

将以下两条记录添加到默认的 22 端口这条规则的下面

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许 80 端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许 3306 端口通过防火墙
[root@hexingxing ~]# cat /etc/sysconfig/iptables #检查配置是否正确,正常的配置如下:

########################################################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
########################################################
[root@hexingxing ~]# /etc/init.d/iptables restart #重启防火墙使配置生效

 

2、关闭 SELINUX

[root@hexingxing ~]# vi /etc/selinux/config
#SELINUX=enforcing #注释掉此行
#SELINUXTYPE=targeted #注释掉此行
SELINUX=disabled #增加此记录
[root@hexingxing ~]# :wq #保存退出
[root@hexingxing ~]# shutdown -r now #重启

 

安装服务

一、安装 Apache

[root@hexingxing ~]# yum install httpd #安装 Apache 服务
[root@hexingxing ~]# /etc/init.d/httpd start #启动 Apache

备注:Apache 启动之后如果提示以下错误:

正在启动 httpd:httpd: Could not reliably determine the server's fully qualif domain name, using ::1 for ServerName

解决方法:

[root@hexingxing ~]# vi /etc/httpd/conf/httpd.conf #编辑 Apache 配置

找到 #ServerName www.example.com:80
修改为 ServerName localhost:80 #这里设置为你自己的域名,如果没有域名,可以设置为 localhost
[root@hexingxing ~]# :wq #保存退出

[root@hexingxing ~]# chkconfig httpd on #设为开机启动
[root@hexingxing ~]# /etc/init.d/httpd restart #重启 Apache

  

测试服务

在客户端浏览器输入服务器 IP 地址,如果配置正确,可以看到 Apache 相关的配置信息

 

二、安装 MySQL
1、安装 MySQL

[root@hexingxing ~]# yum install mysql mysql-server #安装 MySQL 服务
[root@hexingxing ~]# /etc/init.d/mysqld start #启动 MySQL
[root@hexingxing ~]# chkconfig mysqld on #设为开机启动
[root@hexingxing ~]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷贝配置文件

 

2、为 root 账户设置密码

[root@hexingxing ~]# mysql_secure_installation  #设置 MySQL 密码
 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):  #初次配置无密码可直接回车,有密码输入密码回车
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n]   #是否设置 root 用户密码,输入 y 并回车或直接回车
New password:   #设置 root 用户的密码
Re-enter new password:   #再输入一次你设置的密码
Password updated successfully!
Reloading privilege tables..
… Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n]   #是否删除匿名用户, 生产环境建议删除,所以直接回车
… Success!
 
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]   #是否禁止 root 远程登录, 根据自己的需求选择 Y/n 并回车, 建议禁止
… Success!
 
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n]   #是否删除 test 数据库, 直接回车
- Dropping test database…
… Success!
 
- Removing privileges on test database…
… Success!
 
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n]   #是否重新加载权限表,直接回车
… Success!
 
Cleaning up…

All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
 
Thanks for using MySQL!   #最后看到这个提示说明已经配置成功

// 安装 MySQL 简单的记忆:首次配置出现 Enter current password for root (enter for none): 时,无密码可直接回车,后续配置如果有密码输入密码回车;然后根据提示输入 Y,首次配置需要相输入密码和确认密码,第二次即提示是否变换密码;输入 2 次密码,回车;根据提示一直输入 Y;最后出现:Thanks for using MySQL! 即表示成功。

MySql 密码设置完成,重新启动 MySQL:

[root@hexingxing ~]# /etc/init.d/mysqld restart #重启
[root@hexingxing ~]# /etc/init.d/mysqld stop #停止
[root@hexingxing ~]# /etc/init.d/mysqld start #启动

 

三、安装 PHP
1、安装 PHP

[root@hexingxing ~]# yum install php #安装 PHP 服务

 

2、安装 PHP 组件,使 PHP 支持 MySQL

[root@hexingxing ~]# yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt #安装 PHP 组件
[root@hexingxing ~]# /etc/init.d/mysqld restart #重启 MySql
[root@hexingxing ~]# /etc/init.d/httpd restart #重启 Apache

 

测试服务

[root@hexingxing ~]# cd /var/www/html
[root@hexingxing ~]# vi index.php #编辑一个 phpinfo 的测试页面内容
[root@hexingxing ~]# :wq #保存退出

在客户端浏览器输入服务器 IP 地址,可以看到 PHP 相关的配置信息

调整配置

一、Apache 配置

[root@hexingxing ~]# vi /etc/httpd/conf/httpd.conf #编辑 Apache 配置文件
ServerTokens OS #在 44 行 修改为:ServerTokens Prod(在出现错误页的时候不显示服务器操作系统的名称)
ServerSignature On #在 536 行 修改为:ServerSignature Off(在错误页中不显示 Apache 的版本)
Options Indexes FollowSymLinks #在 331 行 修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行 CGI 及 SSI,禁止列出目录)
#AddHandler cgi-script .cgi #在 796 行 修改为:AddHandler cgi-script .cgi .pl(允许扩展名为.pl 的 CGI 脚本运行)
AllowOverride None #在 338 行 修改为:AllowOverride All(允许.htaccess)
AddDefaultCharset UTF-8 #在 759 行 修改为:AddDefaultCharset GB2312 (添加 GB2312 为默认编码)
Options Indexes MultiViews FollowSymLinks #在 554 行 修改为 Options MultiViews FollowSymLinks(不在浏览器上显示树状目录结构)
DirectoryIndex index.html index.html.var #在 402 行 修改为:DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var #设置默认首页文件,增加 index.php
KeepAlive Off #在 76 行 修改为:KeepAlive On(允许程序性联机)
MaxKeepAliveRequests 100 #在 83 行 修改为:MaxKeepAliveRequests 1000(增加同时连接数)
[root@hexingxing ~]# :wq #保存退出
[root@hexingxing ~]# /etc/init.d/httpd restart #重启
[root@hexingxing ~]# rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #删除默认测试页

二、PHP 配置

[root@hexingxing ~]# vi /etc/php.ini #编辑
date.timezone = PRC #在 946 行 把前面的分号去掉,改为 date.timezone = PRC
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#在 386 行 列出 PHP 可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php = Off #在 432 行 禁止显示 php 版本的信息
magic_quotes_gpc = On #在 745 行 打开 magic_quotes_gpc 来防止 SQL 注入
short_open_tag = ON #在 229 行支持 php 短标签
open_basedir = .:/tmp/ #在 380 行 设置表示允许访问当前目录 (即 PHP 脚本文件所在之目录) 和/tmp/目录, 可以防止 php 木马跨站, 如果改了之后安装程序有问题,可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/
[root@hexingxing ~]# :wq #保存退出
[root@hexingxing ~]# /etc/init.d/mysqld restart #重启 MySql
[root@hexingxing ~]# /etc/init.d/httpd restart #重启 Apche

PS1:
Apache 解析 PHP,修改 httpd.conf 文件,添加
Addtype application/x-httpd-php .php .phtml
Addtype application/x-httpd-php-source .phps
PS2:
Apache 默认的程序目录是 /var/www/html

测试网站服务页面

在 /var/www/html 目录下新建 html 或 php 文件测试是否可访问

CentOS 6 报错 Bringing up interface eth0

今天启动 CentOS 6 发现 IP 自动改变了,网卡设备名称也变成了 eth1。
重启 网卡提示以下报错

Bringing up interface eth0:  Device eth0 does not seem to be present, delaying initialization.
                                                                                      [FAILED]

问题状态:
1、通过查看 IP 信息发现以前使用的 eth0 变成 eth1,可能是网卡有变动

[root@hexingxing ~]# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:0C:29:02:E8:FB
inet addr:10.0.1.123  Bcast:10.0.1.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe02:e8fb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:167 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13868 (13.5 KiB)  TX bytes:1943 (1.8 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:65536  Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:960 (960.0 b)  TX bytes:960 (960.0 b)

 

2、查看网卡设备网络规则文件

[root@hexingxing ~]# cat /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:67:ee:c7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:02:e8:fb", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

问题描述:
1、通过查看网卡设备网络规则文件确认是有 eth1,说明是之前手动配置 IP 信息的 eth0 失效了,系统自动启用了 eth1 并使用 DHCP 自动获取 IP。
2、此时我们只要将原来的 eth0 配置为 eth1 的相关信息并启用 eth1 即可解决该问题。

解决方案:
1、将原来的 ifcfg-eth0 文件修改为 ifcfg-eth1

[root@hexingxing network-scripts]# mv ifcfg-eth0 ifcfg-eth1
[root@hexingxing network-scripts]# ls ##查看是否修改成功
ifcfg-eth1   ifdown-ippp    ifdown-sit     ifup-ib     ifup-post      init.ipv6-global
ifcfg-lo     ifdown-ipv6    ifdown-tunnel  ifup-ippp   ifup-ppp       net.hotplug
ifdown       ifdown-isdn    ifup           ifup-ipv6   ifup-routes    network-functions
ifdown-bnep  ifdown-post    ifup-aliases   ifup-isdn   ifup-sit       network-functions-ipv6
ifdown-eth   ifdown-ppp     ifup-bnep      ifup-plip   ifup-tunnel
ifdown-ib    ifdown-routes  ifup-eth       ifup-plusb  ifup-wireless

 

2、在 ifcfg-eth1 文件中将 DEVICE=”eth0″ 修改为 DEVICE=”eth1″

[root@hexingxing network-scripts]# cat ifcfg-eth1
DEVICE="eth1" ##将之前的 eth0 改为 eth1
BOOTPROTO="static"
HWADDR="00:0C:29:67:EE:C7"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="536203db-b01e-4646-b622-23ce22265d50"
IPADDR=10.0.1.85
NETMASK=225.225.225.0
GATEWAY=10.0.1.255

 

3、重启网卡,解决问题。

[root@hexingxing network-scripts]# service network restart
Shutting down interface eth1:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth1:  Determining if ip address 10.0.1.85 is already in use for device eth1...
                                                           [  OK  ]

 

CentOS 6 弹出界面 eth0: 错误:没有找到合适的设备

出现 “错误:没有找到合适的设备:没有找到可用于连接 ‘System eth0’ 的设备。” 提示,说明网卡可能已经变动,并自动初始化使用更名后的网卡,导致服务器 IP 变动以及手动配置的指定 IP 无效。
问题解决方案如下:

一、编辑 /etc/udev/rules.d/70-persistent-net.rules 文件

[root@hexingxing ~]# vi /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:67:ee:c7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
// 以将以上两行删除

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:02:e8:fb", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
// 将行尾 NAME="eth1" 修改为 NAME="eth0",并复制 MAC 编号 00:0c:29:02:e8:fb ,保存退出

 

二、编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件

[root@hexingxing network-scripts]# vi ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:67:EE:C7" ## 将以上复制的 MAC 编号替换,保存文件
IPV6INIT="yes"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
UUID="536203db-b01e-4646-b622-23ce22265d50"
IPADDR=10.0.1.90
NETMASK=225.225.225.0
GATEWAY=10.0.1.255

 

三、重启网卡或重启系统后查看

[root@hexingxing ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:02:E8:FB
inet addr:10.0.1.90  Bcast:10.0.1.255  Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe01:4ac6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:88 errors:0 dropped:0 overruns:0 frame:0
TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11385 (11.1 KiB)  TX bytes:7573 (7.3 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:65536  Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:240 (240.0 b)  TX bytes:240 (240.0 b)

本文与前面的一篇 <<CentOS 6 报错 Bringing up interface eth0: Device eth0 does…>> 问题相同。