2012-09-10 3 views
6

나는 숭고한 텍스트 2를 사용하고 있으며 플러그인 sublimelinter를 사용하고 싶습니다. php -l을 사용하여 백그라운드 코드를 검사합니다. VirtualBox VM에서 실행중인 웹 서버를 사용하여 개발 중이며, 웹 서버는 VM (게스트)에 있고 숭고한 텍스트는 호스트에서 실행 중입니다.virtualbox VM에서 실행중인 phl로 숭고한 텍스트 linter를 실행하는 방법은 무엇입니까?

두 사람이 함께 작업 할 수있는 방법은 없나요? 나는 정말로 VM 외부에 php를 설치하는 것을 피하고자했다.

답변

6

나는 내 컴퓨터에서 제대로 작동하는 무언가를 가지고 있지만 깨지기 쉬운 것으로 보입니다.

SSH를 터널을 통해

여기 아이디어는 당신의 VM에 PHP 호출에 모든 매개 변수를 전달하여 호스트에서 명령 줄 스크립트를 작성하는 것입니다 아이디어. SublimeLinter는 보통 PHP 바이너리를 호출하는 것처럼이 스크립트를 호출 할 수 있습니다. Sublime의 관점에서는 호스트에 PHP를 설치하지 않고도 모든 것이 "잘 작동합니다".

Windows 및 OS X 호스트를 모두 사용하고 있으므로 두 버전의 터널 스크립트가 있습니다. Windows에서는 Windows PuTTY SSH 도구를 가져와야하지만 유닉스 버전의 호스트에서는 SSH가 이미 존재할 가능성이 있습니다. Windows의 경우

  • putty 도구를 다운로드하고 어딘가 유용 C:/Users/Youruser/bin/putty 같은 압축 해제 호스트.

    @echo off 
    C:/Users/Youruser/bin/putty/plink -l youruser -pw yourpassword 192.168.56.101 php %* 
    

참고을 - 확인 및 위 퍼티의 압축을 푼 올바른 경로로 가용 스루풋의 경로를 대체 :
  • 이 콘텐츠와 함께 C:/Users/Youruser/bin/php_vm_tunnel.bat에 배치 스크립트를 작성합니다. 또한 -l-pw 플래그 값을 VM에 SSH 할 때 사용하는 사용자 이름과 암호로 바꿉니다. 마지막으로, 예에서 IP 주소를 VM에 SSH하기 위해 사용하는 IP 주소로 바꾸십시오.

    유닉스 틱 호스트에 대한

    (OS X, 리눅스 등)

    • ~\bin\php_vm_tunnel

      #!/usr/bin/env bash 
      FIXED_ARGS=''; 
      for ((i = 1; i <= $# ; i++)); do 
          eval ARG=\$$i 
          FIXED_ARGS="$FIXED_ARGS $(echo "$ARG" | awk '{gsub(".", "\\&");print}')" 
      done 
      ssh -l root 192.168.56.101 php $FIXED_ARGS 
      

    참고에서 bash는 스크립트를 작성 - 수 -l 플래그를 바꿔야합니다. v VM에 SSH 할 때 사용하는 사용자 이름을 사용하십시오. 또한 예제의 IP 주소를 VM에 SSH하기 위해 사용하는 IP 주소로 바꾸십시오. 이 시점에서 스크립트

    테스트

    당신은 터널 아무것도 당신이 당신의 VM에 그것을 통과해야하는 스크립트가 있습니다.터미널에서 당신이 할 것 인 경우에 따라서 말 :

    cd wherever_you_put_the_script 
    php_vm_tunnel -v 
    

    당신은 가상 머신에서 PHP 버전 정보 수익을 볼 수 있습니다.

    숭고한 텍스트 2 구성 이제이 터널, 당신은 숭고한 텍스트 2가 사용하도록 구성 할 수 있습니다 설정했는지

    :

  • 설치

    • Package Control 숭고한 텍스트 2 플러그인을 설치 SublimeLinter 플러그인 (이미이 시점에있는 것처럼 보입니다)
    • Preferences ->Package Settings ->SublimeLinter ->Settings - User
    • (다시 스크립트에 적절한 경로를 대체하고 제대로 백 슬래시 문자를 이스케이프 이중 슬래시를 지적) 구성 파일에 추가하고 저장 :

      { 
          "sublimelinter_executable_map": 
          { 
           "php": "C:\\\Users\\\Youruser\\\bin\\\php_vm_tunnel.bat" 
           "php": "/Users/youruser/bin/php_vm_tunnel" 
          } 
      } 
      

      참고을 - "php"문은 하나만 사용할 수 있습니다. 위의 첫 번째 버전은 Windows 버전이고 두 번째 버전은 유닉스 버전입니다. 필요없는 것을 삭제하십시오.

    • 를 다시 시작 숭고한 텍스트

    당신은 숭고한 텍스트 콘솔을 엽니 다 (모든 것이 계획에 따라 갔다)는 같은처럼 시작 텍스트에 뭔가를 볼 경우

    SublimeLinter: php enabled (using "C:\Users\Youruser\bin\php_vm_tunnel.bat" for executable) 
    

    그리고 SublimeLinter는 네이티브 PHP 바이너리를 호출하는 것처럼 PHP 파일을 올바르게 lint해야합니다.

    행운을 빈다.

  • +0

    PHP 터널 스크립트가 꽤 일반적인 목적이기 때문에이 트릭이 다른 플러그인에서도 작동 할 수 있다는 점은 주목할 가치가 있습니다. 그러나이 전략은 플러그인이 설정 파일을 작성한 다음 PHP 호출을 매개 변수로 전달하려고 시도 할 경우 PHP가 호스트의 파일 시스템에 액세스하여 파일을로드하지 않기 때문에 중단됩니다. –

    +0

    작업으로 인해 Java로 전환 했으므로 더 이상 테스트 할 수 없지만 합리적이고 완벽하게 받아 들여집니다. 감사. – JSamir

    관련 문제