关于“php执行shell文件”的问题,小编就整理了【3】个相关介绍“php执行shell文件”的解答:
php中shell_exec不能运行?其实,你这里真是的需求,只是希望在Web这边获取一种方式,来执行一个长达数小时的“异步”任务。
就PHP而言,可以用2种方式来做:
(1)在PHP里使用shell_exec的函数,以shell的方式,启动一个独立的PHP脚本执行。
这种方式,其实相当于在Web服务器处理过程中,独立起了一个shell进程处理你的任务。
这里,需要特别注意的是shell_exec的服务器安全,注意校验参数,小心避免被带入shell命令中。
这个是比较容易实现的方式。
(2)使用PHP实现一个Server,监听一个端口,为Web端提供服务。这里的实现方式有很多,通常要配合扩展,例如原生的pthread(多线程),开源扩展swoole等等。
直接在web程序里使用多线程,是不恰当的,web请求通常有时间限制,例如timeout默认是30秒。你如何保证,在线程任务执行完之前,它的父进程仍然在工作?
已安装的脚本怎么运行?运行方法:
js属于浏览器脚本,需要在浏览器中运行,所以运行js脚本,需要在html页或php页或其他的一些页面。比如你编写了一个名为my.js的脚本文件,就需要在页面的
标签中这样写,,my.js需要和页面放在同一目录中。
已安装的脚本运行方法如下
脚本的四种运行方法
1.切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本代码
2.以绝对路径的方式去执行bash shell脚本:
3.直接使用bash 或sh 来执行bash shell脚本:可以不必事先设定shell的执行权限
4.在当前的shell环境中执行bash shell脚本
如何将shell脚本变为可执行文件?方法一、可以使用gzexe命令直接将shell脚本变成可执行文件,命令为gzexe 后面接要处理的shell文件名。
加密后,用file查看文件类型已经为二进制文件了,执行都可以正常执行的。
方法二、可以使用shc命令将shell脚本变为可执行文件。
1、安装shc
2、加密脚本文件CFLAGS=-static shc -r -f t.sh
CFLAGS指明为static静态编译,因为默认生成的是动态库,在不同的系统可能运行不了。-r也是为了生成的脚本二进制可执行程序能在其它的电脑上运行,-f参数用于指明要编译的脚本文件。
3、正常执行加密后的脚本文件。
4、shc常用参数说明
-e date (指定过期日期)
-m message (指定过期提示的信息)
-f script_name(指定要编译的shell的路径及文件名)
-r Relax security. (可以在相同操作系统的不同系统中执行)
-v Verbose compilation(编译的详细情况)
到此,以上就是小编对于“php执行shell文件”的问题就介绍到这了,希望介绍关于“php执行shell文件”的【3】点解答对大家有用。