Thursday, January 27, 2011

Command line PHP script no longer working

A previously working command line PHP script has stopped working - when i run it now it returns this error:

[root@server dir]# ./custom.php
Extension './custom.php' not present.

If i run the script like this it works:

[root@server dir]# php custom.php

For a number of reasons i cannot do this though. I have read something that implies this could be related to line endings but no idea how/why. i have edited this file recently on A Mac and a PC and FTP'd it to the server but i've been doing that for a long time without issues.

EDIT First line of script is:

#!/usr/bin/php -q

FYI The server is running CentOS 5.4

  • Put: #!/usr/bin/php in the top of your script (before your PHP-brackets). And then chmod +x custom.php

    seengee : sorry, should have put that in question right away. path to PHP already in there - see Edit
    From Jimps
  • it is generally bad line endings.. using dos line endings. Try using dos2unix on the file and then run it

    dos2unix custom.php
    
    seengee : is there a way i could check what line endings its using to compare to another file? I tend to use Vim if that helps.
    Mike : dos2unix won't hurt the file.. but generally if you see ^M at the end of lines.. it is that issue
    seengee : not seeing ^M's at end of line - have seen that before. i'll try dos2unix
    seengee : seems to have fixed it! thanks :)
    wolfgangsz : He would only see the ^M's at the end of the line if looking at the file on a linux machine using vi. If he looks at the file on a DOS/Windows machine it just looks innocent (unless you use an advanced editor such as Notepad++).
    From Mike

0 comments:

Post a Comment