Linux經常使用軟件安裝總結

首先說xshell一個好用的功能,若是你同時要管理幾臺同樣的服務器組成的集羣,一臺一臺操做很麻煩,可使用xshell菜單欄——工具——勾選發送鍵輸入到全部會話,這樣你在一個bash窗口輸入的指令,其它全部打開的會話服務器也都會執行這條指令。css

1.安裝JDKhtml

上傳jdk-7u45-linux-x64.tar.gz到Linux上java

解壓jdk到/usr/local目錄 tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local/ -C 後面是指定要解壓的路徑,若是沒有-C及其後面的默認解壓到當前文件夾node

配置環境變量,在/etc/profile文件最後追加相關內容 vi /etc/profilemysql

export JAVA_HOME=/usr/local/jdk1.7.0_45export PATH=$PATH:$JAVA_HOME/binlinux

$PATH是默認變量,新設置的PATH不能把原來的給覆蓋了,因此先寫原來的,冒號後面在寫新的bin路徑。nginx

刷新環境變量 source /etc/profilesql

測試java命令是否可用 java -versionshell

2.安裝Tomcatapache

上傳apache-tomcat-7.0.68.tar.gz到Linux上

解壓tomcat

tar -zxvf apache-tomcat-7.0.68.tar.gz -C /usr/local/

啓動tomcat

/usr/local/apache-tomcat-7.0.68/bin/startup.sh

查看tomcat進程端口

netstat -nltp

經過瀏覽器訪問tomcat http://192.168.0.101:8080/

3.安裝mysql

執行yum命令,刪除原來的MySQLlib庫和服務文件

yum remove mysql mysql-server mysql-libs mysql-server;

查找是否刪除乾淨

rpm -qa | grep mysql 或者 find / -name mysql

若是還有mysql文件,運行「rm -rf 文件名」刪除殘留的MySQL文件

將MySQL-client-5.5.48-1.linux2.6.i386.rpm和MySQL-server-5.5.48-1.linux2.6.i386.rpm拷貝到centos服務器上。

安裝MySQL-server-5.5.48-1.linux2.6.i386.rpm

rpm -ivh MySQL-server-5.5.48-1.linux2.6.i386.rpm

若是報錯,說明須要安裝perl依賴,執行如下命令安裝perl依賴環境

yum install perl*這個命令基本上把perl的模塊給安裝齊了。

若是再報缺乏其它的依賴包,就使用yum一個一個的安裝,好比:yum install libaio.so.1。

卸載衝突的依賴包 繼續剛纔的安裝,若是報相似於下面的

file /usr/share/mysql/charsets/README from install of MySQL-server-5.5.48-1.linux2.6.i386 conflicts with file from package mysql-libs-5.1.73-8.el6_8.x86_64 file /usr/share/mysql/charsets/Index.xml from install of MySQL-server-5.5.48-1.linux2.6.i386 conflicts with file from package mysql-libs-5.1.73-8.el6_8.x86_64

就是有衝突,一次卸載衝突包,好比:

rpm -e mysql-libs-5.1.73-8.el6_8.x86_64 --nodeps

若是成功,會看到進度條。 最後,有關於root密碼設置的提示,必定要記下來,推薦截圖保存 我這個是5.5版本的,這個版本的提示是,先啓動server service mysql start 而後/usr/bin/mysqlsecureinstallation 命令去交互式修改root密碼

當我執行/usr/bin/mysqlsecureinstallation這條命令修改密碼時,它提示我須要先安裝client,那我就安裝client,可是安裝完以後記得仍是要執行修改密碼那一步,由於咱們是第一次進來沒有密碼,直接按回車進去設置便可。

rpm -ivh MySQL-client-5.5.48-1.linux2.6.x86_64.rpm

客戶端安裝成功後,記得還要用/usr/bin/mysqlsecureinstallation 命令去交互式修改root密碼

登陸驗證

mysql -uroot -proot

查詢測試

show databases;

驗證成功,退出

exit;

安裝中途若是出現什麼問題致使沒法繼續下去,把全部mysql東西卸載乾淨,重啓服務器,再從新裝。

設置navicat能夠鏈接 若是使用navicat鏈接不上,報「1130 host xxx is not allowed to connect mysql」那麼就須要執行下面這些配置。

