1. 程式人生 > 實用技巧 >RHEL7.0系統相關配置

RHEL7.0系統相關配置

centos7.0下載:

DVD ISO: http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso

完整ISO:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-Everything.iso

官方網站:http://www.centos.org

centos包:http://vault.centos.org/ 或者 http://mirrors.oschina.net/centos/

centos7更多詳情:http://wiki.centos.org/zh/Manuals/ReleaseNotes/CentOS7

RedHat下載:https://access.redhat.com/downloads/

中國源:http://dragon.oschina.net

中國源軟體下載:http://dl.oschina.net

centos幾個新特性:

使用centos的官方yum源

yum clean all

yum install net-tools

ifconfig命令在net-tools軟體包裡

nslookup,dig在bind-utils中

centos使用了systemd來代替sysvinit

systemd服務管理程式,它融合service和chkconfig功能於一體。你可以使用它永久或只在當前會話中啟用/禁用服務。

systemctl(start|stop)httpd.service

systemctl(enable|disable)httpd.service

列出正在執行的服務或其他: systemctl

systemd-cgls以樹形列出正在執行的程序。它可以遞迴顯示給定控制組內容。

顯示一個服務(無論執行與否)的狀態: systemctl status httpd.service

檢視服務是否開機啟動:systemctl is-enabled iptables.service;echo $?

123456789101112131415161718192021$cat/usr/lib/systemd/system/httpd.service[Unit]Description=TheApacheHTTPServerAfter=network.targetremote-fs.targetnss-lookup.target[Service]Type=notifyEnvironmentFile=/etc/sysconfig/httpdExecStart=/usr/sbin/httpd$OPTIONS-DFOREGROUNDExecReload=/usr/sbin/httpd$OPTIONS-kgracefulExecStop=/usr/sbin/httpd$OPTIONS-kgraceful-stop#Wewantsystemdtogivehttpdsometimetofinishgracefully,butstillwant#ittokillhttpdafterTimeoutStopSecifsomethingwentwrongduringthe#gracefulstop.Normally,SystemdsendsSIGTERMsignalrightafterthe#ExecStop,whichwouldkillhttpd.WearesendinguselessSIGCONTheretogive#httpdtimetofinish.KillSignal=SIGCONTPrivateTmp=true[Install]WantedBy=multi-user.target

在sysvinit下,啟動start、關閉stop、重啟restart都是用$1來傳遞引數,但是在systemctl下,很是像supervisord這個daemon程式。

修改執行級別:

第 3 執行級用 multi-user.target替代。第 5 執行級用graphical.target替代。runlevel3.target 和 runlevel5.target 分別是指向 multi-user.target和graphical.target的符號連結。

你可以使用下面的命令切換到“執行級 3 ”:

systemctl isolate multi-user.target 或者

systemctl isolate runlevel3.target

你也可以使用下面的命令切換到“執行級 5 ”:

systemctl isolate graphical.target 或者

systemctl isolate runlevel5.target

如何改變預設執行級別?

systemd不使用/etc/inittab檔案

systemd使用連結來指向預設的執行級別。在建立新的連結前,你可以通過下面命令刪除存在的連結: rm /etc/systemd/system/default.target

預設切換到執行級 3 :

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

預設切換到執行級 5 :

ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

如何檢視當下執行級別?

runlevel命令在systemd下仍然可以工作。你可以繼續使用它,儘管systemd使用 'target' 概念(多個的 'target' 可以同時啟用)替換了之前系統的runlevel。

等價的systemd命令是 systemctl list-units --type=target

12345678[[email protected]~]#chkconfig--list|grepsamba注意:該輸出結果只顯示SysVinit服務,並不包含原生systemd服務。SysV配置資料可能被原生systemd配置覆蓋。如果您想列出systemd服務,請執行'systemctllist-unit-files'。欲檢視對特定target啟用的服務請執行'systemctllist-dependencies[target]'。[[email protected]~]#systemctllist-dependenciessambasamba.service

引導方式:使用grub2引導


RHEL7/CentOS7預設執行級別和終端解析度

修改解析度吧;

在grub中我們修改的是/boot/grub/grub.conf,而在grub2中要修改的檔案是/boot/grub2/grub.cfg;找到

