这些shell命令一般服务商是不允许运行的,要不然服务器很快就让攻击掉了
我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短......).但是只有很少数的人意识到PHP也可以很好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并没有Perl或者Bash那么强大,但是他却有着很好的优势,特别是对于我这种熟悉PHP但是不怎么熟悉Perl的人.
要使用PHP作为Shell脚本语言,你必须将PHP作为二进制的CGI编译,而不是Apache模式;编译成为二进制CGI模式运行的PHP有一些安全性的问题,关于解决的方法可以参见PHP手册().
一开始你可能会对于编写Shell脚本感到不适应,但是会慢慢好起来的:将PHP作为一般的动态网页编写语言和作为Shell脚本语言的唯一不同就在于一个Shell脚本需要在第一行生命解释本脚本的程序路径:
#!/usr/local/bin/php -q
我们在PHP执行文件后面加入了参数"-1",这样子PHP就不会输出HTTP Header(如果仍需要作为Web的动态网页,那么你需要自己使用header函数输出HTTP Header).当然,在Shell脚本的里面你还是需要使用PHP的开始和结束标记:
现在让我们看一个例子,以便于更好的了解用PHP作为Shell脚本语言的使用:
print("Hello, world!\n");
上面这个程序会简单的输出"Hello, world!"到显示器上.
第一段:传递Shell脚本运行参数给PHP:
$first_name = $argv[1];
printf("Hello, %s %s! How are you today?\n", $first_name, $last_name);
具体详细的你可以向我一样在后盾人多看看就明白了,希望能帮到你,努力(?)
第一段:安装PHP
-------------------------------------------------------
设置以下环境变量:PHP_HOME=C:\PHP;C:\PHP\ext,保存退出后.
修改php.ini中的register_globals=on,这样在取得请求表单时可以直接使用表单名称$name,而不用使用$_REQUEST["name"].
第二段:配置Apache支持PHP
在"http.conf"文件中找到LoadModule字样的信息,然后在LoadModule段信息的最下方添加一行信息:
此时此刻呢再查找addtype字样的信息,在addtype信息段的最下方添加如下几行信息:
AddType application/x-httpd-php .php
这时就可以在Apache下的htdocs目录中创建一个php测试文件:
phpinfo();
第三段:配置PHP支持MySQL
第1步:设置 php.ini中的extension_dir = "C:/php/ext".
这样在PHP的程序里就可以使用MySQL扩展库的函数了,即PHP◆MySQL的应用程序才能够正常运行.
exec里面,a.bash前面有sh这个bin文件么,就把bin文件路劲加在a.sh前.try下
php给我们提供了system(),exec(),passthru()这三个函数来调用外部的命令.
虽然这三个命令都能执行linux系统的shell命令,但是其实他们是有区别的:
system() 输出并返回最后一行shell结果.
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面.
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上.
相同点:都可以获得命令执行的状态码
例子:system("/usr/local/bin/webalizer/webalizer");
以上就是土嘎嘎小编为大家整理的从php脚本执行shell脚本相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!