【问题标题】:How do I solve "bad interpreter" error when interpreter is in non-standard location?当解释器位于非标准位置时,如何解决“错误解释器”错误?
【发布时间】:2013-07-26 23:58:55
【问题描述】:

所以我的第一个问题是我在 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 行。我想我会先在这里询问替代方案。谢谢。

【问题讨论】:

    标签: php wordpress bash shell ssh


    【解决方案1】:

    如果只有这个主机,添加 /usr/local/php5_3/bin/ 到你的 $PATH,并使用这个 shebang:

    #!/usr/bin/env php
    

    【讨论】:

      猜你喜欢
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多