1linux16/vmlinuz-3.10.0-123.el7.x86_64root=UUID=881ac4e6-4a55-47b1-b864-555de7051763rord.lvm.lv=centos/swapvconsole.font=latarcyrheb-sun16rd.lvm.lv=centos/rootcrashkernel=autovconsole.keymap=usrhgbquietLANG=en_US.UTF-8

在後面新增vga=0x???(問號代表解析度程式碼),在這裡貼一張對應表,方便檢視

wKioL1PTCmqDMcaoAARRmjQq9co274.jpg

修改後如下:wKioL1PTCwyiqV8vAAItWYMY-KU707.jpg

第二個是修改執行級別,大家都知道在grub中是修改/etc/inittab,將與之對應的數字修改就ok,但是在grub2中也變了,RHEL7使用systemd建立符號連結的方式指向預設執行級別,完了記得reboot下

1#ln-sf/lib/systemd/system/runlevel?.target/etc/systemd/system/default.target[objectObject]

例如我修改預設執行級別為字元終端,就是用命令:

1#ln-sf/lib/systemd/system/runlevel13.target/etc/systemd/system/default.target


centos7.0安裝成功後如何使用yum,ifconfig,pvcreate相關命令

我們安裝時的檔案是依照/root/anaconda-ks.cfg這個回答檔案安裝的,cat檢視它

1234567891011121314151617181920212223242526272829303132333435[[email protected]~]#cat/root/anaconda-ks.cfg#version=RHEL7#Systemauthorizationinformationauth--enableshadow--passalgo=sha512#UseCDROMinstallationmediacdrom#RuntheSetupAgentonfirstbootfirstboot--enableignoredisk--only-use=sda#Keyboardlayoutskeyboard--vckeymap=us--xlayouts='us'#Systemlanguagelangen_US.UTF-8#Networkinformationnetwork--bootproto=dhcp--device=eno16777736--onboot=off--ipv6=autonetwork--hostname=localhost.localdomain#Rootpasswordrootpw--iscrypted$6$ujXxVQ3lCFRecY/T$RyN0pe6ylmwQYiM3AFm0PAyP2E7yZ8MVZIAAGnVoRGJRcawrQYynAzQWd/dNvELy4LUUGb8kKEJ3GnKWSEs7..#SystemtimezonetimezoneAmerica/New_York--isUtc#Systembootloaderconfigurationbootloader--location=mbr--boot-drive=sda#Partitionclearinginformationclearpart--none--initlabel#Diskpartitioninginformationpart/--fstype="xfs"--ondisk=sda--size=17407partswap--fstype="swap"--ondisk=sda--size=1024part/data--fstype="xfs"--ondisk=sda--size=2048%packages@core#系統的核%end

我們發現系統預設最小化安裝有core沒有base。而我們需要的那些基礎的命令是打包在base內的,既然問題發現了,下面我們開始安裝base。

在bash介面輸入下面命令

1234567891011[[email protected]yum.repos.d]#viCentOS-dvd.repo[centos-dvd]name=CentOSbaseurl=file:///mnt/disk/enabled=1gpgcheck=0:x[[email protected]yum.repos.d]#lsCentOS-Base.repo.bakCentOS-dvd.repoCentOS-Vault.repo.bakCentOS-Debuginfo.repo.bakCentOS-Sources.repo.bak#為了方便我們yum.repos.d下以repo的檔案都改為bak的字尾,之後新新增CentOS-dvd.repo檔案並設定相關路徑其他四個檔案的具體內容可自行百度

修改完畢輸入下面命令

#yumgroupinstallbase#下面會出現172個需要安裝的包,y即可

顯示Complete後,yum,ifconfig,pvcreate等命令都可正常使用。


一:設定IP地址、閘道器DNS,路由,iP命令,網路管理工具

在安裝的時候選擇mini安裝型別,可能導致有些基礎包沒有被安裝上,

yum -ygroupinstallBase

通過上面命令可以將一些基礎包安裝,正常使用 ifconfig | lsof命令。

說明:RHEL 7.0預設安裝好之後是沒有自動開啟網路連線的!

cd /etc/sysconfig/network-scripts/ #進入網路配置檔案目錄

vi ifcfg-eno16777736#編輯配置檔案,新增修改以下內容

TYPE="Ethernet|Bridge"網路介面型別

BOOTPROTO="static"#啟用靜態IP地址

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes|no" 是否支援IPV6

