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哥哥编写并整理,谢谢观看。

相关文章
相关标签/搜索