Appinventor服务器搭建-云服务器玩法在线实验

[复制链接]
查看: 296|回复: 0

15

主题

15

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2020-12-28 11:57:56 | 显示全部楼层 |阅读模式

实验内容App Inventor是一款谷歌公司开发的手机编程软件,App Inventor用户能够通过该工具软件使用谷歌的Android系列软件自行研发适合手机使用的任意应用程序。这款编程软件不一定非要是专业的研发人员,甚至根本不需要掌握任何的程序编制知识。因为这款软件已经事先将软件的代码全部编写完毕,用户只需要根据自己的需求向其中添加服务选项即可。也就是我们所要做的只是写简单的代码拼装程序。本期教程就要告诉大家如何搭建Appinventor服务器。

免费在线实验地址:点击进入

实验资源:云服务器,没有云服务器的朋友推荐1折抢购:69元/年的阿里云服务器或者88元/年的腾讯云服务器

准备工作
升级系统至最新
  1. yum -y update
复制代码
必要软件安装
  1. 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 git
  2. yum provides libstdc++.so.6
  3. yum -y install libstdc++-4.8.5-28.el7.i686
复制代码
下载与安装jdk8
  1. cd /opt
  2. 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
  3. tar -zxvf jdk-8u191-linux-x64.tar.gz
  4. ln -s /opt/jdk1.8.0_191 /opt/java
复制代码
Ant安装
  1. cd /opt
  2. wget http://mirrors.hust.edu.cn/apache//ant/binaries/apache-ant-1.10.5-bin.zip
  3. unzip apache-ant-1.10.5-bin.zip
  4. ln -s /opt/apache-ant-1.10.5 /opt/apache-ant
复制代码
下载最新版本 App Engine SDK for Java
  1. cd /opt
  2. wget  https://about-10050352.cos.ap-shanghai.myqcloud.com/appengine-java-sdk-1.9.69.zip
  3. unzip appengine-java-sdk-1.9.69.zip
  4. ln -s /opt/appengine-java-sdk-1.9.69 /opt/appengine-java-sdk
复制代码
设置环境
定位到 /etc/profile 目录
末尾加入
  1. export ANT_HOME=/opt/apache-ant
  2. export JAVA_HOME=/opt/java
  3. export JRE_HOME=/opt/java/jre
  4. export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ANT_HOME/bin:/opt/appengine-java-sdk/bin
  5. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
复制代码
改好应是这样
示例代码:/etc/profile
  1. # /etc/profile

  2. # System wide environment and startup programs, for login setup
  3. # Functions and aliases go in /etc/bashrc

  4. # It's NOT a good idea to change this file unless you know what you
  5. # are doing. It's much better to create a custom.sh shell script in
  6. # /etc/profile.d/ to make custom changes to your environment, as this
  7. # will prevent the need for merging in future updates.

  8. pathmunge () {
  9.     case ":${PATH}:" in
  10.         *:"$1":*)
  11.             ;;
  12.         *)
  13.             if [ "$2" = "after" ] ; then
  14.                 PATH=$PATH:$1
  15.             else
  16.                 PATH=$1:$PATH
  17.             fi
  18.     esac
  19. }


  20. if [ -x /usr/bin/id ]; then
  21.     if [ -z "$EUID" ]; then
  22.         # ksh workaround
  23.         EUID=`/usr/bin/id -u`
  24.         UID=`/usr/bin/id -ru`
  25.     fi
  26.     USER="`/usr/bin/id -un`"
  27.     LOGNAME=$USER
  28.     MAIL="/var/spool/mail/$USER"
  29. fi

  30. # Path manipulation
  31. if [ "$EUID" = "0" ]; then
  32.     pathmunge /usr/sbin
  33.     pathmunge /usr/local/sbin
  34. else
  35.     pathmunge /usr/local/sbin after
  36.     pathmunge /usr/sbin after
  37. fi

  38. HOSTNAME=`/usr/bin/hostname 2>/dev/null`
  39. if [ "$HISTCONTROL" = "ignorespace" ] ; then
  40.     export HISTCONTROL=ignoreboth
  41. else
  42.     export HISTCONTROL=ignoredups
  43. fi

  44. export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

  45. # By default, we want umask to get set. This sets it for login shell
  46. # Current threshold for system reserved uid/gids is 200
  47. # You could check uidgid reservation validity in
  48. # /usr/share/doc/setup-*/uidgid file
  49. if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
  50.     umask 002
  51. else
  52.     umask 022
  53. fi

  54. for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
  55.     if [ -r "$i" ]; then
  56.         if [ "${-#*i}" != "$-" ]; then
  57.             . "$i"
  58.         else
  59.             . "$i" >/dev/null
  60.         fi
  61.     fi
  62. done

  63. unset i
  64. unset -f pathmunge
  65. export ANT_HOME=/opt/apache-ant
  66. export JAVA_HOME=/opt/java
  67. export JRE_HOME=/opt/java/jre
  68. export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ANT_HOME/bin:/opt/appengine-java-sdk/bin
  69. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
