У меня есть:
- Хост-машина Linux Mint 18.3 (192.168.1.19)
- Гостевая машина VirtualBox Windows Server 2012 с установленной Joomla на IIS8.5+PHP7 (192.168.1.8)
- Гостевая машина VirtualBox Windows Server 2012 с установленным MySql Server 5.7 (192.168.1.12)
Обе виртуальные машины имеют мостовое соединение. Как работает связь:
- Linux может пинговать виртуальные машины Joomla и MySql
- Обе виртуальные машины могут пинговать Linux
- Виртуальные машины не могут пинговать друг друга (не знаю почему)
- Из Linux я могу использовать клиент MySql для подключения к серверу MySql внутри виртуальной машины Windows.
Что мне нужно:
- Мне нужно, чтобы Joomla (установленная на первой виртуальной машине) использовала базу данных, установленную на второй виртуальной машине.
Любая помощь? :)
Поскольку две виртуальные машины не могут взаимодействовать напрямую (почему?), я подумал, что в Joomla configuration.php
я могу установить 192.168.1.19 в качестве хоста базы данных, а на машине Linux я могу перенаправить все соединения MySql с 192.168.1.8 на 192.168.1.12, однако я не знаю, как этого добиться.потому что я провел несколько экспериментов с iptables, но на самом деле не знаю, как использовать его для реализации переадресации.
решение1
Решение, позволяющее виртуальным машинам VirtualBox взаимодействовать друг с другом:
Прежде всего, назначьте новые случайные MAC-адреса сетевым адаптерам двух виртуальных машин (без этого я не смог бы решить эту проблему)
В менеджере VirtualBox перейдите в «Файл», «Настройки», «Сеть», добавьте новую сеть NAT (я назвал ее «JoomlaDatabase») с Network CIDR = 10.0.2.0/24. В сетевых параметрах этого нового созданного NAT отключите DHCP (отключать его не обязательно, но это полезно для максимального контроля и избежания случайных IP-адресов, назначаемых виртуальным машинам).
В настройках обеих виртуальных машин откройте конфигурацию сетевого адаптера и подключите его к «Сети NAT» с именем «JoomlaDatabase».
Выключите виртуальные машины.
Перезапустите виртуальные машины и в настройках TCP/IPv4 введите следующие значения (IP-адреса DNS — это адреса OpenDNS): 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.
Выключите и перезапустите виртуальные машины.
Теперь обе виртуальные машины могут подключаться к Интернету и успешно пинговать друг друга.
Откройте configuration.php Joomla и измените это значение: public $host = '10.0.2.6';
Вот и все: теперь Joomla может использовать сервер базы данных другой виртуальной машины.