本博客转载自:https://gte.fsyz.net/node/1874
1.CentOS7最小安装,设定网络,root登陆。 复制命令运行出错,可能是空格被替换为 了。
2.升级系统最新:
yum -y update
3.必要软件安装:
yum -y install wget zip unzip git vim zlib.i686 libstdc++-4.8.5-28.el7.i686 libstdc++-4.8.5-28.el7_5.1.i686
yum provides libstdc++.so.6
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
- base: mirrors.aliyun.com
- epel: mirror01.idc.hinet.net
- extras: mirrors.aliyun.com
- updates: mirrors.cqu.edu.cn
- webtatic: uk.repo.webtatic.com
libstdc+±4.8.5-28.el7.i686 : GNU Standard C++ Library
源 :base
匹配来源:
提供 :libstdc++.so.6
libstdc+±4.8.5-28.el7_5.1.i686 : GNU Standard C++ Library
源 :updates
匹配来源:
提供 :libstdc++.so.6
libstdc+±4.8.5-28.el7_5.1.i686 : GNU Standard C++ Library
源 :@updates
匹配来源:
提供 :libstdc++.so.6
yum -y install libstdc++-4.8.5-28.el7.i686
//确保有libstdc++.so.6库文件
- 下载与安装jdk8:【20181201】
cd /opt
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz
tar -zxvf jdk-8u191-linux-x64.tar.gz
ln -s /opt/jdk1.8.0_191 /opt/java
//若有安装openjdk ,记得先卸载。rpm -qa | grep openjdk ;yum -y remove
//以后jdk升级到opt/jdk1.8.0_192 就 ln -snf /opt/jdk1.8.0_192 /opt/java
5.ant安装 http://ant.apache.org/bindownload.cgi
cd /opt
wget http://mirrors.hust.edu.cn/apache//ant/binaries/apache-ant-1.10.5-bin.zip
unzip apache-ant-1.10.5-bin.zip
ln -s /opt/apache-ant-1.10.5 /opt/apache-ant
//下次升级了apache-ant-1.10.6 就 ln -snf /opt/apache-ant-1.10.6 /opt/apache-ant
6.https://cloud.google.com/appengine/docs/standard/java/download 下载最新版本 App Engine SDK for Java
cd /opt
wget https://storage.googleapis.com/appengine-sdks/featured/appengine-java-sdk-1.9.69.zip
unzip appengine-java-sdk-1.9.69.zip
ln -s /opt/appengine-java-sdk-1.9.69 /opt/appengine-java-sdk
7.设置环境
vim /etc/profile
末尾加入
export ANT_HOME=/opt/apache-ant
export JAVA_HOME=/opt/java
export JRE_HOME=/opt/java/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ANT_HOME/bin:/opt/appengine-java-sdk/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
source /etc/profile
测试下:
java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
ant -version
Apache Ant(TM) version 1.9.9 compiled on February 2 2017
9.使用git或者从https://github.com/mit-cml/appinventor-sources/archive/master.zip下载源码。
cd /opt
git clone https://github.com/mit-cml/appinventor-sources.git
cd appinventor-sources
cp sample-.gitignore .gitignore
git submodule update --init
10.ant appinventor代码
cd /opt/appinventor-sources/appinventor
ant clean
ant MakeAuthKey
ant
11.防火墙设置
firewall-cmd --permanent --zone=public --add-port=8888/tcp
firewall-cmd --reload
12.试运行
dev_appserver.sh --port=8888 --address=0.0.0.0 --disable_update_check /opt/appinventor-sources/appinventor/appengine/build/war/
看看有没有出错代码,Ctrl+c 退出。
13.搬到正式运行目录
cd /opt
mkdir ai2server
cd ai2server
cp -R /opt/appinventor-sources/appinventor/appengine/build/war ./
cp -R /opt/appinventor-sources/appinventor/buildserver/build/run/lib ./
14.开机启动
vim /opt/ai2server/runai2.sh
写入:
#!/usr/bin/bash
#
#
#
export ANT_HOME=/opt/apache-ant
export JAVA_HOME=/opt/java
export JRE_HOME=/opt/java/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ANT_HOME/bin:/opt/appengine-java-sdk/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
#pkill -9 java
nohup dev_appserver.sh --port=8888 --address=0.0.0.0 --disable_update_check /opt/ai2server/war/ &> /var/log/ai2d.log &
echo $! > /var/run/ai2d.pid
cd /opt/ai2server/lib
nohup java -Xmx1828m -cp "*" -Dfile.encoding=UTF-8 com.google.appinventor.buildserver.BuildServer --dexCacheDir /tmp/ &> /var/log/ai2b.log &
echo $! > /var/run/ai2b.pid
chmod +x /opt/ai2server/runai2.sh
vim /opt/ai2server/stopai2.sh
写入:
#!/usr/bin/bash
#
#
#pkill -9 java
read PID < /var/run/ai2d.pid
kill -15 $PID
read PID < /var/run/ai2b.pid
kill -15 $PID
chmod +x /opt/ai2server/stopai2.sh
创建service
cd /usr/lib/systemd/system
vim ai2.service
[Unit]
Description=app inventor 2
After=network.target
[Service]
Type=forking
ExecStart=/opt/ai2server/runai2.sh
ExecStop=/opt/ai2server/stopai2.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl start ai2.service #(等1分钟后,网站能访问了吧)
systemctl enable ai2.service # (开机启动)
15.appinventor-sources更新
cd /opt/appinventor-sources
git pull
git submodule update
cd /opt/appinventor-sources/appinventor
ant clean
ant
/opt/ai2server/stopai2.sh
sleep 10s
\cp -Rf /opt/appinventor-sources/appinventor/appengine/build/war /opt/ai2server/
\cp -Rf /opt/appinventor-sources/appinventor/buildserver/build/run/lib /opt/ai2server/
/opt/ai2server/runai2.sh
16.拓展
修改web.xml 禁止访问/_ah/admin https://gte.fsyz.net/node/1900
三、离线服务器增强
https://gte.fsyz.net/node/1911