导航:首页 > 程序命令 > php执行shell命令

php执行shell命令

发布时间:2022-07-05 17:25:16

php执行shell脚本,为什么执行不了

直接执行shell脚本没有权限问题,因为一般你也是root登陆的。但是使用php执行就会存在。这里你要先确定使用shell脚本操作的文件或者文件夹是否开启777权限

⑵ PHP怎么调用linux命令终端

首先先要给大家介绍PHP执行linux系统命令的几个基本函数。

system函数

说明:执行外部程序并显示输出资料。

语法:string system(string command, int [return_var]);

返回值: 字符串

详细介绍:

本函数就像是 C 语中的函数 system(),用来执行指令,并输出结果。若是 return_var 参数存在,则执行 command 之后的状态会填入 return_var 中。同样值得注意的是若需要处理用户输入的资料,而又要防止用户耍花招破解系统,则可以使用 EscapeShellCmd()。若 PHP 以模块式的执行,本函数会在每一行输出后自动更新 Web 服务器的输出缓冲暂存区。若需要完整的返回字符串,且不想经过不必要的其它中间的输出界面,可以使用 PassThru()。

实例代码:

< ?php

$last_line = system('ls', $retval);

echo 'Last line of the output: ' . $last_line;

echo '<hr/>Return value: ' . $retval;

?>

exec函数

说明:执行外部程序。

语法:string exec(string command, string [array], int [return_var]);

返回值: 字符串

详细介绍:

本函数执行输入 command 的外部程序或外部指令。它的返回字符串只是外部程序执行后返回的最后一行;若需要完整的返回字符串,可以使用 PassThru() 这个函数。

要是参数 array 存在,command 会将 array 加到参数中执行,若不欲 array 被处理,可以在执行 exec() 之前呼叫 unset()。若是 return_var 跟 array 二个参数都存在,则执行 command 之后的状态会填入 return_var 中。

值得注意的是若需要处理使用者输入的资料,而又要防止使用者耍花招破解系统,则可以使用 EscapeShellCmd()。

实例代码:

< ?php

echo exec('whoami');

?>

popen函数

说明:打开文件。

语法:int popen(string command, string mode);

返回值: 整数

详细介绍:

本函数执行指令开档,而该文件是用管道方式处理的文件。用本函数打开的文件只能是单向的 (只能读或只能写),而且一定要用 pclose() 关闭。在文件操作上可使用 fgets()、fgetss() 与 fputs()。若是开档发生错误,返回 false 值。

实例代码:

< ?

$fp = popen( "/bin/ls", "r" );

?>

通过上述函数,PHP可以执行linux系统的shell命令。

⑶ 如何通过php页面执行shell脚本

如果php允许那么大的权限,可以用 exec 函数, 不过这样做很危险。
换个思考方式, 可以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语句: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命令一般服务商是不允许运行的,要不然服务器很快就让攻击掉了

⑺ 如何将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脚本

这个问题个人觉得似乎和代码的运行环境有关。
因为您的环境是freebsd。他是分用户权限的。
你在终端php执行shell脚本时,用的是相应用户的配置环境和读取执行权限。若在网页上,那么默认是apache用户来执行。那么若有些命令的权限是744或有些目录是rwx------,那么可能就会有问题。
最好,能把脚本贴出来,好供大家分析。

⑼ 如何使用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的应用程序才能够正常运行。

阅读全文

与php执行shell命令相关的资料

热点内容
php论坛版块在哪个文件夹 浏览:441
暗黑的服务器为什么维护 浏览:623
android内存溢出的原因 浏览:17
标志307的压缩比是多少 浏览:636
服务器启动为什么叫三声 浏览:997
追风筝的人英文pdf 浏览:939
解压小熊手机壳 浏览:346
成都市区建成面积算法 浏览:660
智能家居单片机 浏览:97
买男装用什么app好 浏览:855
文件夹合并了怎么拆开 浏览:260
波段副图源码无未来函数 浏览:89
livecn服务器地址 浏览:259
程序员这个工作真的很吃香吗 浏览:847
程序员和数学分析师待遇 浏览:681
压缩气弹簧怎么拆 浏览:325
华为公有云服务器添加虚拟ip 浏览:211
程序员和运营哪个累 浏览:27
抖音安卓信息提示音怎么设置 浏览:456
光速虚拟机的共享文件夹 浏览:251