PHP Shebang 不工作
PHP Shebang not working
注意:这个问题已经解决了。它是 shebang line not working
的副本
这是我的:
#!/usr/bin/env php
<?php
echo "starting";
文件可执行“-rwxr-xr-x”
我用完整路径调用文件
/var/projects/user-backup.php
但我只收到错误消息“:没有这样的文件或目录”
使用
调用脚本
php /var/projects/user-backup.php
结果字符串 "Starting..." 按预期显示。
即使我尝试
/usr/bin/env php /var/projects/user-backup.php
一切正常,字符串 "starting..." 按预期显示。
我哪里错了?
编辑1:
像这样使用 shebang:
#!/usr/bin/php
导致错误消息“^M:错误的解释器:没有这样的文件或目录”
虽然肯定有 /usr/bin/php (/usr/bin/php -> /etc/alternatives/php 和 /etc/alternatives/php -> /usr/bin/php5)
将/usr/bin/php
放入文件/etc/shells
.
这是行尾!!尽管我使用 "nano" 在 putty-window 中编辑文件,但我仍然得到 windows-line-endings.
使用 "dos2unix" 转换所有行尾后,一切顺利!
比较这个问题的答案:
shebang line not working
我想我明白了(感谢 @EDIT1(来自问题)):
关于行尾的几句话 (EOLNs):
- Win: "\r\n" ("\x0D\x0A", CR + LF)
- Nix: "\n" ("\x0A", CR)
您的 .php 文件具有 Win 样式 EOLNs(在至少 shebang 行中的那个),而一些 Nix 口译员不喜欢 LF,并且这里就是这种情况。
作为旁注,nano(或任何像样的编辑器,事实上)在编辑文件和添加新行时找出文件中的行结尾, 他们的EOLN与现有的一致
为了让事情正常进行,请将文件 EOLNs 转换为 Nix 样式:
dos2unix /var/projects/user-backup.php
注意:这个问题已经解决了。它是 shebang line not working
的副本这是我的:
#!/usr/bin/env php
<?php
echo "starting";
文件可执行“-rwxr-xr-x”
我用完整路径调用文件
/var/projects/user-backup.php
但我只收到错误消息“:没有这样的文件或目录”
使用
调用脚本php /var/projects/user-backup.php
结果字符串 "Starting..." 按预期显示。
即使我尝试
/usr/bin/env php /var/projects/user-backup.php
一切正常,字符串 "starting..." 按预期显示。
我哪里错了?
编辑1: 像这样使用 shebang:
#!/usr/bin/php
导致错误消息“^M:错误的解释器:没有这样的文件或目录” 虽然肯定有 /usr/bin/php (/usr/bin/php -> /etc/alternatives/php 和 /etc/alternatives/php -> /usr/bin/php5)
将/usr/bin/php
放入文件/etc/shells
.
这是行尾!!尽管我使用 "nano" 在 putty-window 中编辑文件,但我仍然得到 windows-line-endings.
使用 "dos2unix" 转换所有行尾后,一切顺利!
比较这个问题的答案: shebang line not working
我想我明白了(感谢 @EDIT1(来自问题)):
关于行尾的几句话 (EOLNs):
- Win: "\r\n" ("\x0D\x0A", CR + LF)
- Nix: "\n" ("\x0A", CR)
您的 .php 文件具有 Win 样式 EOLNs(在至少 shebang 行中的那个),而一些 Nix 口译员不喜欢 LF,并且这里就是这种情况。
作为旁注,nano(或任何像样的编辑器,事实上)在编辑文件和添加新行时找出文件中的行结尾, 他们的EOLN与现有的一致
为了让事情正常进行,请将文件 EOLNs 转换为 Nix 样式:
dos2unix /var/projects/user-backup.php