USERCTL="yes|no" 是否允許普通用控制此介面

PEERDNS="yes|no" 是不是接受DHCP伺服器指派的DNS伺服器地址

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

NAME="eno16777736"

UUID="8071cc7b-d407-4dea-a41e-16f7d2e75ee9" 裝置標識號

ONBOOT="yes"#開啟自動啟用網路連線

IPADDR0="192.168.21.128"#設定IP地址 只有在BOOTPROTO={none|static}設定才有效

PREFIX0="24"#設定子網掩碼 此設定也可用 PREFIX=n (n為掩碼位數)

GATEWAY0="192.168.21.2"#設定閘道器 要與IP地址屬於同一網段

DNS1="8.8.8.8"#設定主DNS

DNS2="8.8.4.4"#設定備DNS

HWADDR="00:0C:29:EB:F2:B3"

IPV6_PEERDNS="yes"

IPV6_PEERROUTES="yes"

service network restart#重啟網路

CentOS 7下網絡卡重新命名

在CentOS5的時候,我們使用eth0方式網路裝置命名,在CentOS 6下,網路裝置變成了em1 的命名。但在安裝的時候,給啟動引數加上biosdevname=0,就可以繼續使用 eth0 這樣的命名。新裝的CentOS 7網絡卡命名已經預設不像之前的那樣了,原有的引數biosdevname=0不起作用了。如果你希望繼續使用 eth0 這樣的傳統名稱,那麼在安裝啟動時加上引數:

et.ifnames=0 biosdevname=0

如果你已經安裝完了,希望改成eth0這樣的名稱,那麼需要:

編輯/etc/sysconfig/grub檔案內容

下邊是編輯前的檔案內容:

wKioL1PNzOHBrVV5AAEnHbxb9Ug004.jpg

增加“net.ifnames=0 biosdevname=0”,編輯後的檔案內容:

GRUB_CMDLINE_LINUX=”rd.lvm.lv=vg0/swap vconsole.keymap=us crashkernel=auto vconsole.font=latarcyrheb-sun16net.ifnames=0 biosdevname=0rd.lvm.lv=vg0/usr rhgb quiet”

wKioL1PN0CegVKztAAEp3_d9yjs335.jpg

執行:grub2-mkconfig -o /boot/grub2/grub.cfg

重新對網絡卡配置檔案進行命名:

/etc/sysconfig/network-scripts/ifcfg-*

wKioL1PN1F6yo7nDAAHNfH4ameQ933.jpg

然後重啟系統後檢視網絡卡名稱:

wKioL1PNzQWxcsfOAAJUNRImCoo148.jpg

CentOS 7是由於systemd 和 udev 引入了一種新的網路裝置命名方式:一致網路裝置命名(CONSISTENT NETWORK DEVICE NAMING) 。可以根據韌體、拓撲、位置資訊來設定固定名字,帶來的好處是命名自動化,名字完全可預測,在硬體壞了以後更換也不會影響裝置的命名,這樣可以讓硬體的更換無縫化。帶來的不利是新的裝置名稱比傳統的名稱難以閱讀。

參考:http://www.pubyun.com/blog/deveops/centos-7%E4%B8%8B%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E5%91%BD%E5%90%8D/

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/ch-Consistent_Network_Device_Naming.html RHEL7網路指南

https://bugzilla.redhat.com/show_bug.cgi?id=965718 紅帽子BUG965718

ping www.baidu.com#測試網路是否正常

traceroute 和 mtr顯示出我們到達一個網路所經過的路由資訊

yum -y install traceroute

yum -y install mtr

wKiom1PIzAHj4h7cAAF9ieppR_k702.jpg

1[[email protected]~]#mtr-n

wKiom1PIzf7BIE23AADuxz_d1uA968.jpgethtool:檢視網路介面裝置本身的屬性wKioL1PGiJzD4lWfAAIaN8RQU2U692.jpg

設定路由資訊

臨時生效:

route-n以數字形式顯示路由表

ip route list

增加一條主機路由

[[email protected]~]#routeadd-host172.16.9.18gw172.16.0.1deveth0


增加一條網路路由

[[email protected]~]#routeadd-net10.0.0.0/8gw172.16.0.1deveth0設定預設路由

#routeadddefaultgwNEXT_HOP 刪除主機路由和網路路由 [[email protected]~]#routedel-net10.0.0.0/8deveth0 [[email protected]~]#routedel-host172.16.9.18deveth0


