注意:此问题已解决。它是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
一切正常,String“starting ...”按预期显示。
我哪里错了?
EDIT1: 像这样使用shebang:
#!/usr/bin/php
导致错误消息“^ M:错误的解释器:没有这样的文件或目录” 虽然肯定有/ usr / bin / php(/ usr / bin / php - &gt; / etc / alternatives / php,和/ etc / alternatives / php - &gt; / usr / bin / php5)
答案 0 :(得分:2)
我想我已经得到了它(感谢 @ EDIT1 (来自问题)):
关于行结尾的几句话( EOLN s):
您的 .php 文件 Win 样式 EOLN (至少是 shebang 行中的那个)虽然有些 Nix 口译员不喜欢 LF ,但这就是这种情况。
作为旁注, nano (或任何体面的编辑器,事实上)在编辑文件时计算出文件中的行结尾,当添加新行时,他们的 EOLN 与现有的一致。
要使工作正常,请将文件 EOLN 转换为 Nix 样式:
dos2unix /var/projects/user-backup.php
答案 1 :(得分:0)
将/usr/bin/php
放入文件/etc/shells
。
答案 2 :(得分:0)
这是行结尾!!虽然我使用了&#34; nano&#34;为了在putty窗口中编辑文件,我仍然得到了windows-line-endings。
使用&#34; dos2unix&#34;转换所有行结尾,事情就结束了!
在这个问题中比较答案: shebang line not working