CentOS生产环境设置及产品系统升级策略

0x00 前沿

此次系统升级大改,从电路板、嵌入式程序、硬件通信协议、硬件与服务器通信协议设计与文档编写、Android程序、Java后台服务程序、数据库结构、PHP后台、前端Web用户操作指令、iOS应用用户操作指令(先审核再适时发布)等进行同步升级,服务器操作系统也由Windows切换成CentOS。为了最大限度地进行无痕升级过度,测试花了不少时间。付出没有白费,新系统在短时间内切换上线,用户近乎无感,没有太大的问题,一些小问题也得到了非常及时的修复,上线运行了一些日子已经算是比较稳定了。

0x01 安装GNOME桌面

虽然生产环境下不开桌面比较好,但桌面也是不时之需

yum groupinstall -y "GNOME Desktop" "Graphical Administration Tools"

启动图形化桌面

startx

0x02 格式化和挂载数据盘

为了方便数据维护,购买了一块数据盘,先挂载数据盘

1)格式化

有图形化磁盘管理工具就不用命令行了。
这里写图片描述
进去选择未格式化的磁盘,这里可以看到设备路径为/dev/vdb,进行格式化,在这里我命名为www
这里写图片描述

fdisk -l 命令也可以看到磁盘路径

2)挂载

创建www目录,并挂载

mkdir /www
mount /dev/vdb /www

开机自动挂载

echo '/dev/vdb /www ext4 defaults 0 0' >> /etc/fstab

或者使用磁盘工具挂载
这里写图片描述
这里写图片描述
执行df -f命令可以看到已经挂载好了。
这里写图片描述

0x03 添加用户

用户界面管理工具进不去,可能是只有一个root用户,那么就命令行添加其它用户。
adduser hello 添加用户”hello”
passwd hello 修改”hello”用户的密码

命令行添加后就可以用界面工具了。。。

0x04 安全组规则设置

使用的是阿里云服务器,要公网访问服务器,选择入方向即可
开放单独端口号80/80或范围端口号80/85
所有人都能访问 IP规则 0.0.0.0/0

0x05 设置中文输入法

区域和语言加号->汉语->添加拼音输入法

0x06 IPV6配置

vim /etc/modprobe.d/disable_ipv6.conf
options ipv6 disable=0
vim /etc/sysconfig/network
NETWORKING_IPV6=yes
vim /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0

重启,执行ifconfig命令查看分配了IPV6地址,至于要通过IOS的审核环境,可参考文章最下面的《IPV6配置》

0x07 数据库启动失败问题

使用命令行启动,显示如下:

root@hello ~]# service mysqld start
Starting MySQL.180314 17:50:59 mysqld_safe Logging to '/www/server/data/mariadb.err'.
180314 17:50:59 mysqld_safe Starting mysqld daemon with databases from /www/server/data
/www/server/mysql/bin/mysqld_safe_helper: Can't create/write to file '/www/server/data/mariadb.err' (Errcode: 13 "Permission denied")

应该是目录没有访问权限。那么我们赋予mysql用户权限操作:

chown -R mysql:mysql /www/server/data
chown -R mysql:mysql /www/server/mysql

service mysqld start 成功启动

0x08 FTP上传中途失败

原因是服务器对每个IP创建的客户端连接数进行了限制,FTP客户端采用多线程方式触发了此规则。修改pure-ftpd服务器配置文件:
MaxClientsPerIP 100

0x09 8uftp无法取得目录列表

8uftp客户端高级->选项->防火墙设置->去掉勾选(PASV)被动模式
Hbuilder FTP插件改为主动模式
服务器安全组策略打开21(用户认证)和20(数据传输)端口

0x0A Java服务部署

上传activmq并解压运行

tar -zxvf apache-activemq-5.15.3-bin.tar.gz
./activemq start

查看是否运行:

ps -ef |grep activemq
netstat -noa | grep 8161
netstat -noa | grep 61616

nohup java -jar xxx.jar >xxx.log & 运行jar程序并指定输出日志路径
netstat -nap | grep 8080查看占用进程pid
ps -ef |grep hello.jar
ps pid 查看进程路径
kill -9 pid 强行结束进程

0x0B 数据迁移

1)文件迁移

FTP下载文件,FTP或WinSCP上传

2)数据库迁移

新系统增加了数据库表结构(没改减),所以在本地将新表结构做好,迁移结构到新服务器上。
再备份旧数据库为SQL文件(仅备份insert数据,不导出表结构),在新服务器数据库里执行SQL进行数据迁移。

0x0C 数据库编码异常

新版本在Java中插入了中文到数据库,故而出现乱码问题。Java端用的是hikari数据库连接池
连接时应该指定编码:

jdbc:mysql://127.0.0.1:3306/dbname?useUnicode=true&characterEncoding=UTF-8

0x0D 微信单点登录、支付

新系统切换了子域名,所以微信登录、支付、分享等接口都受影响、需要兼容升级。只需要在授权域名处获取code,把code的返回给子域名就行了,此外使用下面开源组件需要注意用户信息code的授权域&scope=snsapi_userinfo,不然会导致获取用户信息失败,看代码才知道,作者是没有说明的。这里有个很大的坑,即使授权域不是snsapi_userinfo,以前有过授权的微信帐号,即使在数据库中将其删掉重新注册也能获取用户信息,但新用户微信授权注册却无法获取用户信息。
https://github.com/lionskys/codetoany

0x0E 微信分享

  • 添加JS回调安全域名
  • 基本配置->添加新主机IP白名单,多个用换行符隔开(这一点很容易忽略)
  • -

0x10 Memcache与Memcached

Memcached可以看作是Memcache的升级版,Memcached服务器兼容Memcache客户端。PHP客户端要确定好使用memcache还是memcached扩展。

0x11 参考文章

磁盘挂载
https://www.cnblogs.com/nsw2018/p/6441542.html
IPV6配置
http://coolnull.com/4474.html
http://coolnull.com/4476.html

【转载请注明出处: http://blog.csdn.net/leytton/article/details/79551974
PS:如果本文对您有帮助,请点个赞让我知道哦~微笑

posted @ 2018-03-29 21:20  Leytton  阅读(177)  评论(0编辑  收藏  举报