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:如果本文对您有帮助,请点个赞让我知道哦~微笑