通用开发环境运维配置

开发过程中常见的组件的部署与配置

Node安装

Node.js是一个基于Chrome V8引擎的JavaScript运行环境; 是运行在服务端的 JavaScript.

Hexo安装

Hexo是一个简单地、轻量地、基于Node的一个静态博客框架,可以方便的生成静态网页托管(Hexo依赖NodeJs)

Hexo安装实例

Hexo插件安装

Hexo创建项目

在工程目录下(手动创建)执行 即可完成工程初始化

Hexo启动项目

Hexo启动使用命令 , 也可以使用 启动并直接打开应用页面

Hexo静态化项目

Hexo静态化使用命令 , 静态化后的文件在工程的public目录下

Hexo主题扩展

推荐主题

https://github.com/iissnan/hexo-theme-next

https://github.com/tufu9441/maupassant-hexo

https://github.com/Haojen/hexo-theme-Anisina

主题扩展

在 下执行 或者下载到工程目录下的themes下

修改工程目录下的_config.yml文件, 配置节点 为要扩展的主题

Hexo推送Git

Git推送配置(修改工程目录下的_config.yml文件,配置节点 )

GIT推送命令部署

Hexo安装问题

安装过程遇到的问题解决,问题列表.

JDK 安装

JDK(Java Development Kit)是Java语言的软件开发工具包.它包含了JAVA的运行环境(JVM + Java系统类库)和JAVA工具.

移除自带的OpenJDK

CentOs默认可能安装了openjdk,这里我们采用oracle官网的jdk,所以需要移除openjdk.

安装Oracle官方JDK

下载最新版本的JDK,解压到特定目录,笔者解压到 , 然后配置环境变量(修改/etc/profile文件,在文件末尾追加java环境变量设置信息)

配置文件末尾追加内容如下(追加完 使配置生效)

Nginx安装

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器; 官网地址:http://nginx.org/

Nginx安装示例

Nginx安装验证

Nginx启停脚本

Nginx配置说明

相关文档: https://blog.52itstyle.com/archives/557/

Nginx平滑升级

相关文档: https://www.centos.bz/2017/07/nginx-upgrade-latest-version/

Mysql安装

MySQL是最流行的关系型数据库管理系统.

Yum安装MysSQL

使用官方仓库安装

MySQL开机启动

通过 配置MySQL开机启动.

MySQL授权访问

示例: 授权 以 从任意远程端连接到mysql,特定ip限制讲%设置为限制的ip地址即可.

授权后,远程端访问

Redis安装

Redis是一个高性能的key-value数据库.

Redis安装

Redis配置

修改 配置文件:

Redis启停脚本

Redis开机启动

Redis授权访问

Mongo安装

Mongo是一个基于分布式文件存储的数据库.

Mongo安装

Mongo配置

说明: dbpath和logpath自己创建

Mongo验证

命令行教程: http://www.runoob.com/mongodb/mongodb-tutorial.html

Mongo权限

开启权限认证

mongo启动配置中设置auth=true

添加管理员账号

说明

这里所说的管理员账号不是像linux里面无所不能的root,而是一个能分配账号的账号。

这样就创建了一个账号,user为admin,密码为123456,他能在admin库中管理任何库的用户。

添加数据操作账号

一旦开启的权限管理,接下来所有的操作都必须用合适的账号去做,我们创建的admin账号只能管理用户,而我们真正需要的账号是要能用来读写数据的,那就需要创建一个可读写数据的账号。

示例给stream库添加了一个账号为"test",密码为"testpwd", 权限为"readWrite"的用户.

DaemonTools安装

DaemonTools安装示例

说明: 安装完会在根目录/下创建两个目录:/service和/command目录.

/service目录: 存放被daemontools管理的进程,注意在/service目录下存放的只能是连接。

/command目录: 存放的是daemontools的一些常用命令。

DaemonTools开机启动

在 下增添加 文件, 文件内容如下:

注释掉安装,在 中自动配置的一行(不使用该方法开机启动,会存在不同系统失效的问题)

添加完启动配置后, 执行以下指令是配置重新加载

DaemonTools状态检测

DaemonTools目录规范

在需要被supervise监控的目录下建立可执行的 run 脚本文件将这个目录软链到/service下,svscan检测到这是个新目录,会自动执行 svc -u

关于run脚本:切记,要用 exec 执行最终执行服务的程序,否则运行 run 脚本的shell收到 svc -d 的 TERM 信号退出之后,实际执行服务的那个程序不会跟着退出。

因为supervise是通过监控run退出时产生的SIGCHLD信号来识别服务已经终止,并重启服务的。如果这里没exec,则会导致fork+exec效果,在svc -d终止服务时,只给run脚本发送TERM命令,而run脚本fork出来的子进程不会收到信号,从而变成孤儿进程继续运行,占据文件锁、TCP端口等资源对于不便exec的程序,可以在后面加&符号后台运行,并在调用命令之后用 waitpid %1 命令等待,从而阻止run脚本退出;run脚本开头处应该用trap命令捕获TERM信号,信号处理过程中给%1发送TERM信号,即可实现整体退出的效果

一个受监控的配置示例结构应当如下图:

DaemonTools监控示例

创建监控测试进程

说明: 要监控的监控必须对应一个run脚本(名字必须是run而且权限是755)

尝试kill掉测试进程

DaemonTools常用指令

启动被管理的进程

查看被管理的进程状态

重启被管理的服务

关闭被管理的进程

问题处理

问题1: could not read symbols: Bad value

错误:

解决: 编辑src/conf-cc, 在gcc开头的一行最后加上

问题2: 应用程序的错误输出需要重定向到STDOUT去

应用程序的错误输出需要 重定向 到 STDOUT 去,不然 daemontools 会认为你的程序出错导致一起重启。通常很多 java 程序是直接把错误输出在 标准错误输出的,需要注意。

CentOs7防火墙

firewall命令说明

firewall-cmd --state ##查看防火墙状态,是否是running

firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令

firewall-cmd --get-zones ##列出支持的zone

firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的

firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no

firewall-cmd --add-service=ftp ##临时开放ftp服务

firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务

firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务

firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口(--zone #作用域, --permanent #永久生效,没有此参数重启后失效)

iptables -L -n ##查看规则,这个命令是和iptables的相同的

man firewall-cmd ##查看帮助

参考文章

https://blog.52itstyle.com/archives/1158/

https://blog.csdn.net/achang21/article/details/52538049 (防火墙)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180526G0BJNJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券