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

  • please add the script first line – radius Aug 6 '10 at 15:04

it is generally bad line endings.. using dos line endings. Try using dos2unix on the file and then run it

dos2unix custom.php
  • 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. – robjmills Aug 6 '10 at 15:11
  • dos2unix won't hurt the file.. but generally if you see ^M at the end of lines.. it is that issue – Mike Aug 6 '10 at 15:12
  • not seeing ^M's at end of line - have seen that before. i'll try dos2unix – robjmills Aug 6 '10 at 15:17
  • 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++). – wolfgangsz Aug 6 '10 at 17:18

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

  • sorry, should have put that in question right away. path to PHP already in there - see Edit – robjmills Aug 6 '10 at 15:09

If you edit a php file in windows, upload and run it on linux with command line method. You may encounter a running problem probably like that:

[root@ItsCloud02 wsdl]# ./lnxcli.php

Extension './lnxcli.php' not present.

Or you may encounter some other strange problem. Care the enter key. In windows environment, enter key generate two binary characters '0D0A'. But in Linux, enter key generate just only a 'OA'. I wish it can help someone if you are using windows to code php and run it as a command line program on linux

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.