用服务器做在线编译器

用服务器做在线编译器,第1张

如果是针对传统使用方法的编程语言实现一个的话涉及的内容很杂,包括:

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文件,批量解决。

希望能帮到你。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/157944.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-22
下一篇2023-03-22

发表评论

登录后才能评论

评论列表(0条)

    保存