Tom*_*tný 9 linux ssh bash php ubuntu
我想使用 .sh 脚本来部署我的应用程序。该脚本位于我的主服务器(Ubuntu 15.10 服务器)上,标记为可执行文件。对这个脚本的访问是通过 ssh 完成的,使用本教程,我设置了 ssh 登录,它运行该脚本。所以基本上我只是调用ssh deployer@XXX.com someArguments它并使用someArguments作为参数运行我的脚本。用户的deployeruid=0,所以它基本上root(这将在未来改变,我设置它只是为了消除权限问题,直到它正常工作)。
这就是事情变得棘手的地方。脚本报告/usr/bin/env: php: No such file or directoryat 命令/bin/composer install(使用Composer)。我越看那个剧本,事情就越奇怪。在这一行之前,还有一个叫做/bin/composer self-updateand /bin/composer -V,它既能正确运行,又能显示正确的输出。
我检查了以下几件事:
/usr/bin/env php -v显示正确的 PHP 版本(与 相同/usr/bin/php -v)whereis php 显示 php: /usr/bin/php /usr/local/bin/php /usr/share/man/man1/php.1.gzphp5-cli 安装包和最新版本$PATH 包含 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gameswhich env 显示 /usr/bin/env我也尝试过以下事情:
bash deploy.sh在 root 下运行脚本(因为它与该用户相同) - 完美无误所以这在我看来是非常特殊的情况,为什么这个命令不起作用。我花了 12 个小时调试它,但我在这里没有想法。
PS:/usr/bin/env: node: No such file or directory有bower install(使用Bower)时会发生类似的错误(),但在运行时(使用NPM)不会发生。npm install
确保行尾和/或不可见空格不会导致问题。
删除脚本第一行中的空格并插入新的空格,确保在按空格的同时不要按住 CTRL。
另外,请确保您没有 DOS 行尾 (CR+LF)。有关详细信息,请参阅/sf/ask/5790851/。
该env命令将浏览用户的目录$PATH以查找给定名称的第一个可执行文件。因此,将在运行它的用户的任何目录中/usr/bin/env php查找调用的可执行文件。php$PATH
就您而言,这几乎可以肯定是因为在运行命令时ssh,您不会启动完整的 shell,也不会实际读取 shell 的初始化文件。您可以通过运行以下命令来检查这一点(注意单引号):
ssh deployer@XXX.com 'echo $PATH'
Run Code Online (Sandbox Code Playgroud)
ssh deployer@XXX.com并将输出与运行后得到的结果进行比较echo $PATH。在我的系统上。例如:
$ echo $PATH
/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:
$ ssh localhost 'echo $PATH'
/usr/bin:/bin:/usr/sbin:/sbin
Run Code Online (Sandbox Code Playgroud)
因此,$PATH您的脚本在运行时可以访问的 与ssh deployer@XXX.com您登录测试它时可以访问的不同。
无论如何,简单的解决方案是使用解释器的完整路径而不是env. 两种env路径和完整路径都有其优点和缺点,但在这种情况下,路径更安全:
ssh deployer@XXX.com 'echo $PATH'
Run Code Online (Sandbox Code Playgroud)
看起来也许您需要将 php 添加到您的路径中。尝试:
vim ~/.bashrc
PATH=$PATH:/usr/local/bin/php
export PATH
Run Code Online (Sandbox Code Playgroud)
您可能还想检查 php 所在的位置,以确保那里的路径正确。尝试:
which php
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33683 次 |
| 最近记录: |