-
发布第一个Web应用程序
2020-08-24 20:38:141.Web应用程序目录结构 2.掌握Tomact中如何发布Web程序。...在新建的当前应用发布的根目录下新建一个WEB-INF—>需要有一个web.xml文件–》也需要在当前目录下新建一个classes文件夹(用来存放Servlet编译生成1.Web应用程序目录结构
2.掌握Tomact中如何发布Web程序。
发布.jsp
将自己的项目复制到webapps下边
步骤:找到webapps–>在该目录下新建一个当前应用发布的根目录—》然后把jsp文件直接放到该目录下,就可以进行访问了----》在地址栏中输入当前应用的根目录/index.jsp
发布Servlet文件
在新建的当前应用发布的根目录下新建一个WEB-INF—>需要有一个web.xml文件–》也需要在当前目录下新建一个classes文件夹(用来存放Servlet编译生成的类文件的信息)–》在web.xml里面进行查看访问Servlet的信息 -
如何使用Rancher部署发布自己的web应用
2018-12-12 15:16:16这里涉及到docker的一些使用(打包,发布,导入导出,运行等等),应用以小幺鸡(http://www.xiaoyaoji.cn/),简单好用的在线接口文档管理工具介绍,这是一个开源的工具,当然你也可用用你自己的应用发布; 准备应用 ...作为使用Rancher的小白,昨天折腾了一天,终于搞定将自己的应用,使用Rancher部署并发布,今天就把过程记录下来,作为后来参考,也给个位小伙伴节省点儿时间
这里涉及到docker的一些使用(打包,发布,导入导出,运行等等),应用以小幺鸡(http://www.xiaoyaoji.cn/),简单好用的在线接口文档管理工具介绍,这是一个开源的工具,当然你也可用用你自己的应用发布;准备应用
- 需要有Docker环境
- 需要有Rancher环境
- 需要有你自己的应用,我这里是使用小幺鸡(http://www.xiaoyaoji.cn/)
- 1和2有不会的参考我以前博客自己搭建
- 下载最新离线文件
- 下载apache tomcat 版本需要7.x以上
- 解压tomcat
- 解压小幺鸡到tomcat/webapps/ROOT目录下
- 如果使用一键安装集成tomcat版本可直接看这儿
- 启动mysql。创建数据库xiaoyaoji, 并执行数据库脚本。这是脚本地址 https://github.com/zhoujingjie/xiaoyaoji/tree/dev/doc
- 修改tomcat/webapps/ROOT/WEB-INF/classes/config.properties
- 启动tomcat,访问http://localhost:8080/
切入正题
上面小幺鸡的官网上已经说了,如何部署运行,这里是要将自己的应用打包成docker镜像,然后使用Rancher取管理和部署;
根据$准备应用里的介绍,可以看到一个应用发布,需有两部分:应用本身以及数据服务(mysql);
使用Rancher部署数据服务
这里就是MySQL的数据服务了,当然你也可以自己打包mysql的镜像,网上有很多,大概是先pull一个系统镜像,比如Centos:7.4,然后在系统里面安上mysql。。。。,我第一次也是这么做的,可惜,Docker我还玩不转,我打出来的镜像根本无法用。因此这里借助强大的Rancher就好了,配置几步就OK啦,步骤如下:
-
选择应用,从应用商店添加应用
-
搜索MySQL
-
查看详情
这里需要注意下,mysql服务的一些配置信息,必填项上图已经框出,其他信息可以保持默认,上图中给出:
- 应用名称: mysql
- 端口:3306
- 密码:需要你指定root用户的密码
- MySQL的docker镜像:这里就需要注意了,默认是:mysql:latest,但是最新的mysql我们一般是用不着的,目前(到2018-12-12日为止),最新的mysql是9.0+了,这个版本的安全验证变化比较大,跟5.0+版本的不一样,如果用最新的版本,很可能部署好后,假设你的客户端版本配合不上,那么你就没法用这个服务了,所以我这里选择了镜像myslq:5.7
- MySQL数据库:因为我要部署小幺鸡,所以我这里直接就指定了一个数据库,xiaoyaoji,这个不是必填项,可以创建好服务好,直接创建数据库
- 最后,需要选择
创建后启动服务
,然后点击启动按钮,Rancher就会为我们创建好相关应用
可见上面,创建的mysql服务,同时为我们提供好了负载均衡服务,省去了我们自己一顿瞎折腾,最后还达不到Rancher的效果(Smile…)
- 连接数据库并导入数据
现在赶紧用客户端工具试试
然后把小幺鸡的数据库内容导入进去。
构建自己的应用的镜像
一开始我是参考如何使用Docker部署一个web项目并打包成镜像文件1,先pull的Centos的镜像,然后下载自己的jdk和tomcat,并上传到容器里面去,根据步骤一步一步来,也确实成功了,一直到第5步,后面步骤我就没法进行下去了,主要是我这里外网不了,无法注册dockerhub账户,其实我这里有私有的docker仓库,可以参考我以前博客,可以搭建一个私有的docker仓库,但是也有问题;在
docker login
的时候,会提示404错误在访问/v2的时候不成功,所以也就不了了之了。参考上面提到的博客,根据操作将应用打包成镜像后,就可以上传到仓库中,然后在随时随地拉取到本地使用,然而,结局并不尽人意,拉取后总是无法启动这个容器,然后又是一番搜索,发现可能跟我使用tomcat的方式有关,可以参考这里:docker纪录篇1-docker构建tomcat镜像,这位仁兄描述的就更加详尽了,从docker介绍,安装,命令使用,以及镜像构建整套流程都做了说明,其中在构建镜像部分就提到过:
docker要求容器中 运行的程序必须是前端运行的(也就是运行后 不能再输入命令) 默认的tomcat8 是使用deamon方式运行(运行完成后 后台运行可以继续输入命令行 ),然后他也提到了解决方法,就是修改catalina.sh文件中有>> "$CATALINA_OUT" 2>&1
中去掉&符号。不过他那里是用的tomcat6,我这里用到的是tomcat8,我看了一下8的内容跟6不一样了,是>> "$CATALINA_OUT" 2>&1 "&"
,到底tomcat8.0是不是这样改,我就不知道了,后面我就没实验了。不过他提到的问题关键就是docker要求容器中 运行的程序必须是==前端运行==的
是很有意义的。上面说的可能比较啰嗦,但是我昨天一天的折腾就是这样的。。。
准备开源镜像
实际上既然Rancher上MySQL的现成服务都有了,为什么tomcat的没有呢?在应用商店上搜索tomcat,发现确实没有,不过没关系,从docker仓库中搜索一下
[root@namenode2 package]# docker search tomcat:8.0 NAME DESCRIPTION STARS OFFICIAL AUTOMATED tomcat Apache Tomcat is an open source implementati… 2215 [OK] tomee Apache TomEE is an all-Apache Java EE certif… 59 [OK] dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base… 50 [OK] webgoat/webgoat-8.0 Latest development version of WebGoat, see h… 41 davidcaste/alpine-tomcat Apache Tomcat 7/8 using Oracle Java 7/8 with… 31 [OK] bitnami/tomcat Bitnami Tomcat Docker Image 27 [OK] cloudesire/tomcat Tomcat server, 6/7/8 14 [OK] [root@namenode2 package]#
很显然,tomcat是提供镜像的,那么把这个镜像pull下来即可
[root@namenode2 package]# docker pull tomcat:8.0 [root@namenode2 package]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE xiaoyaoji 2.1.7 485178ba848b 17 hours ago 474MB centos latest 1e1148e4cc2c 6 days ago 202MB mariadb latest b468922dbbd7 3 weeks ago 366MB mysql latest f991c20cb508 3 weeks ago 486MB rancher/server latest a0b9e05b2a03 2 months ago 1.08GB tomcat 8.0 ef6a7c98d192 3 months ago 356MB
这里pull 8.0版本的。
另外,查找容器,可以用search命令,但是最好,我还是推荐,去dockerhub的官方去查找,因为你能得到更多更详细的信息,比如搜索 tomcat,
点击DETAILS
按钮,你会得到非常有用的信息:
详情中提供了这个镜像是如何使用,以及相关环境变量的配置等等以及其他的信息。这些信息非常重要。好了,现在启动tomcat:8.0的镜像
[root@namenode2 package]# docker run -p 8889:8080 --name tomcat8 -d tomcat:8.0 [root@namenode2 package]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0130e08a30b7 tomcat:8.0 "catalina.sh run" 17 hours ago Up 2 hours 0.0.0.0:8889->8080/tcp tomcat8
访问: http://yourhostip:88889/ 就可以看到tomcat的管理界面了
接下来就是,把小幺鸡的应用放到tomcat的目录下,根据提示,是将xiaoyao-2.1.7.zip这个安装文件解压,放到tomcat安装目录下webapps/ROOT/目录下。
首先将zip解压,需要在自己本地解压,因为tomcat容器中不支持unzip命令,然后再将其打包成tar文件;
再打包之前,需要根据小幺鸡安装提示修改数据库配置文件,将其设置成上面刚刚安装好的mysql服务的访问地址。最终打包成 xiaoyaoji.gz.tar的压缩包。
将这个压缩包上传到容器里面,命令
docker cp xiaoyaoji.gz.tar 0130e08a30b7:/usr/local/tomcat/webapps/ROOT # 上面命令是将本地本目录下的文件xiaoyaoji.gz.tar # 上传到容器:0130e08a30b7(也就是tomcat:8.0)的目录/usr/local/tomcat/webapps/ROOT
上传后,就需要登录到这个容器里面去解压
[root@namenode2 package]# docker exec -it 0130e08a30b7 bash root@0130e08a30b7:/usr/local/tomcat# cd webapps/ROOT/ root@0130e08a30b7:/usr/local/tomcat/webapps/ROOT# ls META-INF WEB-INF asf-logo-wide.svg bg-button.png bg-nav-item.png bg-upper.png index.html robots.txt tomcat-power.gif tomcat.gif tomcat.svg RELEASE-NOTES.txt __MACOSX assets bg-middle.png bg-nav.png favicon.ico index.jsp test tomcat.css tomcat.png xiaoyaoji.gz.tar # 这个文件是刚刚上传的 root@0130e08a30b7:/usr/local/tomcat/webapps/ROOT# tar -zvxf xiaoyaoji.gz.tar
解压完成后,登录:http://yourhostip:8889/ 就会发现你的应用了
打包自己的镜像
上面是通过拉取tomcat的官方镜像,然后部署自己的应用上去,到这里已经可以提供服务了,但是这 并不是我要追求的最终结果,我所要的是用Rancher来集中管理我们的应用。
因此,还需要将这个容器打包成我自己的镜像。
原本打包镜像需要是参考如何使用Docker部署一个web项目并打包成镜像文件中的6,7,8步骤就行,但是我这里login不了,所以,只能再自己本地玩玩docker了,博文docker export import介绍的不错.
- 导出容器
这里我们将tomcat:8.0的容器:0130e08a30b7
docker export 0130e08a30b7 > xiaoyaoji.tar
上面命令会将容器0130e08a30b7 导出到当前目录下,导出名为xiaoyaoji.tar
docker export 命令会把容器的文件系统以tar包的格式导出到标准输出。将容器保存到本地后,我们就可以通过网络等方式将tar包分享给他人。我的Rancher有主机4台,那么我就需要将xiaoyaoji.tar分别发送到4台主机上去
2. 导入容器为镜像cat xiaoyaoji.tar | docker import - xiaoyaoji:2.1.7
上面命令是将导出的tar,转成镜像,镜像名为xiaoyaoji 标签是其版本2.1.7(当前小幺鸡的版本是2.1.7)
3. 查看镜像docker images [root@namenode2 package]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE xiaoyaoji 2.1.7 485178ba848b 18 hours ago 474MB centos latest 1e1148e4cc2c 6 days ago 202MB mariadb latest b468922dbbd7 3 weeks ago 366MB mysql latest f991c20cb508 3 weeks ago 486MB rancher/server latest a0b9e05b2a03 2 months ago 1.08GB tomcat 8.0 ef6a7c98d192 3 months ago 356MB
上面第一条就是我们刚刚导入的xiaoyaoji的镜像了,然后将Rancher的4台主机,分别如上操作。使其每个主机都包涵xiaoyaoji:2.1.7的镜像。
到这里,镜像我们就有了。
使用Rancher发布自己的应用
- 添加应用
名称:tomcat 描述:我的小幺鸡应用服务器
后面的选项全部默认即可,点击创建按钮完成-
添加服务
应用添加完成后,界面会有显示
-
配置xiaoyaoji服务相关内容
如下填写上基础信息以及端口映射信息
这里注意:如图中,创建前总是拉取镜像,被我注销了,因为我的xiaoyaoji的镜像没有发布出去,只是在我本地中有xiaoyaoji:2.1.7的镜像,所以创建时候不应该再拉取镜像的。假设你的应用已经成功发布了,不论是在dockerhub上,还是你自己的私有docker仓库中,你需要勾选此项。
还有一些更重要的配置选项:
确保这些参数配置正确,否则服务总是会启动失败,这些参数那里来的?博文前面提到过,在dockerhub中搜索tomcat镜像的时候,其详细说明中有相关环境变量的描述。
同时,遇到启动失败,需要经常查看日志信息,rancher有日志,docker也有日志。
docker查看日志的命令docker logs 容器id
根据日志提示能帮助你解决大部分问题。
好了,现在可以点击创建按钮了,过一会服务启动成功。
现在就可以访问:http://yourrancherhostip:8089/
如此你的应用就在Rancher中发布完成了。
最后
这篇博文的完成,离不开广大博主的支持,现把所有参考博文列出:
- Rancher系统配置添加镜像仓库
- 如何使用Docker部署一个web项目并打包成镜像文件
- Docker教程:Docker镜像导出及迁移
- docker export import
- Rancher中使用Docker原生命令行
- docker中tomcat镜像的使用
- Docker Tomcat部署war包
这篇博客主要参考docker的常用命令,感觉很全乎了 ↩︎
-
通过Tomcat发布一个web项目
2020-12-25 10:05:59通过Tomcat发布一个web项目 将自己的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,通过默认的端口号接项目名就可以访问了。 网站一般有的结构:(目录) --webapps: ——Tomcat服务器web...开发工具与关键技术:MyEclipse、Tomcat 作者:盘耀海 撰写时间:2020年12月28日
- 将自己的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,通过默认的端口号接项目名就可以访问了。
网站一般有的结构:(目录结构)
--webapps: ——Tomcat服务器web目录 -ROOT -Awebfirst: ——网站的目录名 -WEB-INF -classes:——java程序 -lib: ——web应用所依赖的jar包 -web.xml ——网站配置文件 -Demo.html ——默认的首页 -static —— 一些相应的资源文件 -css -js -img ......
在webapps目录下,创建自己的项目名,并创建WEB-IF目录拷贝web.xml(网站配置文件)。注意头文件不能删除,否则启动失败!!
下面就是我准备的一个简单的项目。
如图效果:
-
handy web framework 是我自己开发的一个web应用开发框架,源码已经发布,现在版本1.0。
2008-10-15 11:05:00最近开发一个项目,用的是struts2+hibernate3+spring2进行开发,视图使用的是freemarker。结果项目是成功完成了,但在运行过程中遇到不少问题,主要还是集中的速度上,查了一些资料也没找到好的解决方案,客户对这...这个框架是在怎样的环境下开发的?
最近开发一个项目,用的是struts2+hibernate3+spring2进行开发,视图使用的是freemarker。
结果项目是成功完成了,但在运行过程中遇到不少问题,主要还是集中的速度上,查了一些资料
也没找到好的解决方案,客户对这个运行速度也颇有微词,后来想干脆自已弄个小框架,开发小项目时用。这样就有了这个handy框架,把整个项目移值到handy之后效果还不错。
现在把这个框架开源,让遇到相同问题的同行有个解决方案,开源项目网址是http://www.handy-framework.cn,
同时还发布了自己操刀的《Handy框架开发指南》以及一个源码快速生成工具和一个成型的cms。
handy简介:
handy开源项目包括一个WEB开发框架与若干个应用。
handy框架是基于java技术,应用于WEB应用程序快速开发的MVC框架,利用freemarker作为模板页面引擎,使用jsp或freemarker或html做为视图,是一个实现了页面及代码完全分离的MVC开发框架,能实现中小型Web应用系统快速开发。 -
VS2010发布Web应用攻略一
2011-11-22 11:31:42我们创建了一个Web应用,好不容易写完了,肯定是要发布到客户那里,或者是自己的服务器上。 下面给出一个简单的教程,如下: 一、vs 2010 publish Web 二、在弹出框中输入必要信息,第一次p... -
在Tomcat中发布自己的web应用(集群形式)
2019-01-19 08:57:59这里介绍的主要是集群形式,当然单机版也是一样的,只不过单机版只需要一个tomcat服务。 1.配置 3 个 tomcat 的 tomcat-users.xml <role rolename="admin-gui"/> <role rolename=... -
将自己的web应用发布到Tomcat
2018-01-21 14:42:00方法一:(用这个方法最好先把ROOT文件夹备份好,不建议使用) 1,打开tomcat 的目录,在webapps 的目录下, 把命名为ROOT 的文件夹删掉, 然后把自己的war 包更名为 ROOT.war,放在webapps目录下 2,重启tomcat ... -
5.JavaWeb_Tomcat_发布一个web网站和原理
2020-12-29 14:55:45发布一个web网站 将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下; 网站应该有的结构 --webapps :Tomcat服务器的web目录 -ROOT -wwjstudy :网站的目录名 - WEB-INF -... -
twitter id生成类_生成一个Twitter Web应用程序
2020-07-01 09:16:25了解如何使用Django,jQuery和python-twitter包装器创建可启用Twitter的Web 2.0样式的应用程序,您可以轻松使用它们并将其插入自己的Django项目。 使用此应用程序,您将能够查看最新的推文,发布更新并显示您的朋友... -
react-git-interview:说明-这是一个Web应用程序,可帮助开发人员准备面试问题。 用户可以在公共页面上搜索...
2021-02-17 07:14:56GIT.Interview is a web-application that helps developers prepare for interview questions. The user can search topic of interest, create an account in our website and post new questions and answers. ... -
golinks:web一个Web应用程序,通过将Web浏览器的默认搜索引擎指向正在运行的实例,您可以创建智能书签,...
2021-02-03 12:30:02golinks是一个Web应用程序,通过将Web浏览器的默认搜索引擎指向正在运行的实例,您可以创建智能书签,命令和别名。 与bunny1或yubnub相似。 安装 资源 $ go get github.com/prologic/golinks OS X自制软件 提供了一... -
如何把hibernate+jndi+tomcat发布自己的web应用
2007-09-26 11:25:00在tomcat_home/common/lib下放入jdbc的驱动程序,额外说一下,如果是使用sql server的话,有至少两个驱动可以选择,一个是微软提供的,另一个是 jtds,比微软的要好很多,推荐使用二.配置文件,tomcat 不同的版本配置... -
VS2012发布Web应用程序
2018-03-20 16:58:00一、右键项目-->...目标位置:自己在本地建立一个文件夹 3.目标URL:可以不填 四、设置:勾选发布前删除所有现有文件 五、发布 转载于:https://www.cnblogs.com/weimingxin/p/8610480.html... -
Docker实战(一)基于docker的web应用和发布
2018-06-06 19:59:20使用Docker部署一个以Tomcat 为服务器的支持HTTPS的web站点。其原理和在普通服务器上部署类似,只需要将自己开发的软件包放到Tomcat 工程目录下即可。不同的是,Tomcat服务器要在容器中启动,相应的工程源码也要导入... -
VS2010发布Web应用攻略一(win 2003 + iis 6)
2011-06-22 11:20:00我们创建了一个Web应用,好不容易写完了,肯定是要发布到客户那里,或者是自己的服务器上。 下面给出一个简单的教程,如下: 一、vs 2010 publish Web 二、在弹出框中输入必要信息,第一次publish的人,要注意选择... -
web项目怎么打包上线_如何打包发布Web Application应用程序
2020-12-22 06:04:34最近做了一个网站,结果发布的时候发现自己建的是Web Application,如何打包发布Website,想必大家都很熟悉,查了点资料,发现都是英文的很多,现在自己整理给大家,希望对大家有帮助。任务一:打开项目文件并且发布... -
3D-Redstone-Simulator:一个Web应用程序,用于在类似于Minecraft的3D环境中模拟红石电路(布尔逻辑)-源码
2021-02-04 08:14:05一个JavaScript实验,用于在类似的3D环境中模拟Minecraft的红石逻辑。 请注意,在开发过程中,上面的链接并不总是将您带到可用的发行版,如果您希望下载最新的并自己运行,则该实验不需要构建,可以直接使用。 发布 ... -
如何打包发布Web Application应用程序
2012-08-28 23:34:00最近做了一个网站,结果发布的时候发现自己建的是Web Application,如何打包发布Website,想必大家都很熟悉,查了点资料,发现都是英文的很多,现在自己整理给大家,希望对大家有帮助。 任务一:打开项目文件并且... -
关于“让我们基于Node.js创建一个Web应用:记事本(二)”
2013-01-18 20:19:00我前面已经说过这是DaliayJS博客发布的一个Node.js的系列教程,是2010年开始陆续发出来的,其中有很多内容或者使用的技术组件API已经过时,我会按照我自己的理解在“关于”的系列中做一些更新,并且谈一下自己的切身... -
Web应用程序测试:Web应用程序测试-源码
2021-02-19 19:53:05在这个项目中,您将为棒球场人员编写一个React应用程序的单元测试和实现代码。 该应用程序可帮助他们输入有关游戏的信息,并在计分板显示屏中显示该信息,以供粉丝查看。 这些要求在下面的“最低可行产品”部分列出... -
docker部署多个web应用_不用虚机不用Docker使用Azure应用服务部署ASP.NET Core程序
2020-11-29 17:37:34一般我们写好了应用程序想要部署发布它,要么发布到物理机,要么发布到虚拟机,要么发布到容器来运行它。...应用服务概述Azure 应用服务是一项基于 HTTP 的服务,用于托管 Web 应用程序、REST API ... -
asp.net web开发框架_Web应用程序开发的前5个Java框架
2020-11-23 07:55:57介绍Java于1996年1月23日发布,并于2020年庆祝其成立24周年。根据TIOBE指数,它一直位居第一... 如果要使用Java开发下一个Web应用程序,则在选择适当的Java Web框架时需要做出正确的选择。您是否想知道如何为项目选... -
使用Git+Shell自动化部署发布springboot WEB应用
2018-04-28 12:00:14这样带来一个问题就是,不好统一管理,自己修改代码后,还需要进行一系列繁杂的手动操作,效率是很低下的。网上有很多框架的时候,因为是个人使用,所以嫌重,于是自己搞了一套使用git + shell自... -
Web应用程序开发的前5个Java框架
2020-04-10 20:29:26介绍 Java于1996年1月23日发布,并于2020年庆祝其成立24周年。根据TIOBE指数,它一直位居第一。...如果要使用Java开发下一个Web应用程序,则在选择适当的Java Web框架时需要做出正确的选择。您是否想知道如何为项目... -
weblogic上配置数据源连接池发布web应用
2010-09-07 15:14:58做了一个测试,自己开发了一个简单的 web,发布到weblogic上面,使用连接池方式。做个记录,区别于tomcat。 第一步,配置连接池 下一步,配置数据源 3JAVA code DataSource ds = null; ... -
从基于Web的应用到原生应用的迁移看Facebook的发布流程
2014-01-05 06:04:00来自Facebook的Chaitanya Mishra在上月的Velocity ...为了使分布开发模型能够正常工作,由一个核心团队负责回归测试并专注于整体应用的优化而不是某个特性的优化。\因为对于用户来说,升级到应用的新版本(包括修... -
使用IIS服务搭建一个本地的局域网服务器-共享自己发布的网站
2018-09-18 11:49:57应用场景:做项目的时候,有的时候产品经理是有源码的,有的是没有的,有的是懂技术的,有的是不懂技术的,不管什么情况吧,一般情况下的产品经理是不直接接触代码的,除非他是项目的技术总监兼产品经理,那么一个... -
用域名在自己机子上部署web应用,可通过外网访问
2011-06-12 13:35:00介绍一简单的web应用发布。按下面截图的操作:(点击画红圈的)要有路由器,打开路由, 申请个域名, 设置转发规则启用 转发规则 注意!!!(启用后,ip对应的机子,防火墙不起作用,不安全!!) 下载一花生壳...