1.在裝有MySQL的機器上登陸MySQL mysql -u root -p密碼2.執行use mysql;3.執行update user set host = '%' where user = 'root';這一句執行完可能會報錯,不用管它。4.執行FLUSH PRIVILEGES;

4.安裝nginx

4.1安裝nginx

下載nginx

官網:http://nginx.org/

上傳並解壓nginx

tar -zxvf nginx-1.8.1.tar.gz -C /usr/local/src

-C後面是執行解壓路徑

編譯nginx 由於nginx是用c寫的,在不一樣的機器上須要編譯以後再運行,否則可能運行不起來,因此要對官方提供的源碼進行編譯,這個預編譯其實就是一個檢查的過程。java中由於直接運行在了jvm機上,因此運行別人編譯打包以後的jar或war是沒問題的。

進入到nginx源碼目錄(切記必定要進入到源碼目錄在執行下面的檢查命令)cd /usr/local/src/nginx-1.8.1檢查安裝環境,並指定未來要安裝的路徑./configure --prefix=/usr/local/nginx若是報錯./configure: error: C compiler cc is not found說明缺乏編譯包,使用YUM安裝缺乏的包yum -y install gcc pcre-devel openssl openssl-devel

編譯安裝

make && make install

安裝完後測試是否正常:

執行下面命令啓動nginx/usr/loca/nginx/sbin/nginx查看端口是否有ngnix進程監聽netstat -ntlp | grep 80

4.2配置nginx

配置反向代理 1.修改nginx配置文件