永久生效:

配置檔案在/etc/sysconfig/network-scripts/ 目錄下:

每個網絡卡路由對應一個配置檔案(包括網絡卡別名的)route-IFNAME。例如:eth0網絡卡的配置路由檔案是 route-eth0。設定格式1:每一行一個路由條目 DESTINATION via NETX_HOP

192.168.0.0/24via172.16.0.1

設定格式2:每3行一個路由條目

ADDRESS#=DESTINATION

NETMASK#=MASK

GATEWAY#=GW

#要是設定主機路由的話,掩碼位數是32位ADDRESS0=192.168.0.0NETMASK0=255.255.0.0GATEWAY=172.16.0.1


iP命令常用選項

ip link : 管理介面

show [IFNAME]

set IFNAME {up|down}

12345678910[[email protected]~]#iplinkshow1:lo:<LOOPBACK,UP,LOWER_UP>mtu16436qdiscnoqueuestateUNKNOWNlink/loopback00:00:00:00:00:00brd00:00:00:00:00:002:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000link/ether00:0c:29:e0:db:d8brdff:ff:ff:ff:ff:ff3:eth1:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000link/ether00:0c:29:e0:db:e2brdff:ff:ff:ff:ff:ff4:eth2:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000link/ether00:0c:29:e0:db:ecbrdff:ff:ff:ff:ff:ff[[email protected]~]#iplinkseteth2down

ip addr: 管理協議地址

ip addr {show|flush} [dev DEVICE] 檢視網絡卡的IP地址

ip addr {add|del} ADDRESS dev DEVICE [label IFALIAS] [broadcast BCAST_ADDRESS],為一個網絡卡新增多個IP

1234567891011[[email protected]~]#ipaddrshowdeveth13:eth1:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000link/ether00:0c:29:e0:db:e2brdff:ff:ff:ff:ff:ffinet192.168.1.4/24brd192.168.1.255scopeglobaleth1inet6fe80::20c:29ff:fee0:dbe2/64scopelinkvalid_lftforeverpreferred_lftforever[[email protected]~]#ipaddradd192.168.0.23/24deveth2labeleth2:0[[email protected]~]#ifconfigeth2:0eth2:0Linkencap:EthernetHWaddr00:0C:29:E0:DB:ECinetaddr:192.168.0.23Bcast:0.0.0.0Mask:255.255.255.0UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

二:使用系統映象檔案配置本地yum源

1.上傳系統映象檔案rhel-server-7.0-x86_64-dvd.iso到/usr/local/src目錄

2.掛載系統映象檔案

mkdir /media/cdrom #新建映象檔案掛載目錄

cd /usr/local/src#進入系統映象檔案存放目錄

mount -t iso9660 -o loop /usr/local/src/rhel-server-7.0-x86_64-dvd.iso /media/cdrom#掛載系統映象

備註:umount /media/cdrom #解除安裝系統映象

3.設定開機自動掛載系統映象檔案

vi /etc/fstab#新增以下程式碼。實現開機自動掛載

/usr/local/src/rhel-server-7.0-x86_64-dvd.iso /media/cdrom iso9660 defaults,ro,loop 0 0

備註:iso9660使用df -T 檢視裝置

4.配置本地yum源

cd /etc/yum.repos.d/#進入yum配置目錄

touch rhel-media.repo#建立yum配置檔案

cat rhel-media.repo#編輯配置檔案,新增以下內容

[rhel-media]

name=Red Hat Enterprise Linux 7.0#自定義名稱

baseurl=file:///media/cdrom#本地光碟掛載路徑

enabled=1#啟用yum源,0為不啟用,1為啟用

gpgcheck=1#檢查GPG-KEY,0為不檢查,1為檢查

gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release#GPG-KEY路徑

5.使用yum命令自動安裝軟體

yum clean all#清除yum快取

yum makecache#快取本地yum源中的軟體包資訊

yum install httpd#安裝apache

rpm -ql httpd#查詢所有安裝httpd的目錄和檔案

systemctl start/stop/restart httpd.service #啟動/停止/重啟apache

systemctl enable httpd.service#設定開機啟動

6.RHEL 7.0預設使用的是firewall作為防火牆,這裡改為iptables防火牆

