PHP程序員的簡單運(yùn)維
所謂的簡單運(yùn)維就是保證自己開發(fā)的程序能正常運(yùn)行和使用。
當(dāng)一個(gè)程序員需要兼作運(yùn)維時(shí)候需要掌握以下技能
1、linux系統(tǒng)基礎(chǔ)命令和Windows Server操作
是基礎(chǔ)中的基礎(chǔ),ls, rm, top, w, mkdir, find, cp, mv, kill, killall, cat, chown, chmod, time... 等等,命令參數(shù)沒必須全部掌握,需要用的時(shí)候度娘去查。
2、WEB服務(wù)環(huán)境配置
常用的NGINX和APACHE要熟悉,WIN下可以使用IIS,有些情況下需要TOMCAT也要了解,一般使用安裝包或者安裝命令比較省事。后面會(huì)介紹一些安裝命令。
3、SHELL腳本或BAT批處理
簡單寫個(gè)備份腳本或者文件處理之類的,方便快捷。
4、數(shù)據(jù)庫
大部分使用MYSQL,一般掌握數(shù)據(jù)遷移,壞損數(shù)據(jù)修復(fù)即可。
5、防火墻(安全規(guī)則)
WIN一般使用IP策略,linux用IPTABLES和hosts.allow即可防范常規(guī)的非授權(quán)訪問,后面也有詳細(xì)介紹。
6、監(jiān)控工具(存貨監(jiān)控)
相對(duì)來說比較重要,保證業(yè)務(wù)正常運(yùn)行的手段,有條件的話可以自己寫監(jiān)控報(bào)警腳本,也可以使用第三方工具 cacti,nagios,zabbix等等。也有部分公司提供監(jiān)控服務(wù),如監(jiān)控寶,阿里云監(jiān)控,百度云觀測,360監(jiān)控,業(yè)務(wù)出錯(cuò)后都有短信或者郵件等渠道通知。
7、集群和熱備
有很多工具可以實(shí)現(xiàn),根據(jù)實(shí)際情況部署即可,對(duì)于WEB服務(wù)基本就兩點(diǎn):文件和數(shù)據(jù)庫。
8、數(shù)據(jù)備份
通過腳本或者工具把所有業(yè)務(wù)數(shù)據(jù)定期異地備份,一般情況是凌晨1點(diǎn)-3點(diǎn)在服務(wù)器空閑時(shí)間。
下面詳細(xì)介紹一些常規(guī)操作方法
查看服務(wù)器負(fù)載 top
load average: 0.76, 0.72, 0.70 一般查看這個(gè)數(shù)值,***個(gè)數(shù)據(jù)一般在1以內(nèi)表示運(yùn)行狀況良好,其他數(shù)據(jù)具體含義可以度娘去查,這里不詳述。這個(gè)load average數(shù)據(jù)也可以用w命令快速查看。
編輯本本或配置文件命令 vim
一般系統(tǒng)新裝時(shí)候沒有自帶vim的情況下,也可以使用vi代替
具體使用方法網(wǎng)上也有很多教程,可以查找學(xué)習(xí)
安裝軟件
centos下一般使用 yum install 如
yum install bash-compleition
ubuntu下使用 apt-get install
win下直接執(zhí)行EXE即可(小白都會(huì))
bash-compleition 可以自動(dòng)補(bǔ)全命令參數(shù),比較好用
碰到需要編譯的軟件,有的精簡系統(tǒng)里面需要先 yum install -y gcc gcc-c++ 裝一些必要的擴(kuò)展庫才能通過,不過的時(shí)候根據(jù)錯(cuò)誤提示查找解決方法。
安裝apache 一般使用 yun install httpd,根據(jù)提示裝好后執(zhí)行service httpd start,
出現(xiàn)綠色的OK即代表安裝成功,后續(xù)的PHP環(huán)境就根據(jù)具體需求執(zhí)行安裝命令即可。
nginx 一般安裝命令是
yun install nginx
重點(diǎn)講解一下安全策略
apache下目錄訪問權(quán)限如下
- <Directory "/www">
- Options FollowSymLinks
- AllowOverride None
- Order Deny,Allow
- Deny From all
- Allow From 2.2.2.2
- Allow From 2.2.2.3
- </Directory>
- </VirtualHost>
意思是/www目錄只允許指定的ip2.2.2.2 2.2.2.3 可以訪問到,這種配置適合內(nèi)部系統(tǒng)使用。
為了保險(xiǎn)起見,可以在IPTABLES里面也同時(shí)做好限制
- vim /etc/sysconfig/iptables
- *filter
- :INPUT ACCEPT [0:0]
- :FORWARD ACCEPT [0:0]
- :OUTPUT ACCEPT [0:0]
- -A INPUT -s 1.1.1.1 -j DROP
- -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- -A INPUT -p icmp -j ACCEPT
- -A INPUT -i lo -j ACCEPT
- -A INPUT -s 2.2.2.2 -j ACCEPT
- -A INPUT -s 2.2.2.3 -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 -j REJECT --reject-with icmp-host-prohibited
- -A FORWARD -j REJECT --reject-with icmp-host-prohibited
- COMMIT
-A INPUT -s 1.1.1.1 -j DROP 這句話代表禁止1.1.1.1這個(gè)IP任何請求。
其他規(guī)則的意思是 放行2.2.2.2和2.2.2.3的所有請求,開放22和80端口。
同時(shí)在hosts.allow里面加入信任主機(jī)的ip
- vim /etc/hosts.allow
- ALL:2.2.2.2
- ALL:2.2.2.3
- sshd:ALL:deny
這樣只允許授權(quán)的Ip可以遠(yuǎn)程連接到此臺(tái)server,其他任何機(jī)器都無法登錄。
win server如下設(shè)置就可以達(dá)到同樣效果 開始->管理工具->本地安全策略 拿2008舉例,其他版本類似
默認(rèn)添加一條所有ip所有端口拒絕訪問的規(guī)則,這步遠(yuǎn)程時(shí)需要小心操作,需要在規(guī)則未生效前添加,否則會(huì)斷開連接。
第二條添加自己信任的ip,規(guī)則為放行。
第三條開放需要對(duì)外的端口,如80
整體規(guī)則,具體的設(shè)置步驟需要實(shí)際操作幾次后即可熟練。
***右鍵此條策略,選擇分配,立即生效
其他1
本地?cái)?shù)據(jù)備份腳本
tar -zcvf /home/bak/file_$(date -d "yesterday" +"%Y%m%d").bak.tar.gz /www
腳本文件放到/apptool/bak.sh,內(nèi)容意思是把/www目錄壓縮到/home/bak目錄下面,以file_日期_bak.tar.gz命名。
然后放到crontab里面定時(shí)每天夜里執(zhí)行
crontab -e
00 00 * * * /bin/bash /apptool/bak.sh
異地備份可以選擇使用flashfxp做好定時(shí)任務(wù)周期性拉取文件即可。
數(shù)據(jù)庫備份可以選擇使用navicat做好遠(yuǎn)程連接設(shè)置,然后做好備份規(guī)則。
其他2
為了開發(fā)和維護(hù)方便,可以部署一些自動(dòng)化程式,可以在測試環(huán)境設(shè)置周期性拉取版本庫里面的內(nèi)容,實(shí)現(xiàn)自動(dòng)更新,開發(fā)者只需在本地提交后即可實(shí)時(shí)預(yù)覽修改后的內(nèi)容。
正式環(huán)境也可以使用腳本完成一鍵更新。
其他3
掌握一些常規(guī)壓測工具,檢驗(yàn)程序和服務(wù)器的性能,如wrk, ab, webbench, hping
ab 一般裝有apache的機(jī)器上都可以直接使用,一般目標(biāo)主機(jī)都是自己的server,如
ab -c100 -n1000 http://www.host.com/
請求目標(biāo)主機(jī)100并發(fā),總請求1000次,命令結(jié)束后會(huì)出現(xiàn)一些信息總結(jié)檢測情況,同時(shí)需要觀察目標(biāo)主機(jī)的資源消耗情況。
hping工具也很好用,具體使用方法可以查閱使用文檔。
其他4
iptraf, tcpdump, ngrep, nethogs, nload, iftop 等網(wǎng)絡(luò)檢測和診斷工具使用可以有效發(fā)現(xiàn)并解決相關(guān)問題。
基礎(chǔ)命令 netstat, ping, traceroute...等需要熟練掌握并使用。
也可以借助一些檢測網(wǎng)站,如17ce,alibench 等一些網(wǎng)站質(zhì)量檢測站點(diǎn)幫助發(fā)現(xiàn)問題。
其他5
待整理。。。
以上內(nèi)容由Q哥哥編寫并整理,謝謝觀看。