웹 개발을 위해서는 로컬 개발 환경 구축이 필수입니다. 현재 다양한 스크립트에 해당하는 Windows 버전이 있고 심지어 원클릭 설치 패키지도 있지만 Windows 환경과의 호환성이 그다지 좋지 않아 실제로 여러 가지 문제가 발생합니다. 배포 환경은 일반적으로 Linux이며 개발 환경과 배포 환경 간의 불일치에 자주 직면하고 온라인에 가기 전에 많은 디버깅이 필요합니다.
Windows에서 Linux를 플레이하려면 가상 머신이 필요하지만 시스템을 설치하는 것은 여전히 꽤 번거로운 작업입니다. 오늘날 모든 것이 자동화되면 Vagrant는 Ruby를 기반으로 개발되었으며 플랫폼 전반에 쉽게 배포할 수 있는 가상화 지원으로 오픈 소스 VirtualBox를 사용합니다.
오늘 여러 머신의 환경을 Vagrant로 변경해보았는데 매우 편안하고 매끄러웠습니다. 개인적으로 CentOS를 실행하면 메모리가 60MB 미만으로 매우 강력하다는 것을 알았습니다.
아래에는 설치 단계와 주의할 사항이 설명되어 있습니다!
준비:
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 Minimal을 다운로드했습니다. 이 상자는 개인 상황에 따라 선택할 수 있습니다.
환경 설정:
설치가 완료되고 시스템이 다시 시작되면 환경 설정을 시작할 수 있습니다.
먼저 로컬에서 작업 디렉터리를 생성하고 명령줄에서 해당 디렉터리로 전환합니다.
vagrant box add base CentOS-6.3-x86_64-minimal.box
base는 기본 상자를 지정하는 것을 의미하거나, centos63과 같이 상자 이름을 지정할 수 있습니다. vagrant init 초기화 이후에는 이름을 직접 지정하는 경우 초기화 시 상자 이름을 지정해야 합니다.
CentOS-6.3-x86_64-minimal.box는 상자에 해당하는 파일 이름입니다. 이는 상자를 로컬에 저장하는 경로일 수도 있고, 상자를 다운로드할 수 있는 URL일 수도 있습니다. 다운로드를 시작하세요.
[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의 네트워크에는 세 가지 모드가 있습니다
1. 가장 일반적으로 사용되는 것은 가상 머신의 포트를 해당 포트에 매핑하는 포트 매핑입니다. 포트는 Vagrantfile에서 직접 사용되며 구성됩니다.
config.vm.network :forwarded_port, guest: 80, host: 8080
guest: 80은 가상 머신의 포트 80을 의미하고, 호스트: 8080은 호스트에 매핑된 포트 8080을 의미합니다.
2. 자유롭게 가상 머신에 액세스해야 하지만 다른 사람은 가상 머신에 액세스할 필요가 없는 경우 private_network를 사용하여 가상 머신의 IP를 설정할 수 있습니다:
config.vm.network :private_network, ip: "192.168.1.104"
192.168.1.104 가상 머신의 IP, 더보기 두 개의 가상 머신이 서로 액세스해야 하는 경우 동일한 네트워크 세그먼트에 설정할 수 있습니다
3. 현재 LAN에서 가상 머신을 컴퓨터로 사용해야 하는 경우, LAN DHCP를 수행한 다음 Vagrantfile에서 구성합니다.
config.vm.network :public_network
디렉토리 매핑:
개발 환경이므로 개발 작업은 가상 머신이 아닌 로컬에서 완료되어야 합니다. 가상 머신은 서비스를 실행할 수 있습니다. 그렇지 않으면 카트가 말 앞에 놓이게 되므로 디렉터리 매핑 기능을 사용하여 로컬 디렉터리를 가상 머신의 해당 디렉터리에 매핑해야 합니다.
기본적으로 현재 작업 디렉터리는 가상 머신의 /vagrant 디렉터리에 매핑됩니다. 현재 디렉터리의 파일은 /vagrant 아래에서 직접 액세스할 수 있습니다. 물론
와 같은 소프트 연결도 만들 수 있습니다.ln -fs /vagrant/wwwroot /var/www
디렉터리 매핑을 수행하려면 물론 자동화된 구성 관점에서 볼 때 시스템에 들어가지 않고 시스템에 들어갈 필요가 없기 때문에 Vagrant에서도 디렉터리 매핑을 수행할 수 있습니다:
config.vm.synced_folder "wwwroot/", "/var/www"
이전 매개변수 "wwwroot/" 로컬 경로를 나타내며 작업 디렉터리에 대한 상대 경로가 여기에 사용되며 절대 경로도 여기에서 사용할 수 있습니다. 예: "d:/www/"
뒤의 매개변수 "/var/www"는 다음을 나타냅니다. 가상 머신의 해당 매핑된 디렉터리.
스크립트 실행:
꼭 필요하지는 않지만 시작 시 일부 스크립트를 실행해야 하는 경우(환경 설치 또는 일부 서비스 시작은 디렉터리 매핑이 완료된 후 수행해야 함) 편집할 수 있습니다. 다음과 유사한 스크립트(Vagrant Document에서 발췌):
#!/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을 사용하여 가상 머신을 시작할 수 있습니다.
Bringing machine 'default' up with 'virtualbox' provider... [default] Setting the name of the VM... [default] Clearing any previously set forwarded ports... [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Preparing network interfaces based on configuration... [default] You are trying to forward to privileged ports (ports < = 1024). Most operating systems restrict this to only privileged process (typicallyprocesses running as an administrative user). This is a warning in case the port forwarding doesn't work. If any problems occur, please try a port higher than 1024. [default] Forwarding ports... [default] -- 22 => <strong>2222</strong> (adapter 1) [default] -- 80 => 8080 (adapter 1) [default] Booting VM... [default] Waiting for VM to boot. This can take a few minutes. [default] VM booted and ready for use! [default] The guest additions on this VM do not match the installed version of VirtualBox! In most cases this is fine, but in rare cases it can cause things such as shared folders to not work properly. If you see shared folder errors, please update the guest additions within the virtual machine and reload your VM. Guest Additions Version: 4.1.18 VirtualBox Version: 4.2 [default] Mounting shared folders... [default] -- /var/www [default] -- /vagrant [default] Running provisioner: shell...
가상 머신이 시작된 후 추가 환경 구성을 위해 vagrant ssh를 통해 가상 머신에 연결할 수 있습니다. 소프트웨어 설치 관련 작업 Windows 시스템에서는 vagrant ssh를 통해 직접 가상 머신에 연결할 수 없습니다. Putty 또는 Xshell을 사용해야 합니다. 타사 도구가 연결될 때까지 기다리세요
🎜연결된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!