server { listen 80; server_name mini1; #nginx所在服務器的主機名反向代理的配置location / { #攔截全部請求 root html; proxy_pass http://192.168.0.21:8080; #這裏是代理轉向的目標服務器 }}

上面這段話的意思是當我訪問http://mini1:80 時(80能夠省略),請求會被轉發到http://192.168.0.21:8080 的tomcat服務器上,/表明是全部的請求都被攔擊,亦即全部的請求都會被轉發至http://192.168.0.21:8080 ,固然你也能夠配置靜態資源(好比css,html,圖片)不作轉發。 2.啓動mini1上的tomcat 3.啓動nginx

重啓或關閉nginx進程:/usr/local/nginx/sbin/nginx -s reload/usr/local/nginx/sbin/nginx -s stop參考網址:http://www.cnblogs.com/jianxie/p/3990377.html

動靜分離

動態資源 index.jsplocation ~ .*\.(jsp|do|action)$ { proxy_pass http://192.168.0.21:8080;}靜態資源location ~ .*\.(html|js|css|gif|jpg|jpeg|png)$ { expires 3d;}

配置完成後當請求動態資源jsp文件時就會被轉發至http://192.168.0.21:8080 服務器,請求靜態資源就不作轉發。

負載均衡 在http這個節下面配置一個叫upstream的,後面的名字能夠隨意取,可是要和location下的proxy_pass http://後的保持一致。

http { 是在http裏面的, 已有http, 不是在server裏,在server外面 upstream tomcats { server http://192.168.0.21:8080 weight=1;#weight權重 server http://192.168.0.22:8080 weight=1; server http://192.168.0.23:8080weight=1;}卸載server裏location ~ .*\.(jsp|do|action) { proxy_pass http://tomcats; #tomcats是後面的tomcat服務器組的邏輯組號}}

4.3設置nginx開機自啓動

添加配置文件 在linux系統的/etc/init.d/目錄下建立nginx文件,使用以下命令:(我建議能夠在window下面編輯好以後再上傳到nginx上)

vim /etc/init.d/nginx

在nginx文件中添加如下內容:

#!/bin/sh## nginx - this script starts and stops the nginx daemon## chkconfig: - 85 15# description: NGINX is an HTTP(S) server, HTTP(S) reverse \# proxy and IMAP/POP3 proxy server# processname: nginx# config: /etc/nginx/nginx.conf# config: /etc/sysconfig/nginx# pidfile: /var/run/nginx.pid# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ "$NETWORKING" = "no" ] && exit 0nginx="/apps/nginx/sbin/nginx"prog=$(basename $nginx)NGINX_CONF_FILE="/apps/nginx/conf/nginx.conf"[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginxmake_dirs() { # make required directories user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` if [ -z "`grep $user /etc/passwd`" ]; then useradd -M -s /bin/nologin $user fi options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done}start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval}stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval}restart() { configtest || return $? stop sleep 1 start}reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo}force_reload() { restart}configtest() { $nginx -t -c $NGINX_CONF_FILE}rh_status() { status $prog}rh_status_q() { rh_status >/dev/null 2>&1}case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2esac

注意要把下面兩項配置修改爲你本身的: nginx="/apps/nginx/sbin/nginx" 修改爲nginx執行程序的路徑。 NGINXCONFFILE="/apps/nginx/conf/nginx.conf" 修改爲nginx配置文件的路徑。

添加執行權限

chmod a+x /etc/init.d/nginx

如今就能夠經過該腳本對nginx服務進行管理了:

/etc/init.d/nginx start 啓動/etc/init.d/nginx stop 中止

終極方案——開機自啓動nginx 到上一步其實已經能夠方便的管理了,但我仍是比較懶,但願開機就自啓動nginx運行,可使用chkconfig來設置。 先將nginx服務加入chkconfig管理列表:

chkconfig --add /etc/init.d/nginx

加完這個以後,就可使用service對nginx進行啓動,重啓等操做了。

service nginx startservice nginx stop

設置開機自啓動:

chkconfig nginx on

使用下面命令肯定是否加入了開機自啓動。

chkconfig | grep nginx

END 參考文檔:http://blog.csdn.net/u013870094/article/details/52463026

5.安裝KeepAlived實現高可用

keepalive是一款能夠實現高可用的軟件,一般部署在2臺服務器上,分爲一主一備。Keepalived能夠對本機上的進程進行檢測,一旦Master檢測出某個進程出現問題,將本身切換成Backup狀態,而後通知另一個節點切換成Master狀態。

5.1keepalived安裝

下載keepalived

官網:http://keepalived.org

將keepalived解壓到/usr/local/src目錄下

tar -zxvf keepalived-1.2.19.tar.gz -C /usr/local/src

進入到/usr/local/src/keepalived-1.2.19目錄

cd /usr/local/src/keepalived-1.2.19

開始configure

./configure --prefix=/usr/local/keepalived

-編譯並安裝

make && make install

5.2將keepalived添加到系統服務中

拷貝執行文件

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

將init.d文件拷貝到etc下,加入開機啓動項

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived

將keepalived文件拷貝到etc下

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

建立keepalived文件夾

mkdir -p /etc/keepalived

將keepalived配置文件拷貝到etc下

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf

添加可執行權限

chmod +x /etc/init.d/keepalived

也能夠一次性執行以上命令:

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalivedcp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ mkdir -p /etc/keepalivedcp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.confchmod +x /etc/init.d/keepalivedchkconfig --add keepalived chkconfig keepalived on

添加keepalived到開機啓動

chkconfig --add keepalived chkconfig keepalived on

5.3配置keepalived虛擬IP

修改配置文件: /etc/keepalived/keepalived.conf MASTER節點

global_defs {}vrrp_instance VI_1 { state MASTER #指定A節點爲主節點 備用節點上設置爲BACKUP便可 interface eth0 #綁定虛擬IP的網絡接口 virtual_router_id 51 #VRRP組名,兩個節點的設置必須同樣,以指明各個節點屬於同一VRRP組 priority 100 #主節點的優先級(1-254之間),備用節點必須比主節點優先級低 advert_int 1 #組播信息發送間隔,兩個節點設置必須同樣 authentication { #設置驗證信息,兩個節點必須一致 auth_type PASS auth_pass 1111 } virtual_ipaddress { #指定虛擬IP, 兩個節點設置必須同樣 192.168.33.60/24 #若是兩個nginx的ip分別是192.168.33.61,192.168.33.62,則此處的虛擬ip跟它倆同一個網段便可 }}

BACKUP節點

global_defs {}vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.33.60/24 }}

測試: 分別啓動兩臺機器上的keepalived

service keepalived start

殺掉master上的keepalived進程,你會發現,在slave機器上的eth0網卡多了一個ip地址 查看ip地址的命令: ip addr

5.4配置keepalived心跳檢查

原理: Keepalived並不跟nginx耦合,它倆徹底不是一家人 可是keepalived提供一個機制:讓用戶自定義一個shell腳本去檢測用戶本身的程序,返回狀態給keepalived就能夠了 MASTER節點:

global_defs {}vrrp_script chk_health { script "[[ `ps -ef | grep nginx | grep -v grep | wc -l` -ge 2 ]] && exit 0 || exit 1" interval 1 #每隔1秒執行上述的腳本,去檢查用戶的程序ngnix weight -2}vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 1 priority 100 advert_int 2 authentication { auth_type PASS auth_pass 1111 } track_script { chk_health } virtual_ipaddress { 10.0.0.10/24 } notify_master "/usr/local/keepalived/sbin/notify.sh master" notify_backup "/usr/local/keepalived/sbin/notify.sh backup" notify_fault "/usr/local/keepalived/sbin/notify.sh fault"}

添加切換通知腳本

vi /usr/local/keepalived/sbin/notify.sh

內容以下:

#!/bin/bashcase "$1" in master) /usr/local/nginx/sbin/nginx exit 0 ;;backup) /usr/local/nginx/sbin/nginx -s stop /usr/local/nginx/sbin/nginx exit 0 ;; fault) /usr/local/nginx/sbin/nginx -s stop exit 0 ;; *) echo 'Usage: notify.sh {master|backup|fault}' exit 1 ;;esac

添加執行權限 chmod +x /usr/local/keepalived/sbin/notify.sh

在第二臺機器上添加notify.sh腳本

分別在兩臺機器上啓動keepalived

service keepalived start chkconfig keepalived on

6.虛擬機克隆

嚴格來講這不屬於安裝軟件的範疇,可是爲了總結方便,也把虛擬機的克隆放在這裏記一下: 有時候咱們在虛擬機模擬集羣的時候須要多臺linux服務器,若是一臺已經安裝好了,這時就能夠採用克隆的辦法去快速生成多臺liunx服務器。 虛擬機桌面上,選定你要克隆的虛擬機——右鍵——管理——克隆,下一步下一步便可。 克隆完成後須要修改ip,主機名等配置:

修改hosts: vi /etc/hosts

192.168.85.102 mini2

修改sysconfig/network: vi /etc/sysconfig/network

HOSTNAME=mini1

修改resolv.conf vi /etc/resolv.conf

search mini1

修改ifcfg-eth0:

配置IP爲:IPADDR=192.168.85.101刪掉UUID和HWADDR那兩行

刪除70-persistent-net.rules:

rm -rf /etc/udev/rules.d/70-persistent-net.rules

重啓便可使用:

reboot

7.從一臺linux登陸到另外一臺linux機器上並配置免密登陸

從一臺linux登陸到另外一臺linux 如今假若有兩臺服務器192.168.85.101和192.168.85.102,若是我想從101服務器向102服務器複製文件,而又不想走xshell作一次中轉,那就能夠直接從101登陸到102上。liunx上的登陸採用的是ssh協議的方式,分爲客戶端和服務端,每一臺服務器就是服務端,那什麼是客戶端呢,只須要輸入ssh便可,就至關於調出了linux這臺機器上的客戶端。

ssh 192.168.85.102

輸入yes和密碼,就能夠從101上登陸到102這臺服務器上了,輸入exit能夠退出102服務器。 以magic用戶的身份登陸102服務器(前提是192.168.85.102服務器上存在magic這個用戶)

ssh magic@192.168.85.102

使用root用戶的身份將testfile文件拷貝到192.168.85.102服務器的apps文件夾下,scp就是在服務器之間拷貝文件的命令。

scp testfile root@192.168.85.102:/apps

配置免密登陸 上面基本已經解決了前面的問題,可是有個缺陷,每次都須要輸入密碼,很麻煩,能夠配置免密登陸。ssh是遠程登陸的安全外殼協議,提供兩種身份驗證機制:用戶名+密碼或者密鑰驗證。

配置主機之間的免密ssh登錄 假如從192.168.85.101要登錄192.168.85.102 在192.168.85.101上進行操做: 1.首先生成密鑰對:

ssh-keygen

中間有提示時,直接回車便可。 2.再將192.168.85.101的公鑰拷貝並追加到192.168.85.102的受權列表文件authorized_keys中,使用下面命令執行。

ssh-copy-id 192.168.85.102

到此結束,安裝完成,直接ssh 192.168.85.102 不用輸密碼便可登陸。

相關文章
相關標籤/搜索