广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php exec无法执行怎么办
  • 531
分享到

php exec无法执行怎么办

execphp 2022-11-22 10:11:59 531人浏览 独家记忆
摘要

本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php exec无法执行怎么办?PHP exec执行系统指令失败原因分析问题背景:由于项目需求,需要将html页面生成图片,使用phantomjs(点击了解)工具对页

教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。

php exec无法执行怎么办?

PHP exec执行系统指令失败原因分析

问题背景:

由于项目需求,需要将html页面生成图片,使用phantomjs(点击了解)工具对页面进行截图,在cmd窗口下运行没有任何问题。但在php中exec运行失败,提示phantomjs不是内部指令。

问题解决:

在百度中找到各种解决方案:

方案1:

1、修改php.ini

找到php配置文件php.ini,如果是用星外php自动安装程序配置php环境,这个文件就在C:\WINDOWS\这个目录里。

在文件里搜索“disable_functions”,找到它后把“exec”、“shell_exec”去掉,然后保存文件。

ab0a7d5da4ea9b7ddd2a9bbb467871f.jpg

2、修改cmd.exe文件属性

进入C:\WINDOWS\system32,找到cmd.exe这个文件,右键->属性,在“安全”设置里添加Internet 来宾账户,也就是IUSR_******那个账户,然后赋予“读取与运行”、“读取”的权限。

方案2:

有说是权限问题。解决方案:https://www.cnblogs.com/love-snow/articles/7560164.html

方案3:

php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。

  在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。比如前二天笔者在批量处理.rar文件时exec就帮我了大忙了。

  今天整理一下常用的调用系统函数发出来和大家分享经验。

  注意:要想使用这二个函数php.ini中的安全模式必须关闭,要不然为了安全起见php是不让调用系统命令的。

  先看一下php手册对这二个函数的解释:

  exec --- 执行外部程式

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

  说明 :

  exec( )执行给予的命令command,不过它并不会输出任何东西,它简单的从命令的结果中传回最后一行,如果你需要去执行一个命令,并且从命令去取得所有资料时,可以使用passthru( )这个函数。

  如果有给予参数array,则指定的数组将会被命令所输出的每一行填满,注意 : 如果数组先前已经包含了一些元素的话,exec( )将会把它附加在数组的后面,如果你不想要此函数附加元素的话,你可以在传递此数组给exec( )之前呼叫unset( )。

  如果有给予参数array和return_var,则传回执行的状态命令将会写到这个变量。

  注意 : 如果你允许来自使用者输入的资料,可以传递到此函数,那么你应该使用escapeshellcmd( )来确定此使用者无法哄骗(trick)系统来执行武断的(arbitrary)命令。

  注意 : 如果你使用此函数来启动一个程式,而且希望在背景里(background)执行的时候离开它,你必须确定此程式的输出是转向(redirected)到一个文件或是一些输出的资料流,否则PHP将会悬挂(hang)直到程式执行结束。

  system --- 执行外部程式并且显示输出

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

  说明 :

  system( )执行给予的命令command,并且输出结果。如果有给予参数return_var,则执行命令的状态码将会写到这个变量。

  注意 : 如果你允许来自使用者输入的资料,可以传递到此函数,那么你应该使用escapeshellcmd( )来确定此使用者无法哄骗(trick)系统来执行武断的(arbitrary)命令。

  注意 : 如果你使用此函数来启动一个程式,而且希望在背景里(background)执行的时候离开它,你必须确定此程式的输出是转向(redirected)到一个文件或是一些输出的资料流,否则PHP将会悬挂(hang)直到程式执行结束。

  如果PHP是运作成伺服器模组,在输出每一行后,system( )会试着自动地清除WEB伺服器的输出缓冲。

  成功则传回命令的最后一行,失败则传回false。

  如果你需要去执行一个命令,并且从命令去取得所有资料时,可以使用passthru( )这个函数。

  这二个都是用来调用系统shell命令,

  不同点:

  exec可以把执行的结果全部返回到$output函数里(数组),$status是执行的状态 0为成功 1为失败

  systerm不需要提供$output函数,他是直接把结果返回出来,同样$return_var是执行的状态码 0为成功 1为失败

  exec示例:

以下为引用的内容:

<?php  
$a = exec("dir",$out,$status);  
print_r($a);  
print_r($out);  
print_r($status);  
?>

  system示例:

以下为引用的内容:

<?php  
$a = system("dir",$out);  
print_r($a);  
print_r($out);  
?>

总结

以上三个解决方案都是从百度搜索到的。

第一个解决方案我查看了配置,不存在这种情况,pass。

第二个解决方案由于需要改服务器权限,情况不允许,没试。

第三个解决方案参考了一下,修改了配置中的安全模式,safe_mode=On;然后问题迎刃而解。

OK,以上是我解决问题的过程。希望可以帮到广大像我一样的小白。

以上就是php exec无法执行怎么办的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: php exec无法执行怎么办

