当解释器处于非标准位置时,如何解决“错误的解释器”错误?

时间:2013-07-26 16:03:38

标签: php wordpress bash shell ssh

所以我的第一个问题是我在GoDaddy上主持。

第二个问题是当我尝试通过SSH执行以下PHP脚本时...

./searchreplacedb2cli.php -h hostname -u username -d databasename -p 'password'

...我收到/usr/bin/php: bad interpreter: No such file or directory错误。这是因为在共享主机上,没有/usr/bin/php。相反,我想要的php cli位于:

/usr/local/php5_3/bin/php

所以,我手动将剧本中的shebang声明改为......

#!/usr/local/php5_3/bin/php -q

......果然,它有效。

但是,我不想手动编辑此脚本。我正在寻找一种以编程方式绕过这个问题的方法。我使用此脚本动态部署Wordpress站点。我每次使用它时都会从git存储库中wget它。此外,它会从bash脚本中被定期删除和安装,因此每次都无法在文本编辑器中对其进行修改。

有没有办法将备用解释器传递给bash命令?比如,“如果你找不到默认的解释器,请改用它。”

我尝试了这个,但它不起作用:

./searchreplacedb2cli.php -h hostname -u username -d databasename -p 'password' | /usr/local/php5_3/bin/php

因为它是共享主机,我缺少将符号链接/ usr / bin / php放到正确位置的权限。

我的下一个想法是,通过bash,使用sed替换命令编辑php脚本的第1行。我想我会先在这里询问替代方案。感谢。

1 个答案:

答案 0 :(得分:4)

如果它只是这个主机,请将/ usr / local / php5_3 / bin /添加到$ PATH,并使用此shebang:

#!/usr/bin/env php