php shell_exec 环境变量_php shell_exec exec - CSDN
精华内容
参与话题
  • windows+PHP+shell_exec()无法执行的原因

    万次阅读 2018-01-23 11:33:34
    今天使用shell_exec()命令执行wkhtmltopdf.exe 生成pdf文件时,总是无法生成PDF文件,使用var_dump()打印返回值,结果是null。可是检查代码并没有什么问题啊?执行程序的目录是 D:\Program Files\wkhtmltopdf\bin\...

    今天使用shell_exec()命令执行wkhtmltopdf.exe 生成pdf文件时,总是无法生成PDF文件,使用var_dump()打印返回值,结果是null。可是检查代码并没有什么问题啊?执行程序的目录是
    D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe
    好吧,接下来找找原因。

    1、通过dos执行wkhtmltopdf程序

    首先测试通过dos命令行执行wkhtmltopdf程序:
    这里写图片描述
    执行成功,没有问题。

    查看pdf文件是否成功生成:
    这里写图片描述
    文件同样成功生成。

    这说明程序执行没有问题。

    2、PHP安全模式

    网上说PHP安全模式会影响到shell_php()函数的执行。我查了一下,发现php.ini中安全模式只有

    [SQL]
    ; http://php.net/sql.safe-mode
    sql.safe_mode = Off

    没有其他的安全模式。而且安全模式还会影响exec()函数的使用,我之前曾经使用过exec()函数,所以不是安全模式的问题。

    3、php.ini中disable_functions参数

    百度时,有人说是php.ini配置文件中disable_funcitons=shell_exec()。禁用了shell_exec()函数。好吧,php.ini默认disable_funcitons= (null)。看来不是这里的原因呢。

    4、程序执行目录问题

    之后,我有检查了一下shell_exec()的执行代码,发现执行目录
    D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe有问题。
    在第二个目录Program Files中有空格存在,之前考虑到不能含有中文的问题,所以安装wkhtmltopdf时,走的是D盘下的默认目录(本来是C盘,我改为D盘了)。既然不能走中文目录,是不是含有空格的目录也是不行的呢?于是我就把D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe改为D:\wkhtmltopdf\bin\wkhtmltopdf.exe。然后修改了shell_exec()执行代码的执行目录。
    最后执行成功,生成了pdf文件。

    5、环境变量问题

    此外把文件添加到环境变量中,可以不用带目录执行wkhtmltopdf程序。只不过,因为是测试wkhtmltopdf是否能执行含有html+css代码的文件生成带有css格式PDF文件,所以没有添加到环境变量中,希望有小伙伴使用wkhtmltopdf时,可以安装wkhtmltopdf到D:\Program Files下,然后添加到环境变量内,用php的shell_exec()使用一下,看看能否成功。

    展开全文
  • windows php 执行execshell_exec 无效

    千次阅读 2019-05-20 13:32:43
    目前在做一个网页导出成pdf的工作,使用的工具由 tcPDF、dompdf、html2fpdf 等 处于各种限制,最后决定使用wkhtmltopdf 貌似。只要网页去除掉js的引入能够正常显示,那么这个工具就可以满足转化为pdf。...

    目前在做一个网页导出成pdf的工作,使用的工具由 tcPDF、dompdf、html2fpdf 等 处于各种限制,最后决定使用wkhtmltopdf

    貌似。只要网页去除掉js的引入能够正常显示,那么这个工具就可以满足转化为pdf。

    wkhtmltopdf 安装 这里有相关的安装信息,至于下载wkhtmltopdf,大家可以找找国内的资源,因为官网下载超级慢,而且总失败

    言归正传哈,wkhtmltopdf的安装之后呢,大家可以选择配置环境变量,但是通过php去调用 貌似不行

    例如:wkhtmltopdf安装在D:\Program Flies\wkhtmltopdf 这里,环境变量也配置好了

    打开cmd,执行命令  wkhtmltopdf http://www.baidu.com/ ebsite2.pdf  也能够成功,但是同样的命令,php系统中会执行不成功,具体原因还不知道,有哪位大神知道,请不吝赐教。执行的话  只能使用绝对路径进行执行

    命令1:exec("D:\Program Flies\wkhtmltopdf\bin\wkhtmltopdf.exe http://www.baidu.com/ ebsite2.pdf");
    命令2:exec("D:\wkhtmltopdf\bin\wkhtmltopdf.exe http://www.baidu.com/ ebsite2.pdf");

    以上两个命令大家可能都认为可以,但是,实际执行中,第一条语句执行失败了,因为路径中带有空格有没有,这个坑真的好深,相信已经有小伙伴遇到了。

    怎么测试出来的,

    exec('start C:Windows\System32\calc.exe'); 

    打开系统的计算器命令,执行后会打开内置计算机窗口

    同样的,你执行下面的命令

    exec("start  D:\Program Flies\wkhtmltopdf\bin\wkhtmltopdf.exe"); 

    就会有个提示

     从提示中就可以看到 ,它没有找到真正的路径上去。所以只能卸载重新安装wkhtmltopdf,安装路径中 不要有中文或空格的情况。

    更多无效原因大家可以去苦的人生遇见甜的这边博客 去查看

    展开全文
  • php 执行 shell 脚本环境变量设置

    千次阅读 2018-03-09 21:22:24
    当使用php的脚本执行命令(如:shell_exec())时,若脚本需要系统环境变量PATH支持(如:python使用import等),则会出现找不到的错误。并且查看系统PATH,如下: echo(shell_exec('echo $PATH')); /usr/sbin:/usr...

    未设置环境变量问题

    当使用php的脚本执行命令(如:shell_exec())时,若脚本需要系统环境变量PATH支持(如:python使用import等),则会出现找不到的错误。并且查看系统PATH,如下:

    echo(shell_exec('echo $PATH'));

    /usr/sbin:/usr/bin:/sbin:/bin

    可以看出,系统和用户PATH均未被设置,这是由于Apache配置文件临时屏蔽了环境变量。

    解决方案

    对于Ubuntu系统,找到环境变量配置文件,通常在/etc/apache2/envvars或者/usr/local/apache/bin/envvars(lamp.sh安装)中。

    打开envvars文件,在文件末尾export系统和用户环境变量,一般:
    * 系统变量在/etc/environment
    * 所有用户的环境变量在/etc/profile
    * 单个用户的环境变量在~/.bashrc

    export PATH=/home/XXXXXX/soft/anaconda2/bin:/usr/local/cuda-8.0/......
    export PYTHONPATH=.......
    ......

    重启Apache服务,运行如下php代码:

    print_r(shell_exec('env'));

    发现环境变量生效。


    更多机器学习干货、最新论文解读、AI资讯热点等欢迎关注“AI学院(FAICULTY)”,内容持续更新中……
    欢迎加入faiculty机器学习交流qq群:451429116(点此进群)
    版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息。


    展开全文
  • php exec环境变量问题

    千次阅读 2018-03-06 18:37:48
    php execphp -v) 是5.3.3但是我已经配好环境变量是5.4.4解决方法:先// $path = exec('echo $PATH');//echo($path);die;看看$path 有没有你配的php环境变量看看php在哪替换掉...

    php exec(php -v) 是5.3.3

    但是我已经配好环境变量是5.4.4

    解决方法:先//      $path = exec('echo $PATH');

    //echo($path);die;


    看看$path 有没有你配的php的环境变量

    看看php在哪替换掉

    展开全文
  • execshell_exec的区别

    万次阅读 2016-11-01 14:41:29
    手册 shell_exec函数运行在shell脚本环境,没有返回值 shell_exec (PHP 4, PHP 5, PHP 7) shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。 说明 string shell_exec ( ...
  • php文件调用exec前设定环境变量 $locale='en_US.UTF-8'; setlocale(LC_ALL,$locale); putenv('LC_ALL='.$locale);
  • 常见命令形式: docker exec -it master /bin/bash -c 'echo $PATH' docker exec -it master /bin/bash -c 'cd /...如果shell脚本中涉及到环境变量,或者提示JAVA_HOME is not set,可以在脚本中加上以下命令 ...
  • iamlaosong文 前面文章曾提到过的定时检测压缩包并完成解压、修改文件名和导入到数据库的脚本(检测压缩包并处理的Linux脚本(解压、批量修改文件名、导入)),后来发现放到crontab中就无法执行了,费了很大劲,一...
  • windows环境下IDEA java代码Runtime.getRuntime.execshell的执行环境的解决方案前言解决办法后记 前言 在使用IDEA本地开发监控守护线程的后台,我遇上了执行环境不兼容的问题,爆出各种“xxx不是内部或外部命令,...
  • 当我们在一个 shell 里运行一个脚本程序时,该 shell 就会 fork 出一个新进程,从而启动了另一个命令解释器(由脚本中第一行的 #!/bin/xxx 指定,如 bash shell)来解释运行我们这个脚本。也就是说,这个新进程是一...
  • PHP调用外部程序的方法

    万次阅读 2017-02-05 16:32:47
    PHP中调用外部命令,可以用如下三种方法来实现:   方法一:用PHP提供的专门函数(四个): ... shell_exec() 1)exec() 原型: string exec ( string $command [, array &$output [,
  • ifconfig: command not found

    万次阅读 2012-09-19 16:31:43
    问题:在red hat enterprise linux 5中查询IP地址时,输入ifconfig命令报错:“ifconfig: command not found” 原因:ifconfig命令所在路径/sbin未包含...2. 临时修改环境变量:在shell中输入  $export PATH = $PAT
  • shell编程

    千次阅读 2019-11-07 10:36:08
    什么是shell编程 高大上的解释,往往让人摸不住头脑。一句话概括就是:shell编程就是对一堆Linux命令的逻辑化处理。 为什么要会shell编程 就是批处理动作,解放双手,避免重复性劳动。 第一个...
  • PHPexec()函数用法详解

    万次阅读 2017-09-10 11:31:37
    先小说两句:今天研究了下PHP调用LINUX命令的功能,一开始怎么做都调用不成功,试了好久才终于成功了,所以发出来分享... PHP中提供了几个调用linux命令的函数,exec、system、passthru,函数使用请参考手册,这里
  • 收藏!一篇教会你写90%的shell脚本!

    万次阅读 多人点赞 2020-08-21 17:25:45
    还不会写shell脚本?这篇文章教会你写90%的shell脚本!
  • 我昨天遇到一个很神奇的问题,代码归结出来就是下面这段,其实就是在php当中,通过exec来执行sipp的命令(具体sipp命令里面的内容被我和谐了哈,主要看原理)。文件名: sendSip.phpfunction SendSip(){ $sip_cmd =...
  • PHP 调用 exec 执行中文命令的坑

    千次阅读 2017-06-25 09:21:08
    所以不可避免的会使用到 phpexec 方法执行 shell 命令。 一切都很正常,直到,出现了中文。哎。具体的 case 如下: 样例代码:  $cmd = 'java -jar sign-maker.jar mike messi';  exec($c
  • var_dump(exec('top -n 1 |grep Cpu 2>err.txt ',$r, $r2)); var_dump($r);  var_dump($r2); ?> 写了这样一个php,在命令行使用php monitor.php成功输出结果。但是在浏览器访问没有输出,也不报错。 不报错原因...
  • php 调用python 脚本

    千次阅读 2016-11-01 14:37:15
    现在假设你已经有了一个可以执行PHP脚本的服务器环境,这篇教程的目的是告诉你如何利用PHP从一个Python脚本获取数据 The Python Script: 下面是一个简单的示例,用Python输出数据,现在有5个用逗号分开的数值,要...
  • Shell

    万次阅读 多人点赞 2017-09-04 17:28:11
    shell编程 shell历史 执行脚本 基本语法 变量 文件名代换Globbing 命令代换 算术代换 转义字符 单引号 双引号 Shell脚本语法 条件测试 条件分支 ifthenelifelsefi caseesac 循环 fordodone whiledodone break和...
1 2 3 4 5 ... 20
收藏数 8,734
精华内容 3,493
关键字:

php shell_exec 环境变量