本文链接: https://www.lsjlt.com/news/173378.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php exec无法执行怎么办
    本教程操作环境:Windows7系统、PHP8.1版、Dell G3电脑。php exec无法执行怎么办?PHP exec执行系统指令失败原因分析问题背景:由于项目需求,需要将html页面生成图片,使用phantomjs(点击了解)工具对页...
    99+
    2022-11-22
    exec php
  • php exec无法执行如何解决
    这篇文章主要介绍“php exec无法执行如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php exec无法执行如何解决”文章能帮助大家解决问题。php exec无法执行的解决办法:1、找到...
    99+
    2023-07-04
  • xampp无法执行php怎么办
    对于使用 XAMPP 进行 PHP 开发或调试的用户来说,经常会遇到一些问题,比如在安装和配置过程中出现的问题,或者在使用过程中出现的运行问题。其中,最常见的一个问题就是 XAMPP 无法执行 PHP。这个问题可能涉及到各种因素,今天我们将...
    99+
    2023-05-14
    xampp php
  • php7下命令行无法执行怎么办
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。php7下无法执行cmd命令行的原因是我们没有关闭php.ini配置文件中的安全模式,只要将安全模式关闭就可以了。接下来我们一起来看看具体步骤:在php.in...
    99+
    2017-12-23
    php 7 命令行
  • exec php执行不了的解决方法
    本文将为大家详细介绍“exec php执行不了的解决方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“exec php执行不了的解决方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一...
    99+
    2023-06-06
  • django执行migrate无法生成表怎么办
    这篇文章主要讲解了“django执行migrate无法生成表怎么办”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“django执行migrate无法生成表怎么办”吧!django每修改一次模板...
    99+
    2023-06-02
  • 执行php exec system shell_exec没结果怎么解决
    本篇内容主要讲解“执行php exec system shell_exec没结果怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“执行php exec system shell_exec没结...
    99+
    2023-07-04
  • 怎么解决php exec中文不执行问题
    小编给大家分享一下怎么解决php exec中文不执行问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php exec中文不执行的解决办法:1、通过“$set_c...
    99+
    2023-06-25
  • js无法运行php怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。js无法运行php怎么办?问题描述:js里面放php不执行function gowechat (){ window.location.href="<p...
    99+
    2022-11-08
  • vcruntime140.dll,无法继续执行代码怎么办
    vcruntime140.dll,无法继续执行代码解决方法:1、访问Microsoft官方网站,并搜索"Microsoft Visual C++ Redistributable";2、找到适用于你的操作系统的版本,并下载...
    99+
    2023-07-31
  • php执行exec权限不足的解决方法
    这篇文章给大家分享的是有关php执行exec权限不足的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。...
    99+
    2023-06-15
  • PHP无法异步执行怎么解决
    本文小编为大家详细介绍“PHP无法异步执行怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP无法异步执行怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是异步执行?在传统的同步编程中,代码在...
    99+
    2023-07-05
  • php无法执行mysql命令行怎么解决
    这篇文章主要讲解了“php无法执行mysql命令行怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php无法执行mysql命令行怎么解决”吧!如果你在 PHP 程序里面尝试运行 MyS...
    99+
    2023-07-05
  • php curl exec 不生效怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php curl exec 不生效怎么办?本地php环境不支持curl_exec的解决办法在测试安装某源码时,安装程序检测到本地php环境不支持curl_exec我果...
    99+
    2022-10-19
  • php exec 结果乱码怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php exec 结果乱码怎么办?php 填坑exec或shell_exec无法返回中文乱码情况原本想执行:exec("python cmd.py"...
    99+
    2022-10-21
  • php mb_substr 不执行怎么办
    php mb_substr不执行的解决办法:1、找到并打开php.ini配置文件;2、找到“extension=mbstring”项,然后将该项前面的分号删除掉;3、保存php.ini文件的修改即可。本教程操作环境:Windows10系统、...
    99+
    2023-05-14
    mb_substr php
  • PHP execxargs不执行怎么办
    在 PHP 编程中,PHPexecxargs 函数是经常使用的。这个函数的主要作用是用来调用外部程序,也就是在 PHP 中执行其他语言或系统命令。然而,有时候我们会发现 PHPexecxargs 函数不执行,导致程序运行出现问题。这时候该怎...
    99+
    2023-05-14
  • php exec 获取不到值怎么办
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php exec 获取不到值怎么办?PHP的exec()函数无返回值排查方法:在安全imagemagic时 需要用到 exec很多服务器上安装失败exec()执行外部命...
    99+
    2016-10-15
    php exec
  • php怎么无法执行mysql命令行?原因分析
    如果你在 PHP 程序里面尝试运行 MySQL 命令行却遭遇失败,那么你可能会遇到以下报错信息:sh: mysql: command not found或者是:sh: 1: mysql: not found如果你遇到了这样的问题,那么很有可...
    99+
    2023-05-14
    php
  • php无法运行外部命令怎么办
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php无法运行外部命令怎么办?问题描述:我用准备用PHP来运行adb.exe来连接android手机,并与之通讯,但是使用exec("adb connect...
    99+
    2022-10-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作