小编dre*_*nch的帖子

文件扩展名何时覆盖 Linux 上的 shebang 行?

一些 PHP cron 作业最近开始在共享服务器上失败。他们已经运行了将近一年没有错误和更新,但现在由于语法错误而无法运行。发生了什么?

事实证明,这些脚本现在突然在 PHP 4 下运行,而不是 PHP 5。在 /usr/local/bin/php 安装了一个 PHP 4 版本,但这是这些脚本上的“shebang”行:

#!/usr/local/php5/bin/php
Run Code Online (Sandbox Code Playgroud)

我做了一些实验:

% /usr/local/php5/bin/php --version
PHP 5.2.6 (cli) (built: May 11 2008 13:09:39) 
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

% echo '<?= phpversion() ?>' | /usr/local/php5/bin/php
5.2.6

% printf '#!/usr/local/php5/bin/php\n<?= phpversion() ?>' > version
% chmod …
Run Code Online (Sandbox Code Playgroud)

linux shell unix-shell

7
推荐指数
1
解决办法
939
查看次数

标签 统计

linux ×1

shell ×1

unix-shell ×1