【发布时间】:2015-12-19 04:58:36
【问题描述】:
我查看了 composer 是如何设置为通过调用 composer 而不手动发出 php 来运行 php 脚本的,我自己尝试这样做,但它不起作用。我知道这可能以前被问过,但我无法提出一个问题来找到它。
我有我的文件
#!/usr/bin/php
<?php
echo 'teststring' . PHP_EOL;
当我在文件所在的目录中发出test 时,我什么也得不到,但如果我这样做php test,那么我会得到“teststring”的回显。问题是 - 我如何设置它以便我可以直接执行文件?
我已授予 x 文件的权限。
这是一个示例输出:
x@y:~/www/html/dev/Project$ ls
...
-rwxrwxr-x 1 www-data www-data 53 сеп 22 12:34 test
...
x@y:~/www/html/dev/Project$ test
x@y:~/www/html/dev/Project$ php test
teststring
x@y:~/www/html/dev/Project$ which php
/usr/bin/php
x@y:~/www/html/dev/Project$
【问题讨论】:
-
你的 shebang 线在我看来不太好。它应该类似于
#!/usr/bin/env/php或#!/usr/bin/php,具体取决于您的可执行文件所在的位置。 -
@Havelock 尝试了您的两个建议,结果仍然相同。正如我所说,我只是从作曲家那里复制的。
-
然后你需要找到你的可执行php在哪里。您可以尝试使用
find / -name php或locate php甚至可能是whereis php... -
您应该尝试使用 which 而不是 whereis 来定位 php 可执行文件,如 so
$ which php -
我的安装非常标准,php 位于
/usr/bin/php,但即使我将第 1 行更改为#!/usr/bin/php,我仍然得到相同的结果,请参阅我稍后将进行的编辑。