4

I've been struggling trying to connect to a centos 6.4 vm using Vagrant. I'm using salt as a provisioning agent and I have installed apache,php,mysql packages successfully. When i ssh into the box apache is running fine. I added an index.html file in /var/www and I get the contents back when I curl localhost:80

Vagrant.configure("2") do |config|
  ## Chose your base box
  config.vm.box = "centos63"
  config.vm.box_url = ""

  ## For masterless, mount your salt file root
  config.vm.synced_folder "salt/roots/", "/srv/"


  ## Use all the defaults:
  config.vm.provision :salt do |salt|
    salt.verbose = true
    salt.run_highstate = true
    salt.minion_config = "salt/minion"
 end
end

Vagrant::Config.run do |config|
 config.vm.forward_port 80, 8080
 config.vm.share_folder "mypath", "/var/www/leo", "."
end

I ran sudo lsof -i :8080 on my local machine and gave me no results. I also cleared the iptable config in the guest machine with iptables -F. When I curl the guest machine

 curl -v 'localhost:8080'                            
* About to connect() to localhost port 8080 (#0)
*   Trying ::1...
* Connection refused
*   Trying 127.0.0.1...
* Connection refused
*   Trying fe80::1...
* Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host

Do I need guest additions installed? I looked around on how to install this but I'm not sure if it has to be installed on the host or the guest. Not sure what else to try.

4

2 に答える 2

3

ここでやろうとしていることは、 vagrant as を実行せずに vagrant を使用するだけでは不可能rootです。私が信じているようにVagrantを実行できますrootが、VirtualBoxはそれに同意しません。ポート番号を引き続き使用することも、ポート 80 を使用する必要がある場合は、方法があります。

私のクライアントがWordpress Multisiteセットアップを行うように頼んだとき、私はこの問題を抱えていました. Wordpress MS では、URL にポート番号を含めることができません。URL マッピングの一部が正しく機能しません。それを知ったときは驚き、MAMP のようなプログラムの使用に戻りたくありませんでした。

とにかく、この目標を達成するための 2 つの方法があります (どちらも非常に難しいものではありません)。私はMacユーザーなので、これらはMac固有の回答です。Windowsバージョンがあるかどうかを確認し、テストして確認できるようになったら回答を更新します(以下を参照してください。方法があります)。

方法 #1 (Mac IP ファイアウォール ユーティリティ):

vagrant ファイルで

config.vm.forward_port 80, 8080
config.vm.forward_port 443, 8443

それはかなり正常です。

ターミナルを開くと、ipfw ユーティリティを使用できます

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to me 80
sudo ipfw add 101 fwd 127.0.0.1,8443 tcp from any to me 443

cmd は永続的ではないため、マシンを再起動した場合は cmd を再実行する必要があります。ただし、永続的にすることもできます。残りの方法を説明するリンクを以下に含めます。

Vagrant でのポート 80 および 443 での Web 開発

方法 #2 (Mac POW と Anvil):

まだ Pow を持っていない場合は、入手してください。それは本当にクールなアプリです。Pow と Anvil をインストールすると、そこにAnvilがあり、そこにPowがあります。

それらの設定方法に関するドキュメントを読むことができますが、「静的」サイトと「ラック」サイトの部分には注意を払わないでください。この部分が必要です。

Pow を介したポート プロキシを使用して、mycoolsite.dev から受信トラフィックを受け取り、それを mycoolsite.dev:8080 のような仮想マシンに転送すると、仮想マシンは 8080 を 80 に転送し、コンテンツが来る行をバックアップします。

Anvil/Pow をインストールしてセットアップしたら、次の行を実行します。

echo 8080 > ~/.pow/mycoolsite

次に、タスク バーの Anvil をクリックし (更新するか、閉じて再度開く必要がある場合があります)、サイトをオンにします。本当に?パウアンドアンビルロック!!

したがって、私が見つけた 2 つの方法があります。Hosts ファイルでできることがいくつかあると確信しており、以前はそれをたくさん行っていました。ただし、利用可能なこれらの他の方法により、その厄介なホストファイルを簡単に忘れることができます.

Windows ユーザー (および最初の 2 つの方法が気に入らない Mac ユーザー) への注意: Vagrant Host Manager を使用できます。セットアップ方法は githubで確認できます。これは vagrant プラグインであり、基本的にhostsファイルを編集してくれます。vagrantfile の設定を行うだけで、あとは問題ありません。Windows 7 でテストしたところ、問題なく動作したので問題ないはずです。何か問題がある場合は、github のドキュメントを参照するか、Vagrant Host Manager チームが確認できるように問題を報告してください。

于 2014-02-26T02:46:07.347 に答える