php运行shell
‘壹’ php执行shell命令的问题
在Windows平台下安装PHP后,在使用PHP的exec、shell_exec等函数时,经常会遇到报错:unable to fork...,这实际上是因为PHP对cmd.exe没有足够的权限引起的。
解决方法:为C:\Windows\System32\cmd.exe(系统不是安装在C盘请相应更改)添加IUSR_ComputerName (ComputerName是你的计算机名称)用户的读取、运行权限,因为exec和shell_exec这两个函数实际上是调用了cmd.exe来执行其它的程序。
‘贰’ 如何将PHP作为Shell脚本语言使用
我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短……)。但是只有很少数的人意识到PHP也可以很好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并没有Perl或者Bash那么强大,但是他却有着很好的优势,特别是对于我这种熟悉PHP但是不怎么熟悉Perl的人。
要使用PHP作为Shell脚本语言,你必须将PHP作为二进制的CGI编译,而不是Apache模式;编译成为二进制CGI模式运行的PHP有一些安全性的问题,关于解决的方法可以参见PHP手册(http://www.php.net)。
一开始你可能会对于编写Shell脚本感到不适应,但是会慢慢好起来的:将PHP作为一般的动态网页编写语言和作为Shell脚本语言的唯一不同就在于一个Shell脚本需要在第一行生命解释本脚本的程序路径:
#!/usr/local/bin/php -q
我们在PHP执行文件后面加入了参数“-1”,这样子PHP就不会输出HTTP Header(如果仍需要作为Web的动态网页,那么你需要自己使用header函数输出HTTP Header)。当然,在Shell脚本的里面你还是需要使用PHP的开始和结束标记:
现在让我们看一个例子,以便于更好的了解用PHP作为Shell脚本语言的使用:
#!/usr/local/bin/php -q
print("Hello, world!\n");
?>
上面这个程序会简单的输出“Hello, world!”到显示器上。
一、传递Shell脚本运行参数给PHP:
作为一个Shell脚本,经常会在运行程序时候加入一些参数,PHP作为Shell脚本时有一个内嵌的数组“$argv”,使用“$argv”数组可以很方便的读取Shell脚本运行时候的参数(“$argv[1]”对应的是第一个参数,“$argv[2]”对应的是第二个参数,依此类推)。比如下面这个程序:
#!/usr/local/bin/php -q
$first_name = $argv[1];
$last_name = $argv[2];
printf("Hello, %s %s! How are you today?\n", $first_name, $last_name);
?> 具体详细的你可以向我一样在后盾人多看看就明白了,希望能帮到你,努力(๑><๑)
‘叁’ 请教知道的老师,php执行这个shell_exec安全吗
安全不安全取决于 ffmpeg,如果它带毒或木马,那就不安全,毕竟你调用它把控制权交给了它。
‘肆’ 如何让php执行shell
php给我们提供了system(),exec(),passthru()这三个函数来调用外部的命令.
虽然这三个命令都能执行linux系统的shell命令,但是其实他们是有区别的:
system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。
相同点:都可以获得命令执行的状态码
例子:system("/usr/local/bin/webalizer/webalizer");
‘伍’ 我想用php执行shell语句:sudo curl --request POST --data-
PHP中有这种函数可以执行shell的函数,如system(), exec(), shell_exec()等等,给你个链接,你可以自己去看 http://php.net/manual/zh/function.system.php
至于curl , http://php.net/manual/zh/book.curl.php
‘陆’ 如何通过php页面执行shell脚本
检查一下,shell脚本的执行权限。
修改一下可执行权限测试看看:
sudo chmod a+x filename.sh
‘柒’ php执行shell脚本,为什么执行不了
直接执行shell脚本没有权限问题,因为一般你也是root登陆的。但是使用php执行就会存在。这里你要先确定使用shell脚本操作的文件或者文件夹是否开启777权限
‘捌’ php如何执行shell脚本
这些shell命令一般服务商是不允许运行的,要不然服务器很快就让攻击掉了
‘玖’ 如何使用PHP调用SHELL命令调用后并且执行SHELL命令
解除sysyem() passthru() exec()等函数禁用。
执行passthru('ps -ef');可以得到这条命令的输出内容。正则得到所需内容,然后再调用这些函数执行操作。具体用法翻翻手册。
‘拾’ 想让PHP执行shell脚本,如何安装apache和PHP
一、安装PHP
-------------------------------------------------------
第1步:下载
下载PHP安装程序,并解压缩。(下载页面为http://www.php.net/ downloads.php,下载地址为http://www.php.net/get/php-5.2.1-Win32.zip/from/a/mirror)当前最新版本是php-5.2.1。
第2步:安装
把下载下来的PHP安装包解压到你的C盘根目录(这里选择C根目录盘是为了以后修改调试方便用,你也可以选择不同的目录),解压后应该能得到一个类似于"php-5.1.2-Win32"的目录,把目录名称改成"PHP"。
第3步:添加php.ini到系统目录
打开刚才解压后生成的PHP目录,找到PHP配置文件“php.ini-dist”,把它改名为“php.ini”,然后复制到系统目录中。如果操作系统安装在C盘,那么系统目录在 Windows XP下就是"C:\windows",在Windows 2000下是"C:\winnt")。
第4步:设置环境变量
设置以下环境变量:PHP_HOME=C:\PHP;C:\PHP\ext,保存退出后。
第5步:修改PHP配置文件
修改php.ini中的register_globals=on,这样在取得请求表单时可以直接使用表单名称$name,而不用使用$_REQUEST["name"]。
二、配置Apache支持PHP
-------------------------------------------------------
第1步:打开Apache 2 的配置文件
打开Apache 2的配置文件“http.conf”,可以通过“开始->程序->Apache->configure Apache server->edit the Apache httpd.conf configuration file”打开该配置文件。默认情况下,该文件存放在C:\Program Files\Apache Group\Apache2\conf\httpd.conf,我们也可以通过“我的电脑”直接打开该文件进行编辑。
第2步:配置Apache加载PHP模块
在“http.conf”文件中找到LoadMole字样的信息,然后在LoadMole段信息的最下方添加一行信息:
LoadMole php5_mole C:/PHP/php5apache2_2.dll
这里要解释一下,“php5_mole”是模块的名称,后面跟的路径则随PHP安装目录而变,这三个字串之间是用空格分隔的。
第3步:使Apache解析PHP文件
接下来再查找addtype字样的信息,在addtype信息段的最下方添加如下几行信息:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php5
这时就可以在Apache下的htdocs目录中创建一个php测试文件:
<?
phpinfo();
?>
三、配置PHP支持Mysql
-------------------------------------------------------
第1步:设置 php.ini中的extension_dir = "C:/php/ext"。
第2步:将“C:\PHP\libmysql.dll”复制到“C:\WINDOWS\system32”。
第3步:将“C:\PHP\ext\php_mysql.dll”复制到“C:\WINDOWS\system32”。
第4步:修改C:\WINDOWS\下的php.ini文件,去掉extension=php_mysql.dll之前的“;”。
这样在PHP的程序里就可以使用MySQL扩展库的函数了,即PHP+MySQL的应用程序才能够正常运行。