【问题标题】:Executing php script in command line using only file name and no php command仅使用文件名而不使用 php 命令在命令行中执行 php 脚本
【发布时间】:2020-10-05 05:27:01
【问题描述】:

如何配置 linux/php 来运行 php 脚本,而不必每次我想运行脚本时都键入 php -f 命令。 即

代替:

$ php -f /path/to/file/script.php

当我这样做时,我希望脚本运行:

/path/to/file/script.php

我的 google-fu 在这方面让我失望了,而且大多数关于从命令行运行 php 的所有其他 SO 问题都没有真正的帮助。我们工作中的远程服务器就是这样做的,我对它是如何完成的感到有些困惑。我正在考虑与 .php 扩展名有关的事情?在任何 php 文件中都没有使用 hash-bangs。

【问题讨论】:

    标签: php command-line shellexecute command-line-arguments


    【解决方案1】:
    1. 使用chmod +x /path/to/file/script.php 使您的script.php 可执行
    2. 将php解释器的路径放在第一行,如#!/path/to/php

    【讨论】:

    • 感谢您的回答,但正如我上面所说,在我能够执行此操作的服务器上的任何文件中都没有哈希爆炸。
    • @John:我非常怀疑还有其他简单的解决方案
    【解决方案2】:

    如果不使用 hash-bang/shebang,我不知道你怎么能做到这一点。想到的唯一想法是配置 shell 以专门处理以 .php 结尾的文件,或者告诉内核如何执行这些文件,就像它对 ELF 格式的二进制文件所做的那样(我认为这个功能曾经用于启动 DOS 。直接exe文件,无需指定模拟器名称。)

    【讨论】:

      【解决方案3】:

      我能得到的最接近的方法是为 'php -f' 设置别名:
      alias zz="php -f "

      您现在应该可以使用:
      zz /path/to/file/script.php

      【讨论】:

        【解决方案4】:
        alias /path/to/file/script.php='php -f /path/to/file/script.php'
        

        【讨论】:

          【解决方案5】:

          将此行放入脚本的第一行:

          #!/usr/bin/php
          <?php
          

          运行此命令后:

          chmod 0755 yourscript.php
          

          然后你可以运行 ./yourscript.php

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-06-09
            • 1970-01-01
            • 2017-12-07
            • 2020-07-02
            • 1970-01-01
            • 1970-01-01
            • 2021-11-17
            • 1970-01-01
            相关资源
            最近更新 更多