十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这个不难,我说下原理,具体你自己实现。浏览器向web服务器提交要执行的linux命令,服务端调用os.system等系统交互的方法,去执行所提交的命令,然后获取执行后标准输出、标准错误,将这些标准输出、错误以response返回给浏览器。
目前创新互联建站已为上千的企业提供了网站建设、域名、网络空间、网站运营、企业网站设计、永新网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
2019-03-15 遇到的一点小问题
公司要给设备增加web管理页面,页面只有关机和重启功能。我一看就一个web加两个按钮,就接下来了,没想到还挺复杂的。
设备使用的 Arch Linux ,小型http服务器选用的 mini_httpd 。
环境搭建好后,就是html和Linux交互。搜索了下,看到这篇 通过CGI实现在Web页面上执行shell命令 ,试了一下,能正常运行。
对 .cgi文件 不熟的可以参考这几篇文章,博主分了好几篇介绍,就是有点懒,没弄个目录,这里贴一下: 1-编写运行第一个脚本 、 2-Shell变量 、 3-Shell特殊变量 、 4-Shell数组 、 5-shell替换 、 6-与用户交互 、 7-Shell运算符 、 8-shell注释 、 9-shell注释 、 10-printf 、 11-if语句 、 12-case语句 、 13-for语句 、 14-while语句 、 15-until循环 、 16-shell函数 、 17-shell输入输出重定向 、 18-shell文件引用包含 。
编写shell命令,在js里执行就可以了。
测试中遇到的问题就是权限问题,试了 使用setuid更改脚本文件权限 , 使用sudo命令执行 ,发现在 Arch Linux 上都挺麻烦的,先临时把 mini_httpd 的用户权限改高点,下次再试试别的方法。
今天在测试cgi文件时遇到 500 Internal Error 错误 Something unexpected went wrong running a CGI program. 。
第一步,输入命令:netstat -tlnp
命令解释:列出系统里面监听网络的TCP连接和相应的进程PID。
参数说明:
-t:表示列出TCP连接
-l:表示列出正在网络监听的服务
-n:表示以端口号来显示
-p:表示列出进程PID
第二步,看看Local Address这一列下面有没有端口号是80的那一行,如果有的话说明Web服务是开启的。如果想找特定的Web服务程序(比如Apache),还可以看看Program name这一列下面有没有这个Web程序,如果有也可以断定Web服务是开启的。
1.写服务文件web.service:如nginx.service、redis.service、supervisord.service
2.文件保存在目录下:以754的权限。目录路径:/usr/lib/systemd/system
3.设置开机自启动(任意目录下执行)。如果执行启动命令报错,则执行:systemctl daemon-reload
4.启动
5.停止/重启
6.取消开机启动