2014-02-12 5 views
12

새틴 #을 추가 할 때 약간의 문제가 있습니다! 레드햇 리눅스에서 내 PHP 스크립트. 내가 shebang 추가 된 테스트 코드의 작은 조각을 가지고 (나는 다른 유사뿐만 아니라 시도),하지만 스크립트를 실행하려고 할 때마다 다음과 같은 오류 메시지가 나타납니다.세방을 추가하는 방법 #! 리눅스에서 PHP 스크립트로?

오류 메시지 :

-bash: script.php: command not found 

테스트 스크립트를

#!/bin/env php  
<?php echo "test"; ?> 

오두막 번호! 변동 :

#!/usr/bin/php 
#!/usr/bin/env php 
+1

그가 물어 보는 이유는 분명합니다. – Banago

+0

@JoelFan PHP 설명서가 나와 동의하지 않는 것 같습니다. http://www.php.net/manual/en/features.commandline.usage.php#example-375 –

+1

@JoelFan - 사람들은 블로그에 어리석은 생각을 표현할 자유가 있으며, 다른 개발자를 돕는 사이트에서는하지 않습니다. 고맙습니다. 오류에 대한 질문에 대답하려면 - 당신의 첫 번째 라인 이후 CR \ LF 조합 때문에 가능성이 높습니다. 16 진수 편집기를 사용하여 \ n \ r 있는지 확인하고, 그렇다면 캐리지 리턴을 제거하십시오. CHMOD + x yourfile.php를 실행 가능하게 만드십시오. –

답변

25

대부분 시스템의 경우 #!/usr/bin/env php이어야하지만 오류는 관련이 없습니다.

-bash: script.php: command not found 

이 script.php가 발견되지 않는 것을 말한다.

문제가 오두막 라인은 다음 오류가 뭔가처럼 말할 것 인 경우 : 아마도

bash: script.php: /usr/env: bad interpreter: No such file or directory 

, 당신은 script.php을 입력하고 파일이 $PATH의 디렉토리에없는 또는 실행되지 않습니다.

  1. 실행 파일 : chmod +x script.php.
  2. 파일 이름이 현재 디렉터리에있는 경우 파일 이름 대신 경로를 입력하십시오 (./script.php).

대신 2, 당신은/복사/이동 스크립트가 들어있는 디렉토리를 포함하도록 곳 $PATH 또는 modify the $PATH에 나열된에 파일을 심볼릭 링크 할 수 있습니다.

+1

또한 DOS가 아니라 스크립트에 유닉스 라인 결말이 있는지 확인하십시오. DOS 줄 끝은 당신에게 유사한 오류를 줄 것이다. –

10

당신이 스크립트는 /usr/local/bin에 있으며 실행 가능하지 않은 경우,이 같은 php와 스크립트를 호출하는 접두사가 있습니다 shebangs를 들어

php myscrip.php 

, 여기 내가 사용하는 것입니다 :

#!/usr/bin/php 

또는이 : : 이것처럼

#!/usr/bin/env php