Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php cli和bashrc文件?_Php_Bash_Command Line Interface - Fatal编程技术网

php cli和bashrc文件?

php cli和bashrc文件?,php,bash,command-line-interface,Php,Bash,Command Line Interface,我正在开发php终端仿真器,它可以工作,但它不使用任何.bashrc或.bash_配置文件。因此,命令的别名不起作用。Im位于一个共享服务器上,该服务器同时具有php5.4和php5.2,因此当我从终端模拟器运行命令时,它使用的是错误的php版本,但如果我实际使用ssh并运行命令,它使用的是正确的版本。我需要使用PHP5.4,但我不知道如何做到这一点 我确保我能正确使用bash /bin/sh -> /bin/bash 下面是我的工作(通过ssh).bashrc 但是,当我登录到终端仿真

我正在开发php终端仿真器,它可以工作,但它不使用任何.bashrc或.bash_配置文件。因此,命令的别名不起作用。Im位于一个共享服务器上,该服务器同时具有php5.4和php5.2,因此当我从终端模拟器运行命令时,它使用的是错误的php版本,但如果我实际使用ssh并运行命令,它使用的是正确的版本。我需要使用PHP5.4,但我不知道如何做到这一点

我确保我能正确使用bash

/bin/sh -> /bin/bash
下面是我的工作(通过ssh).bashrc

但是,当我登录到终端仿真器时,echo$PATH会生成

/usr/local/bin:/usr/bin:/bin

我使用system()进行模拟,但我也尝试过exec()和shell_exec

如果您的问题只是PHP(并且您不关心实际读取.bash_概要文件),那么您可以使用完整路径调用PHP二进制文件:

$ /path/to/php somefile.php
要确定使用SSH时正在执行的“php”二进制文件的路径,只需运行:

$ which php

将生成完整路径作为输出(可能是“/usr/local/php54/bin/php”)

如果您的问题只是php(并且您不关心实际读取.bash_概要文件),那么您可以使用完整路径调用php二进制文件:

$ /path/to/php somefile.php
要确定使用SSH时正在执行的“php”二进制文件的路径,只需运行:

$ which php

将生成完整路径作为输出(可能是“/usr/local/php54/bin/php”)

如果您的问题只是php(并且您不关心实际读取.bash_概要文件),那么您可以使用完整路径调用php二进制文件:

$ /path/to/php somefile.php
要确定使用SSH时正在执行的“php”二进制文件的路径,只需运行:

$ which php

将生成完整路径作为输出(可能是“/usr/local/php54/bin/php”)

如果您的问题只是php(并且您不关心实际读取.bash_概要文件),那么您可以使用完整路径调用php二进制文件:

$ /path/to/php somefile.php
要确定使用SSH时正在执行的“php”二进制文件的路径,只需运行:

$ which php

将生成完整的路径作为输出(大概是“/usr/local/php54/bin/php”)

我认为$path变量对于您要做的事情并不重要

如果您在/usr/local/php54/bin/中安装了PHP5.4,您应该能够像这样运行CLI

/usr/local/php54/bin/php -f /path/to/php-file-to-run.php

我不认为$path变量对于您要做的事情很重要

如果您在/usr/local/php54/bin/中安装了PHP5.4,您应该能够像这样运行CLI

/usr/local/php54/bin/php -f /path/to/php-file-to-run.php

我不认为$path变量对于您要做的事情很重要

如果您在/usr/local/php54/bin/中安装了PHP5.4,您应该能够像这样运行CLI

/usr/local/php54/bin/php -f /path/to/php-file-to-run.php

我不认为$path变量对于您要做的事情很重要

如果您在/usr/local/php54/bin/中安装了PHP5.4,您应该能够像这样运行CLI

/usr/local/php54/bin/php -f /path/to/php-file-to-run.php

我试过使用
putenv('PATH=/usr/local/bin/php54/bin')
,但是终端仿真器在不同的用户下运行,而不是在设置.baserc/.bash\u配置文件设置的用户下运行?此外,您可能需要重新启动仿真器以加载更改。设置用户设置时,通常必须注销并重新登录,更改才能生效。至少,以我的经验来看!这可能取决于操作系统。模拟器以正确的用户身份运行,这是我想到的第一件事。。。最初它是作为www而不是我的用户运行的。我尝试过使用
putenv('PATH=/usr/local/bin/php54/bin')
重新启动仿真器,但终端仿真器在不同的用户下运行,而不是在设置.baserc/.bash\u配置文件设置的用户下运行?此外,您可能需要重新启动仿真器以加载更改。设置用户设置时,通常必须注销并重新登录,更改才能生效。至少,以我的经验来看!这可能取决于操作系统。模拟器以正确的用户身份运行,这是我想到的第一件事。。。最初它是作为www而不是我的用户运行的。我尝试过使用
putenv('PATH=/usr/local/bin/php54/bin')
重新启动仿真器,但终端仿真器在不同的用户下运行,而不是在设置.baserc/.bash\u配置文件设置的用户下运行?此外,您可能需要重新启动仿真器以加载更改。设置用户设置时,通常必须注销并重新登录,更改才能生效。至少,以我的经验来看!这可能取决于操作系统。模拟器以正确的用户身份运行,这是我想到的第一件事。。。最初它是作为www而不是我的用户运行的。我尝试过使用
putenv('PATH=/usr/local/bin/php54/bin')
重新启动仿真器,但终端仿真器在不同的用户下运行,而不是在设置.baserc/.bash\u配置文件设置的用户下运行?此外,您可能需要重新启动仿真器以加载更改。设置用户设置时,通常必须注销并重新登录,更改才能生效。至少,以我的经验来看!这可能取决于操作系统。模拟器以正确的用户身份运行,这是我想到的第一件事。。。最初它是作为www而不是我的用户运行的。我尝试重新启动模拟器,但没有成功。因此,这是可行的,但它只适用于一个php二进制文件。我还有其他别名,比如composer、ruby、python,所以我不想为它们中的每一个都键入完整路径,这就是为什么我要尝试设置路径或读取.bashrc文件的原因我甚至不确定您尝试执行的操作是否可行。唯一的选择是创建一个外部shell脚本(从#!/bin/bash开始)并从PHP执行(“chmod+x脚本”,然后是“/script”)。不过,在我看来,只需为每个命令键入完整路径将是最简单的事情(您可以随时用PHP代码替换“composer”)