先前工作的命令行 PHP 脚本已停止工作 - 当我现在运行它时,它返回此错误:
[root@server dir]# ./custom.php
Extension './custom.php' not present.
如果我像这样运行脚本它就会起作用:
[root@server dir]# php custom.php
但是由于一些原因,我无法这样做。我读过一些文章,暗示这可能与行尾有关,但不知道原因。我最近在 Mac 和 PC 上编辑了这个文件,并通过 FTP 将其发送到服务器,但我已经这样做了很长时间,没有出现问题。
编辑脚本的第一行是:
#!/usr/bin/php -q
仅供参考,服务器运行的是 CentOS 5.4
答案1
这通常是错误的行尾。使用 dos 行尾。尝试在文件上使用 dos2unix,然后运行它
dos2unix custom.php
答案2
将:#!/usr/bin/php 放在脚本顶部(PHP 括号之前)。然后 chmod +x custom.php
答案3
如果你在windows上编辑了一个php文件,然后通过命令行的方式上传到linux上运行,可能会遇到如下运行问题:
[root@ItsCloud02 wsdl]# ./lnxcli.php
扩展名‘./lnxcli.php’不存在。
或者你可能会遇到一些其他奇怪的问题。注意回车键。在 Windows 环境中,回车键生成两个二进制字符“0D0A”。但在 Linux 中,回车键仅生成一个“OA”。如果您使用 Windows 编写 php 并将其作为命令行程序在 Linux 上运行,我希望它能对某些人有所帮助