6

私は崇高なテキスト 2 を使用しており、プラグイン sublimelinter を使用したいと考えていました。php -l を使用してバックグラウンドでコードをチェックします。VirtualBox VMで実行されているWebサーバーで開発しています。WebサーバーはVM(ゲスト)にあり、崇高なテキストはホストで実行されています。

この 2 つを連携させる方法はありますか? VM の外に php をインストールすることは本当に避けたかったのです。

4

1 に答える 1

6

私のマシンでかなりうまく機能するものがありますが、壊れやすいようです。

アイデア

ここでの考え方は、SSH トンネル経由で VM 上の PHP 呼び出しにすべてのパラメーターを渡すコマンドライン スクリプトをホスト上に作成することです。SublimeLinter は、通常は PHP バイナリを呼び出すのと同じようにこのスクリプトを呼び出すことができます。Sublime の観点からは、ホストに PHP をインストールしなくても、すべてが「機能する」だけです。

Windows と OS X の両方のホストを使用しているため、2 つのバージョンのトンネル スクリプトがあります。Windows では Windows PuTTY SSH ツールを取得する必要がありますが、Unix フレーバーのホストでは SSH が既に存在している可能性が高いことに注意してください。

Windows ホストの場合

  • パテツールをダウンロードし、 .zip などの便利な場所に解凍しますC:/Users/Youruser/bin/putty
  • C:/Users/Youruser/bin/php_vm_tunnel.bat次の内容でバッチ スクリプトを作成します。

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

- plink へのパスを、上記でパテを解凍した正しいパスに置き換えてください。-lまた、フラグの値と-pwフラグの値を、VM に SSH で接続するときに使用するユーザー名とパスワードに置き換えます。最後に、例の IP アドレスを、VM への SSH に使用する IP アドレスに置き換えてください。

Unix 風のホスト (OS X、Linux など) の場合

  • で bash スクリプトを作成します。~\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
    

-l-フラグの値は、VM に SSH で接続するときに使用するユーザー名に置き換えてください。また、例の IP アドレスを、VM への SSH に使用する IP アドレスに置き換えてください。

スクリプトのテスト

この時点で、渡されたものを VM にトンネリングするスクリプトが作成されました。したがって、端末で行う場合は、次のように言います。

cd wherever_you_put_the_script 
php_vm_tunnel -v

仮想マシンから PHP バージョン情報が返されるはずです。

Sublime Text 2 構成

このトンネルをセットアップしたので、Sublime Text 2 を構成してそれを利用できます。

  • Package ControlSublime Text 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」ステートメントは 1 つしか持てません。上の 1 番目が Windows 版、2 番目が Unix 版です。不要なものは削除してください。

  • Sublime Textを再起動します

Sublime Text コンソールを開くと (すべてが計画どおりに進んだ場合)、起動テキストに次のようなものが表示されます。

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

また、SublimeLinter は、あたかもネイティブ PHP バイナリを呼び出しているかのように、PHP ファイルを適切に lint する必要があります。

幸運を。

于 2012-11-26T00:10:57.993 に答える