复制代码
执行
  1. source /etc/profile
复制代码
安装AppInventor下载源码
  1. cd /opt
  2. git clone https://github.com/mit-cml/appinventor-sources.git
  3. cd appinventor-sources
  4. cp sample-.gitignore .gitignore
  5. git submodule update --init
复制代码
Ant AppInventor代码
  1. cd /opt/appinventor-sources/appinventor
  2. ant clean
  3. ant MakeAuthKey
  4. ant
复制代码
防火墙设置
  1. firewall-cmd --permanent --zone=public --add-port=8888/tcp
  2. firewall-cmd --reload
复制代码
试运行
看看有没有出错代码,Ctrl+C 退出
  1. dev_appserver.sh --port=8888 --address=0.0.0.0  --disable_update_check /opt/appinventor-sources/appinventor/appengine/build/war
复制代码
转移至正式运行目录
  1. cd /opt
  2. mkdir ai2server
  3. cd ai2server
  4. cp -R /opt/appinventor-sources/appinventor/appengine/build/war ./
  5. cp -R /opt/appinventor-sources/appinventor/buildserver/build/run/lib ./
复制代码
开机启动
新建/opt/ai2server/runai2.sh
写入
示例代码:/opt/ai2server/runai2.sh
  1. #!/usr/bin/bash
  2. #
  3. #
  4. #

  5. export ANT_HOME=/opt/apache-ant
  6. export JAVA_HOME=/opt/java
  7. export JRE_HOME=/opt/java/jre
  8. export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ANT_HOME/bin:/opt/appengine-java-sdk/bin
  9. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

  10. #pkill -9 java

  11. nohup dev_appserver.sh --port=8888 --address=0.0.0.0  --disable_update_check /opt/ai2server/war/ &> /var/log/ai2d.log &
  12. echo $! > /var/run/ai2d.pid

  13. cd /opt/ai2server/lib
  14. nohup java -Xmx1828m -cp "*" -Dfile.encoding=UTF-8 com.google.appinventor.buildserver.BuildServer --dexCacheDir /tmp/ &> /var/log/ai2b.log &
  15. echo $! > /var/run/ai2b.pid
复制代码
新建/opt/ai2server/stopai2.sh
写入
示例代码:/opt/ai2server/stopai2.sh
  1. #!/usr/bin/bash
  2. #
  3. #

  4. #pkill -9 java

  5. read PID < /var/run/ai2d.pid

  6. kill -15 $PID

  7. read PID < /var/run/ai2b.pid

  8. kill -15 $PID
复制代码
加权限
  1. chmod +x /opt/ai2server/runai2.sh
  2. chmod +x /opt/ai2server/stopai2.sh
复制代码
创建service
新建/usr/lib/systemd/system/ai2.service
写入
示例代码:/usr/lib/systemd/system/ai2.service
  1. [Unit]
  2. Description=app inventor 2
  3. After=network.target

  4. [Service]
  5. Type=forking
  6. ExecStart=/opt/ai2server/runai2.sh
  7. ExecStop=/opt/ai2server/stopai2.sh
  8. PrivateTmp=true

  9. [Install]
  10. WantedBy=multi-user.target
复制代码
启动
  1. systemctl start ai2.service
  2. systemctl enable ai2.service
复制代码
AppInventor-Sources更新
  1. cd /opt/appinventor-sources
  2. git pull
  3. git submodule update
  4. cd /opt/appinventor-sources/appinventor   
  5. ant clean  
  6. ant
  7. /opt/ai2server/stopai2.sh

  8. sleep 10s

  9. cp -Rf /opt/appinventor-sources/appinventor/appengine/build/war /opt/ai2server/
  10. cp -Rf /opt/appinventor-sources/appinventor/buildserver/build/run/lib /opt/ai2server/

  11. /opt/ai2server/runai2.sh
复制代码

腾讯云
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩图文



在线客服(工作时间:9:00-22:00)
400-600-6565

内容导航

微信客服

Copyright   ©2015-2019  云服务器社区  Powered by©Discuz!  技术支持:尊托网络     ( 湘ICP备15009499号-1 )