Web開発にはローカル開発環境の構築が不可欠ですが、現在各種スクリプトには対応したWindowsバージョンがあり、ワンクリックインストールパッケージも存在しますが、Windows環境との互換性があまり良くない場合が多く、様々な面倒な問題が発生しています。デプロイメント環境は通常 Linux ですが、開発環境とデプロイメント環境の間で不一致が発生することがよくあり、オンラインにする前に多くのデバッグが必要になります。
Windows 上で Linux をプレイするには仮想マシンが必要ですが、システムのインストールは依然として非常に面倒です。すべてが自動化されている今日、Vagrant は非常に優れた成果物であり、Ruby に基づいて開発されており、仮想化サポートとしてオープンソースの VirtualBox を使用しているため、プラットフォーム間で簡単に導入できます。
今日、いくつかのマシンの環境を Vagrant に変更してみました。個人的には、CentOS を実行するのに必要なメモリは 60 MB 未満で、非常に強力であることがわかりました。
インストール手順は以下に説明されており、注意事項もいくつか記載されています。
準備:
VirtualBox をダウンロードしてインストールします: https://www.virtualbox.org/
Vagrant をダウンロードしてインストールします: http://www.vagrantup.com/
使用する必要があるボックスをダウンロードします:
公式に提供されている例: http://files.vagrantup.com/precise32.box
http://www.vagrantbox.es/ からさらにさまざまなシステムをダウンロードすることもできます。また、構成済みで直接使用できるボックスもダウンロードできます。 Vagrant 内で直接 URL を使用することも可能ですが、Vagrant が自動的にダウンロードしてインストールします。 ただし、ネットワークの状況を考慮して、最初に自分でダウンロードすることをお勧めします。
CentOS の使用に慣れているので、CentOS 6.3 x86_64 最小版をダウンロードしました。このボックスは個人の状況に応じて選択できます。
環境をセットアップする:
インストールが完了し、システムが再起動されたら、環境のセットアップを開始できます。
まずローカルに作業ディレクトリを作成し、コマンドラインで対応するディレクトリに切り替えます
vagrant box add base CentOS-6.3-x86_64-minimal.box
base はデフォルトのボックスを指定することを意味します。または、base を使用する場合は、centos63 などのボックスの名前を直接指定することもできます。その後、vagrant init を実行します。名前を自分で指定する場合は、初期化中にボックスの名前を指定する必要があります。
CentOS-6.3-x86_64-minimal.box は、ボックスに対応するファイル名です。ボックスをローカルに保存するパス、またはボックスをダウンロードできる URL の場合は、Vagrant が自動的に指定します。ダウンロードを開始します。
[vagrant] Downloading with Vagrant::Downloaders::File... [vagrant] Copying box to temporary location... [vagrant] Extracting box... [vagrant] Verifying box... [vagrant] Cleaning up downloaded box...
ボックスを設定した後、現在の作業ディレクトリで
vagrant init
を実行して、対応する Vagrantfile を生成します。テキスト エディターで Vagrantfile を開くと、さらにいくつかの一般的な構成を実行できます:
ネットワーク構成:
Vagrant のネットワークには 3 つのモードがあります
1。より一般的に使用されるのは、仮想マシン内のポートを対応するポートにマッピングするポート マッピングです。ホストマシン上のポートは直接使用され、Vagrantfile で構成されます:
config.vm.network :forwarded_port, guest: 80, host: 8080
guest: 80 は仮想マシンのポート 80 を意味し、host: 8080 はホストにマッピングされたポート 8080 を意味します。
2. 仮想マシンに自由にアクセスする必要があるが、他の人は仮想マシンにアクセスする必要がない場合は、private_network を使用して仮想マシンの IP を設定できます:
config.vm.network :private_network, ip: "192.168.1.104"
192.168.1.104 を表します。仮想マシンの IP、その他 2 つの仮想マシンが相互にアクセスする必要がある場合は、同じネットワーク セグメントに設定できます
3. 仮想マシンを現在の LAN 内のコンピューターとして使用する必要がある場合、LAN DHCP を実行し、Vagrantfile で設定します。
config.vm.network :public_network
ディレクトリ マッピング :
これは開発環境であるため、開発作業は仮想マシン内ではなくローカルで完了する必要があります。仮想マシンはサービスを実行するだけです。そうでないと本末転倒なので、ディレクトリマッピング機能を使用して、ローカルディレクトリを仮想マシンの対応するディレクトリにマッピングする必要があります。
デフォルトでは、現在の作業ディレクトリは仮想マシンの /vagrant ディレクトリにマッピングされます。 もちろん、
などの ln を介して現在のディレクトリ内のファイルにアクセスすることもできます。ln -fs /vagrant/wwwroot /var/www
ディレクトリマッピングを実行するには、自動構成の観点からは、システムに入らずにシステムに入る必要はありません。そのため、ディレクトリマッピングは Vagrant でも実行できます:
config.vm.synced_folder "wwwroot/", "/var/www"
前のパラメータ「wwwroot/」はローカル パスを表し、作業ディレクトリへの相対パスがここで使用されます。また、ここでは絶対パスも使用できます。例: "d:/www/"
の後のパラメータ "/var/www" は、を表します仮想マシン内の対応するマップされたディレクトリ。
スクリプトを実行します:
必須ではありませんが、起動時にいくつかのスクリプトを実行する必要がある場合(環境のインストールまたは一部のサービスの起動は、ディレクトリマッピングの完了後に行う必要があります)、次のように編集できます。次のようなスクリプト (Vagrant ドキュメントから抽出):
#!/usr/bin/env bash apt-get update apt-get install -y apache2 rm -rf /var/www ln -fs /vagrant /var/www
Vagrantfile と同じディレクトリに保存します。ファイル名は一目瞭然です (boot.sh など)。次に、
config.vm.provision :shell, :path => "boot.sh"
を追加します。初めて基本設定が完了したら、vagrant up を使用して仮想マシンを起動できます。仮想マシンが起動したら、vagrant ssh を介して仮想マシンに接続して、さらに環境を設定することができます。 Windows システムでは、vagrant ssh を介して仮想マシンに直接接続することはできません。サードパーティのツールが接続するまで待つ必要があります
接続される IP とポートはネットワークによって異なります。環境設定でポート マッピングがデフォルトで使用される場合、通常はローカル ポート 2222 に接続されます。
登录的帐号密码均为 vagrant ,登录之后如果需要 su root ,密码也是 vagrant
注:使用 vagrant ssh 时,会提示可以使用密钥进行登录,如果需要使用putty进行密钥登录的话,需要下载 puttygen 将 ssh 的密钥转换为 ppk 文件才能使用。
登录ssh完成环境的配置,如果在开发环境中使用webserver(nginx/apache)为了避免一些静态文件处理的问题,可能还需要进行一些额外的配置:Vagrant下共享目录静态文件(js/jpg/png等)“缓存”问题
在不进入虚拟机的情况下,还可以使用下面的命令对 虚拟机进行管理:
vagrant up (启动虚拟机) vagrant halt (关闭虚拟机——对应就是关机) vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用) vagrant resume (恢复虚拟机 —— 与前面的暂停相对应) vagrant destroy (删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留) 当在启动Vagrant后,对于虚拟机有进行过安装环境相关的配置,如果并不希望写在Vagrant的启动shell里面每次都重新安装配置一遍,可以将当前配置好的虚拟机打包成box, vagrant package --output NAME --vagrantfile FILE
可选参数:
--output NAME : (可选)设置通过NAME来指定输出的文件名
--vagrantfile FILE:(可选)可以将Vagrantfile直接封进box中
注:如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:
sudo rm -f /etc/udev/rule.d/70-persistent-net.rules
制作完成之后直接将box文件拿到其他计算机上配置即可使用。
注意点: 1.如果在windows下无法启动,则可以开启box的gui端,这样就可以看到出现什么问题。
开启方法:
修改Vagrantfile文件,添加一下内容:
config.vm.provider :virtualbox do |vb|
vb.gui = true
end
我就遇到了这个问题,虚拟机需要VT虚拟技术支持,所以要开启VT
以上がWindowsでVagrantをインストールする方法と注意点の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。