CentOS生產環境設置及產品系統升級策略

0x00 前沿

這次系統升級大改,從電路板、嵌入式程序、硬件通訊協議、硬件與服務器通訊協議設計與文檔編寫、Android程序、Java後臺服務程序、數據庫結構、PHP後臺、前端Web用戶操做指令、iOS應用用戶操做指令(先審覈再適時發佈)等進行同步升級,服務器操做系統也由Windows切換成CentOS。爲了最大限度地進行無痕升級過分,測試花了很多時間。付出沒有白費,新系統在短期內切換上線,用戶近乎無感,沒有太大的問題,一些小問題也獲得了很是及時的修復,上線運行了一些日子已經算是比較穩定了。css

0x01 安裝GNOME桌面

雖然生產環境下不開桌面比較好,但桌面也是不時之需html

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

啓動圖形化桌面前端

startx

0x02 格式化和掛載數據盤

爲了方便數據維護,購買了一塊數據盤,先掛載數據盤java

1)格式化

有圖形化磁盤管理工具就不用命令行了。
這裏寫圖片描述
進去選擇未格式化的磁盤,這裏能夠看到設備路徑爲/dev/vdb,進行格式化,在這裏我命名爲www
這裏寫圖片描述mysql

fdisk -l 命令也能夠看到磁盤路徑git

2)掛載

建立www目錄,並掛載github

mkdir /www
mount /dev/vdb /www

開機自動掛載sql

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

或者使用磁盤工具掛載
這裏寫圖片描述
這裏寫圖片描述
執行df -f命令能夠看到已經掛載好了。
這裏寫圖片描述數據庫

0x03 添加用戶

用戶界面管理工具進不去,多是隻有一個root用戶,那麼就命令行添加其它用戶。
adduser hello 添加用戶」hello」
passwd hello 修改」hello」用戶的密碼apache

命令行添加後就能夠用界面工具了。。。

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 參考文章

磁盤掛載
http://www.javashuo.com/article/p-oawitqqe-be.html
IPV6配置
http://coolnull.com/4474.html
http://coolnull.com/4476.html

【轉載請註明出處: http://blog.csdn.net/leytton/article/details/79551974
PS:若是本文對您有幫助,請點個贊讓我知道哦~微笑

相關文章
相關標籤/搜索