PHP程序員的簡單運維

 

所謂的簡單運維就是保證本身開發的程序能正常運行和使用。linux

當一個程序員須要兼做運維時候須要掌握如下技能ios

一、linux系統基礎命令和Windows Server操做

是基礎中的基礎,ls, rm, top, w, mkdir, find, cp, mv, kill, killall, cat, chown, chmod, time... 等等,命令參數沒必須所有掌握,須要用的時候度娘去查。nginx

二、WEB服務環境配置

經常使用的NGINX和APACHE要熟悉,WIN下可使用IIS,有些狀況下須要TOMCAT也要了解,通常使用安裝包或者安裝命令比較省事。後面會介紹一些安裝命令。c++

三、SHELL腳本或BAT批處理

簡單寫個備份腳本或者文件處理之類的,方便快捷。程序員

四、數據庫

大部分使用MYSQL,通常掌握數據遷移,壞損數據修復便可。web

五、防火牆(安全規則)

WIN通常使用IP策略,linux用IPTABLES和hosts.allow便可防範常規的非受權訪問,後面也有詳細介紹。數據庫

六、監控工具(存貨監控)

相對來講比較重要,保證業務正常運行的手段,有條件的話能夠本身寫監控報警腳本,也可使用第三方工具 cacti,nagios,zabbix等等。也有部分公司提供監控服務,如監控寶,阿里雲監控,百度雲觀測,360監控,業務出錯後都有短信或者郵件等渠道通知。apache

七、集羣和熱備

有不少工具能夠實現,根據實際狀況部署便可,對於WEB服務基本就兩點:文件和數據庫。ubuntu

八、數據備份

經過腳本或者工具把全部業務數據按期異地備份,通常狀況是凌晨1點-3點在服務器空閒時間。vim

下面詳細介紹一些常規操做方法

查看服務器負載 top

load average: 0.76, 0.72, 0.70  通常查看這個數值,第一個數據通常在1之內表示運行情況良好,其餘數據具體含義能夠度娘去查,這裏不詳述。這個load average數據也能夠用w命令快速查看。

編輯本本或配置文件命令 vim

通常系統新裝時候沒有自帶vim的狀況下,也可使用vi代替

具體使用方法網上也有不少教程,能夠查找學習

安裝軟件

centos下通常使用 yum install  如

<span>yum</span> install bash-compleition

ubuntu下使用 apt-get install

win下直接執行EXE便可(小白都會)

bash-compleition 能夠自動補全命令參數,比較好用

碰到須要編譯的軟件,有的精簡系統裏面須要先 yum install -y gcc gcc-c++ 裝一些必要的擴展庫才能經過,不過的時候根據錯誤提示查找解決方法。

安裝apache 通常使用 yun install httpd,根據提示裝好後執行service httpd start,

出現綠色的OK即表明安裝成功,後續的PHP環境就根據具體需求執行安裝命令便可。

nginx 通常安裝命令是

<span>yun</span> install nginx

重點講解一下安全策略

apache下目錄訪問權限以下

<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 能夠訪問到,這種配置適合內部系統使用。

爲了保險起見,能夠在IPTABLES裏面也同時作好限制

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這個IP任何請求。

其餘規則的意思是 放行2.2.2.2和2.2.2.3的全部請求,開放22和80端口。

同時在hosts.allow裏面加入信任主機的ip

vim /etc/hosts.allow 
ALL:2.2.2.2 
ALL:2.2.2.3 
sshd:ALL:deny 

 

這樣只容許受權的Ip能夠遠程鏈接到此臺server,其餘任何機器都沒法登陸。

win server以下設置就能夠達到一樣效果 開始->管理工具->本地安全策略 拿2008舉例,其餘版本相似

默認添加一條全部ip全部端口拒絕訪問的規則,這步遠程時須要當心操做,須要在規則未生效前添加,不然會斷開鏈接。

第二條添加本身信任的ip,規則爲放行。

第三條開放須要對外的端口,如80

總體規則,具體的設置步驟須要實際操做幾回後便可熟練。

最後右鍵此條策略,選擇分配,當即生效

其餘1

本地數據備份腳本

tar -zcvf /home/bak/file<span>_</span>$(date <span>-d</span> <span><span>&quot;yesterday&quot;</span></span> +<span><span>&quot;%Y%m%d&quot;</span></span>).bak.tar.gz /www

腳本文件放到/apptool/bak.sh,內容意思是把/www目錄壓縮到/home/bak目錄下面,以file_日期_bak.tar.gz命名。

而後放到crontab裏面定時天天夜裏執行

crontab <span><span>-e</span></span>

<span>00</span> <span>00</span> * * * <span>/bin/</span>bash <span>/apptool/</span>bak.sh

 

異地備份能夠選擇使用flashfxp作好定時任務週期性拉取文件便可。

數據庫備份能夠選擇使用navicat作好遠程鏈接設置,而後作好備份規則。

其餘2

爲了開發和維護方便,能夠部署一些自動化程式,能夠在測試環境設置週期性拉取版本庫裏面的內容,實現自動更新,開發者只需在本地提交後便可實時預覽修改後的內容。

正式環境也可使用腳本完成一鍵更新。

其餘3

掌握一些常規壓測工具,檢驗程序和服務器的性能,如wrk, ab, webbench, hping

ab 通常裝有apache的機器上均可以直接使用,通常目標主機都是本身的server,如

ab -c100 -n1000 <span>http:</span><span>//www.host.com/</span>

請求目標主機100併發,總請求1000次,命令結束後會出現一些信息總結檢測狀況,同時須要觀察目標主機的資源消耗狀況。

hping工具也很好用,具體使用方法能夠查閱使用文檔。

其餘4

iptraf, tcpdump, ngrep, nethogs, nload, iftop 等網絡檢測和診斷工具使用能夠有效發現並解決相關問題。

基礎命令 netstat, ping, traceroute...等須要熟練掌握並使用。

也能夠藉助一些檢測網站,如17ce,alibench 等一些網站質量檢測站點幫助發現問題。

其餘5

待整理。。。

以上內容由Q哥哥編寫並整理,謝謝觀看。

相關文章
相關標籤/搜索