https://github.com/lisong/code-push-server/blob/master/docs/README.md
=====> 安裝mysql
下載mysql yum repository 安裝
https://dev.mysql.com/downloads/repo/yum/
yum install mysql80-community-release-el7-3.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*"
yum-config-manager --enable mysql80-community
yum install mysql-community-server
systemctl start mysqld
# 取消密碼強度驗證
plugin-load=validate_password.so
validate-password=OFF
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'codePush@365!';
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password.policy=0;
set global validate_password.length=1;
# 建立用戶並受權
ALTER USER 'codepush'@'%' IDENTIFIED WITH mysql_native_password BY 'codePush@365'
grant all privileges on *.* to 'codepush'@'%';
flush privileges;
=====> 安裝redis
wget http://download.redis.io/releases/redis-4.0.14.tar.gz
tar -xf redis-4.0.14.tar.gz
mv redis-4.0.14 redis
cd redis
#src/redis-server # 啓動
#./redis-cli # 測試
#set htllo redis
#get hello
make -j 4 => (以四核方式編譯源碼文件)
make test -j 4 => (測試編譯的源碼是否有問題)
# 解決You need tcl 8.5 or newer in order to run the Redis test
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
./configure
make
make install
make test -j 4 => (測試編譯的源碼是否有問題)
make PREFIX=/redis-4.0.10 install (指定安裝redis位置)
# 修改配置文件
daemonize yes
protected no
requirepass 123
port 6379
dir "數據文件的位置"
logfile "指定日誌文件的位置"
# 設置開機啓動
複製redis安裝文件夾中的啓動腳本到/etc/init.d
cp /redis-4.0.10/utils/redis_init_script /etc/init.d/redis
修改腳本
vi /etc/init.d/redis
將以下兩行 = 號後面換成安裝目錄中對應的啓動文件
EXEC=/data/apps/redis/bin/redis-server
CLIEXEC=/data/apps/redis/bin/redis-cli
CONF="/opt/software/redis-4.0.14/redis.conf"
修改權限
chmod +x /etc/init.d/redis
添加redis服務:
chkconfig --add redis
設爲開機啓動:
chkconfig redis on
redis啓動關閉等命令
service redis start
service redis stop
ps -ef | grep redis
=====> 安裝Nginx
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
wget https://nginx.org/download/nginx-1.16.0.tar.gz
useradd -M nginx
tar -xf nginx-1.16.0.tar.gz
./configure --user=nginx --group=nginx --prefix=/data/apps/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream
make && make install
cat <<EOF > /etc/profile.d/nginx.sh
export PATH=/data/apps/nginx/sbin/:$PATH
EOF
source /etc/profile
=====> 安裝codepush
cd /data/apps/
# INSTALL NODE AND NPM
yum -y install npm
# INSTALL PM2
npm i -g pm2
# GET code-push-server FROM NPM
npm install code-push-server@latest -g
# GET code-push-server FROM SOURCE CODE
git clone https://github.com/lisong/code-push-server.git
cd code-push-server
npm install
# INIT DATABASE
code-push-server-db init --dbhost localhost --dbport 3306 --dbuser "codepush" --dbpassword "codePush@365"
# ./bin/db init --dbhost localhost --dbport 3306 --dbuser "codepush" --dbpassword 'codePush@365'
# 修改配置文件
sed -i 's/null/password/' bin/db
# 修改 config.js (在config/config.js下)
qiniu: {
accessKey: "63o7v6hB_2MsY0cl9YC8eg3Gor9ytnliQV4BTacP",
secretKey: "fRWTWY7T361WiArdHuCzBVoPvu8nUCyz-U_sOKjF",
bucketName: "dxsp",
downloadUrl: "http://test.dianyi125.com" // Binary files download host address.
},
// 去https://www.grc.com/passwords.htm獲取63 random alpha-numeric characters (a-z, A-Z, 0-9):的密鑰
jwt: {
// Recommended: 63 random alpha-numeric characters
// Generate using: https://www.grc.com/passwords.htm
//tokenSecret: process.env.TOKEN_SECRET ||'INSERT_RANDOM_TOKEN_KEY'
tokenSecret: process.env.TOKEN_SECRET || '3UqxPvyAZjRXbsLuP0Hr2dcyNdaF5wTkJox3P6ogUBmCIbfoBFiUuqHsCxDm1Jl'
},
# 使用pm2管理 修改 ./docs/process.json
{
"apps" : [
{
"name" : "code-push-server",
"max_memory_restart" : "300M",
"script" : "../bin/www",
"instances" : "max", //開啓實例數量,max爲cpu核數
"exec_mode" : "cluster", //集羣模式,最大提高網站併發
"env" : {
"NODE_ENV" : "production",
"PORT" : 80,
"CONFIG_FILE" : "../config/config.js"
}
]
}
$ pm2 start process.json
// 更多 pm2 命令
$ pm2 stop [options] <id|name|all|json|stdin...> 關閉服務
$ pm2 list 查看全部
$ pm2 show <id> 查看某個服務的信息
# 普通啓動
./bin/www
# CHECK SERVICE IS OK
curl -I http://103.219.30.6
# UPGRADE
npm install -g code-push-server@latest
code-push-server-db upgrade --dbhost "your mysql host" --dbport "your mysql port" --dbuser "your mysql user" --dbpassword "your mysql password" # upgrade codepush database
pm2 restart code-push-server # restart service
# view pm2 logs
pm2 ls
pm2 show code-push-server
tail -f "output file path"
# mysqldump -uroot codepush > codepush.sql create database codepush default character set utf8mb4 collate utf8mb4_unicode_ci; # mysql -u root -p codepush < codepush.sql