Web服务器+Web服务器与后端程序交互的组件(这个可以用现成的,我用的是nginx+FCGI)
后端程序
后端核心就是一个类似调用系统给的类似execl的API执行一下对应编译工具,用这个API时还得精心处理一下管道,把输出内容导出来显示回网页。
但是因为这类程序和OJ一样,是网络上的公共服务而且居然还允许用户上传代码编译执行,所以问题主要集中在安全处理上,而且安全问题的处理高度依赖操作系统。
以Linux为例,安全方面包括但不仅包括以下内容:
依赖环境构建、沙盒
运行身份,包括GID、UID
资源限制,包括socket、文件操作、核心转储大小、文件数、子进程数等等
syscall限制
执行时间限制,包括运行时间和CPU时间
文件系统压力
Windows下是另一堆问题要解决,比Linux复杂得多(也许是我不太会用Windows)。
我认识一人,自己实现了一个类似Haskell的东西,有和Go Playground差不多的在线运行网页,我问他怎么那么快把那么多东西都搞完了,他说,“整个语言就是用JS实现的,所以有浏览器就能运行,不需要后端”,这也是一种思路。
天互数据
方法/步骤
打开Myeclipse编辑器,在已经完成的web项目上面点击右键,选择export,然后选择导出成war包,将导出的war包放在桌面或者其他文件夹。
这里我们使用putty连接到远程的linux服务器上,双击运行putty软件,输入linux服务器的ip地址,点击连接,输入账号密码后进入到linux服务器中
在ubuntu服务器中安装java环境,tomcat,和mysql等必须的软件。可以通过apt-get install 来进行安装
通过winscp软件,把第一步导出来的项目的war包传输到linux服务器上自己设定的目录下
5
把项目的war包通过cp或者mv命令移动到tomcat目录下的webapps目录的下面
6
在linux服务器上切换到tomcat安装目录下的bin目录下,通过./startup.sh命令启动tomcat服务器,这样就能通过ip:8080/项目名 来访问目标网站了。
首先确定你用的是标准的c/c++ ,没有设计VC中的内容(例如MFC库函数,windows API等)如果文件很少,你 用gcc hello.c -o hello 这类的语句就可以。
如果文件比较多,还是写一个makefile文件,批量解决。
希望能帮到你。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)