小编Chr*_*s81的帖子

如何在没有shell访问的情况下获得php解释器/二进制文件的完整路径

如何从php脚本获取php解释器的完整路径(无命令行访问).

我需要做的是:

$foo = "/usr/bin/php";
echo $foo;
Run Code Online (Sandbox Code Playgroud)

但我需要首先获得路径,以便将其分配给foo.

如果你有一个适用于Windows和nix的解决方案甚至更好,但如果没有,nix就可以了.

在你问之前,

  1. 询问主持人是不可能的
  2. 没有shell访问权限

问题是使用它输出的任何东西都不起作用.例如,PHP_BINDIR将输出/ usr/bin,但使用/ usr/bin/php将无济于事.完整的代码是:

exec("php-cli $path_to_file > /dev/null 2>/dev/null &"); 
Run Code Online (Sandbox Code Playgroud)

但即使使用/ usr/bin/php-cli也不行,即使它告诉我.我必须使用:

exec("/opt/php52/bin/php-cli $path_to_file > /dev/null 2>/dev/null &");
Run Code Online (Sandbox Code Playgroud)

例如,对于这个特定的主机.

php interpreter path

13
推荐指数
2
解决办法
2万
查看次数

如何在不连接的情况下在PHP中获取服务器MySQL版本

我需要在PHP脚本中回显MySQL版本(在下载插件之前,它是用户的服务器需求检查页面),而不必将它们连接到他们的数据库.

将此脚本上载到其服务器并在浏览器中打开它.我可以要求他们运行php信息,但我需要的只是Mysql版本,并在脚本中格式化其余的结果.

我该怎么办呢?

php mysql

12
推荐指数
2
解决办法
2万
查看次数

php exec()函数和不同的主机

我有一个脚本,在几个目录中执行一个文件,如下所示:

exec("php-cli $file_path > /dev/null 2>/dev/null &"); //php command-line
Run Code Online (Sandbox Code Playgroud)

这适用于大多数主机,但有些主机不喜欢它并且它不运行,不会产生任何错误.

对于失败的主机,我使用

exec("php $file_path > /dev/null 2>/dev/null &"); //notice the -cli is gone
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.

$ file_path是正在执行的文件的完整路径/home/blah/path/blah.php

我如何制作这种制服,以便它适用于所有服务器(至少unix)

**编辑**

好吧,我这样做,它(很可能)不是正确的方式,但它的工作原理.

而不是只使用php-cli或php,我使用两者,所以如果一个失败,另一个经历.要么php作为cgi或cli运行,其中一个会捕获,并且因为没有输出,所以也没有错误.

exec("php-cli $file_path > /dev/null 2>/dev/null &");
exec("php $file_path > /dev/null 2>/dev/null &");
Run Code Online (Sandbox Code Playgroud)

除非您知道更好的解决方案,否则请告诉我.感谢你的帮助.

php exec command-line-interface

3
推荐指数
1
解决办法
1197
查看次数

标签 统计

php ×3

command-line-interface ×1

exec ×1

interpreter ×1

mysql ×1

path ×1