나는 가지고있다:
- Linux Mint 18.3 호스트 머신(192.168.1.19)
- IIS8.5+PHP7(192.168.1.8)에 Joomla가 설치된 VirtualBox Windows Server 2012 게스트 시스템
- MySql Server 5.7이 설치된 VirtualBox Windows Server 2012 게스트 머신(192.168.1.12)
두 가상 머신 모두 브리지 연결이 있습니다. 커뮤니케이션 작동 방식:
- Linux는 Joomla 및 MySql 가상 머신을 ping할 수 있습니다.
- 두 가상 머신 모두 Linux를 ping할 수 있습니다.
- 가상 머신은 서로 ping할 수 없습니다(이유는 모르겠습니다).
- Linux에서는 MySql 클라이언트를 사용하여 Windows 가상 머신 내부의 MySql 서버에 연결할 수 있습니다.
내가 필요한 것:
- 첫 번째 가상 머신에 설치된 Joomla가 두 번째 가상 머신에 설치된 데이터베이스를 사용해야 합니다.
도움이 필요하세요? :)
두 가상 머신이 직접 통신할 수 없기 때문에(왜?) Joomla에서는 configuration.php
192.168.1.19를 데이터베이스 호스트로 설정할 수 있고 Linux 머신에서는 모든 MySql 연결을 192.168.1.8에서 192.168.1.12로 전달할 수 있다고 생각했습니다. 그러나 나는 그것을 달성하는 방법을 모른다.iptables로 몇 가지 시험을 해봤지만 전달을 실현하기 위해 이를 사용하는 방법을 실제로 모르기 때문입니다.
답변1
VirtualBox 가상 머신이 서로 통신하도록 만드는 솔루션:
먼저 두 가상 머신의 네트워크 어댑터에 새로운 무작위 MAC 주소를 할당합니다. (그렇지 않으면 이 문제를 해결할 수 없었습니다.)
VirtualBox 관리자에서 "파일", "기본 설정", "네트워크"로 이동하여 네트워크 CIDR = 10.0.2.0/24를 사용하여 새 NAT 네트워크(저는 "JoomlaDatabase"로 명명)를 추가합니다. 새로 생성된 NAT의 네트워크 옵션에서 DHCP를 비활성화합니다(비활성화할 필요는 없지만 제어를 최대화하고 가상 머신에 할당된 임의 IP 주소를 방지하는 데 유용합니다).
두 가상 머신의 설정에서 네트워크 어댑터 구성을 열고 이를 "JoomlaDatabase"라는 "NAT 네트워크"에 연결합니다.
가상 머신의 전원을 끕니다.
가상 머신을 다시 시작하고 TCP/IPv4 설정에 다음 값을 삽입합니다(DNS IP는 OpenDNS IP임). IP 주소 = 10.0.2.5(Joomla) 또는 10.0.2.6(MySQL); 서브넷 마스크 = 255.255.255.0; 게이트웨이 = 10.0.2.1; DNS 1 = 208.67.222.222; DNS 2 = 208.67.220.220.
전원을 끈 다음 가상 머신을 다시 시작합니다.
이제 두 가상 머신이 모두 인터넷에 연결되어 서로 성공적으로 ping할 수 있습니다.
Joomla의 Configuration.php를 열고 다음 값을 변경하십시오: public $host = '10.0.2.6';
그게 전부입니다. 이제 Joomla는 다른 가상 머신의 데이터베이스 서버를 사용할 수 있습니다.