關閉firewall:

systemctl stop firewalld.service#停止firewall

systemctl disable firewalld.service#禁止firewall開機啟動

yum install iptables-services#安裝iptables

vi /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

:wq!#儲存退出

systemctl start/stop/restart/status iptables.service#啟動/停止/重啟防火牆,檢視防火牆狀態

systemctl enable iptables.service#設定開機啟動

6.設定主機名為www

hostname www#設定主機名為www

vi /etc/hostname#編輯配置檔案

www localhost.localdomain#修改localhost.localdomain為www

vi /etc/hosts#編輯配置檔案

127.0.0.1 www localhost#修改localhost.localdomain為www

shutdown -r now#重啟系統

三:安裝配置LAMP伺服器(Apache+PHP+MariaDB)

1、安裝Apache

yum install httpd#根據提示,輸入Y安裝即可成功安裝

2.安裝MariaDB

RHEL 7.0中,已經使用MariaDB替代了MySQL資料庫

yum install mariadb mariadb-server#詢問是否要安裝,輸入Y即可自動安裝,直到安裝完成

systemctl start/STOP/RESTART mariadb.service#啟動/停止/重啟MariaDB

cp /usr/share/mysql/my-huge.cnf /etc/my.cnf#拷貝配置檔案(如果/etc目錄下面預設有一個my.cnf,直接覆蓋即可)

為root賬戶設定密碼

mysql_secure_installation

回車,根據提示輸入Y

輸入2次密碼,回車

根據提示一路輸入Y

最後出現:Thanks for using MariaDB!

3.安裝PHP

yum install php#根據提示輸入Y直到安裝完成

安裝PHP元件,使PHP支援 MariaDB

yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash

#這裡選擇以上安裝包進行安裝,根據提示輸入Y回車

4.進行相關配置

一、Apache配置

vi /etc/httpd/conf/httpd.conf#編輯檔案

ServerSignature On #新增,在錯誤頁中顯示Apache的版本,Off為不顯示

Options Indexes FollowSymLinks #修改為:Options Includes ExecCGI FollowSymLinks(允許伺服器執行CGI及SSI,禁止列出目錄)

#AddHandler cgi-script .cgi #修改為:AddHandler cgi-script .cgi .pl(允許副檔名為.pl的CGI指令碼執行)

AllowOverride None #修改為:AllowOverride All(允許.htaccess)

AddDefaultCharset UTF-8 #修改為:AddDefaultCharset GB2312 (新增GB2312為預設編碼)

#Options Indexes FollowSymLinks #修改為Options FollowSymLinks(不在瀏覽器上顯示樹狀目錄結構)

DirectoryIndex index.html #修改為:DirectoryIndex index.html index.htm Default.html Default.htm index.php(設定預設首頁檔案,增加index.php)

MaxKeepAliveRequests 500#新增MaxKeepAliveRequests 500 (增加同時連線數)

rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html#刪除預設測試頁

二、php配置

vi /etc/php.ini#編輯

date.timezone = PRC#把前面的分號去掉,改為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

#列出PHP可以禁用的函式,如果某些程式需要用到這個函式,可以刪除,取消禁用。

expose_php = Off#禁止顯示php版本的資訊

magic_quotes_gpc = On#開啟magic_quotes_gpc來防止SQL注入

short_open_tag = ON#支援php短標籤

open_basedir = .:/tmp/ #設定表示允許訪問當前目錄(即PHP指令碼檔案所在之目錄)和/tmp/目錄,可以防止php***跨站,如果改了之後安裝程式有問題,可以登出此行,或者直接寫上程式的目錄/data/www.test.com/:/tmp/

最後進行頁面訪問測試:

cd /var/www/html

vi index.php#輸入下面內容

<?php

phpinfo();

?>

在客戶端瀏覽器輸入伺服器IP地址,可以看到如下圖所示相關的配置資訊!

如果頁面打不開,請確保firewalld防火牆已經關閉

systemctl stop firewalld.service#停止firewall

systemctl disable firewalld.service#禁止firewall開機啟動

注意:apache預設的程式目錄是/var/www/html

許可權設定:chown apache.apache -R /var/www/html

本文出自 “從心開始” 部落格,請務必保留此出處http://hao360.blog.51cto.com/5820068/1438383


轉載於:https://blog.51cto.com/lucifer119/1734111