文档章节

PHP程序员的简单运维

oxiaohaio
 oxiaohaio
发布于 2016/12/15 22:42
字数 1693
阅读 1.4K
收藏 34

「深度学习福利」大神带你进阶工程师,立即查看>>>

所谓的简单运维就是保证自己开发的程序能正常运行和使用。

当一个程序员需要兼作运维时候需要掌握以下技能

1、linux系统基础命令和Windows Server操作
        是基础中的基础,ls, rm, top, w, mkdir, find, cp, mv, kill, killall, cat, chown, chmod, time... 等等,命令参数没必须全部掌握,需要用的时候度娘去查。


2、WEB服务环境配置
       常用的NGINX和APACHE要熟悉,WIN下可以使用IIS,有些情况下需要TOMCAT也要了解,一般使用安装包或者安装命令比较省事。后面会介绍一些安装命令。


3、SHELL脚本或BAT批处理
      简单写个备份脚本或者文件处理之类的,方便快捷。


4、数据库
     大部分使用MYSQL,一般掌握数据迁移,坏损数据修复即可。

5、防火墙(安全规则)
     WIN一般使用IP策略,linux用IPTABLES和hosts.allow即可防范常规的非授权访问,后面也有详细介绍。

6、监控工具(存货监控)
     相对来说比较重要,保证业务正常运行的手段,有条件的话可以自己写监控报警脚本,也可以使用第三方工具 cacti,nagios,zabbix等等。也有部分公司提供监控服务,如监控宝,阿里云监控,百度云观测,360监控,业务出错后都有短信或者邮件等渠道通知。

7、集群和热备
     有很多工具可以实现,根据实际情况部署即可,对于WEB服务基本就两点:文件和数据库。

8、数据备份
     通过脚本或者工具把所有业务数据定期异地备份,一般情况是凌晨1点-3点在服务器空闲时间。

 

下面详细介绍一些常规操作方法

查看服务器负载 top

load average: 0.76, 0.72, 0.70  一般查看这个数值,第一个数据一般在1以内表示运行状况良好,其他数据具体含义可以度娘去查,这里不详述。这个load average数据也可以用w命令快速查看。

编辑本本或配置文件命令 vim

一般系统新装时候没有自带vim的情况下,也可以使用vi代替

具体使用方法网上也有很多教程,可以查找学习

 

安装软件

centos下一般使用 yum install  如

yum 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 一般安装命令是

yun 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_$(date -d "yesterday" +"%Y%m%d").bak.tar.gz /www

脚本文件放到/apptool/bak.sh,内容意思是把/www目录压缩到/home/bak目录下面,以file_日期_bak.tar.gz命名。

然后放到crontab里面定时每天夜里执行

crontab -e
00 00 * * * /bin/bash /apptool/bak.sh

异地备份可以选择使用flashfxp做好定时任务周期性拉取文件即可。

数据库备份可以选择使用navicat做好远程连接设置,然后做好备份规则。

 

其他2

为了开发和维护方便,可以部署一些自动化程式,可以在测试环境设置周期性拉取版本库里面的内容,实现自动更新,开发者只需在本地提交后即可实时预览修改后的内容。

正式环境也可以使用脚本完成一键更新。

 

其他3

掌握一些常规压测工具,检验程序和服务器的性能,如wrk, ab, webbench, hping

ab 一般装有apache的机器上都可以直接使用,一般目标主机都是自己的server,如

ab -c100 -n1000 http://www.host.com/

请求目标主机100并发,总请求1000次,命令结束后会出现一些信息总结检测情况,同时需要观察目标主机的资源消耗情况。

hping工具也很好用,具体使用方法可以查阅使用文档。

 

其他4

iptraf, tcpdump, ngrep, nethogs, nload, iftop 等网络检测和诊断工具使用可以有效发现并解决相关问题。

基础命令 netstat, ping, traceroute...等需要熟练掌握并使用。

也可以借助一些检测网站,如17ce,alibench 等一些网站质量检测站点帮助发现问题。

其他5

待整理。。。

 

以上内容由Q哥哥编写并整理,谢谢观看。

 

 

 

 

oxiaohaio

oxiaohaio

粉丝 4
博文 28
码字总数 9243
作品 0
江阴
程序员
私信 提问
加载中
此博客有 1 条评论,请先登录后再查看。
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.3K
1
opm-server-mirror

代码更新 2009-11-25: 加入反爬虫功能。直接Web访问服务器将跳转到Google。 使用方法 下载index.zip 解压index.zip得到index.php 将index.php传到支持php和cURL的国外服务器上 打开 http:/...

luosheng86
2013/01/29
1K
0
N简单CMS

N简单CMS能够让网站开发者更快速、灵活、简单的开发网站。 N简单CMS有以下特点: 更简单和自由的模板标签调用 专注于人性化的管理和操作 基于完全php5框架Kohana2.3.4开发 资源调用和消耗更低...

匿名
2013/02/26
3.2K
0
tiny php template--TPT

关于TPT TPT是php实现的用于模板解析小工具,全部实现仅仅60行代码。 配置 DIRCOMPILED和DIRTEMPLATE,分别表示模版编译目录和模版文件目录: define('DIRCOMPILED','/compileddiy');define(......

红猪-侠
2013/03/03
1K
1
Steam Installer for Wheezy

Linux游戏最近因为Valve旗下Steam平台的支持而获得快速增长。最初Steam只承诺支持最流行的桌面发行版Ubuntu,但最近它已向其它流行发行版开放了大门。但如果你使用的是不那么流行的发行版呢?...

匿名
2013/03/06
900
0

没有更多内容

加载失败,请刷新页面

加载更多

利用Numpy中的ascontiguousarray可以是数组在内存上连续,加速计算

1. 概述 在使用Numpy的时候,有时候会遇到下面的错误: AttributeError: incompatible shape for a non-contiguous array 看报错的字面意思,好像是不连续数组的shape不兼容。 有的时候,在看...

osc_9we1w99u
12分钟前
0
0
如何管理客户的期望值?

根据客户关系管理(CRM)中的三角定律,客户满意度=客户体验-客户期望值。客户期望值与客户满意度成相对反比,因此需要引导客户期望值并维持在一个适当的水平,同时客户期望值需要与客户体验协...

cailisuper
今天
0
0
阿里研究员:软件测试中的18个难题

阿里QA导读:对于软件测试来说,怎么样才算测够了?如何评价测试的有效性?那么多测试用例,以后怎么删?在软件测试中会遇到非常多的问题,阿里研究员郑子颖分享了18个他总结出的难题以及相关...

阿里巴巴技术质量
昨天
0
0
Numpy的常用函数总结

1、np.argmax()、np.max()、np.argmin()、np.min()用法: argmax返回的是最大数的索引.argmax有一个参数axis,默认是0。看二维的情况如下: a = np.array([[1, 5, 5, 2],            ...

osc_auwur47t
14分钟前
0
0
【报告分享】2020抖音进阶-挑战赛2.0产品营销方案.pdf(附下载链接)

大家好,我是文文(微信:sscbg2020),今天给大家分享抖音营销中心出品的《2020抖音进阶-挑战赛2.0产品营销方案.pdf》,方案里面的玩法解析、案例、营销重点分析等都很清晰,对短视频及品牌...

智能推荐系统
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部