#!/usr/bin/env 需要从命令行运行 PHP 吗?
2022-08-30 14:56:33
通常,当我看到要从命令行运行的PHP时,它会在文件顶部有这一行,就像这样......#!/usr/bin/env php
#!/usr/bin/env php
<?php
// code
?>
我想知道这是否只是为了当文件在Linux / Unix系统上运行时,还是在Windows上运行时?
通常,当我看到要从命令行运行的PHP时,它会在文件顶部有这一行,就像这样......#!/usr/bin/env php
#!/usr/bin/env php
<?php
// code
?>
我想知道这是否只是为了当文件在Linux / Unix系统上运行时,还是在Windows上运行时?
自动检测脚本类型需要 shebang 行。它支持这种用法:
[pfisher ~]$ chmod +x run-me.php
[pfisher ~]$ run-me.php
如果将文件名作为参数传递给 php 解释器,则不需要该行,如下所示:
[pfisher ~]$ php run-me.php
编辑:将“hashbang”替换为shebang。
不,它不是,你可以直接使用
#!/path/to/php
通过 env 实用程序运行 php(或其他任何东西)是一种较弱的安全措施。在平台上挂起,将根据各种配置文件“修复”PATH,LIB和其他环境变量,并可能删除其中的一些危险值(例如,在HPUX上)。
这也是为了限制某些环境中 shell 扩展的范围。(参见 Linux 上的人 1 env)。