Как заставить Joomla и MySql взаимодействовать на отдельных машинах VirtualBox?

Как заставить Joomla и MySql взаимодействовать на отдельных машинах VirtualBox?

У меня есть:

  • Хост-машина 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 взаимодействовать друг с другом:

  1. Прежде всего, назначьте новые случайные MAC-адреса сетевым адаптерам двух виртуальных машин (без этого я не смог бы решить эту проблему)

  2. В менеджере VirtualBox перейдите в «Файл», «Настройки», «Сеть», добавьте новую сеть NAT (я назвал ее «JoomlaDatabase») с Network CIDR = 10.0.2.0/24. В сетевых параметрах этого нового созданного NAT отключите DHCP (отключать его не обязательно, но это полезно для максимального контроля и избежания случайных IP-адресов, назначаемых виртуальным машинам).

  3. В настройках обеих виртуальных машин откройте конфигурацию сетевого адаптера и подключите его к «Сети NAT» с именем «JoomlaDatabase».

  4. Выключите виртуальные машины.

  5. Перезапустите виртуальные машины и в настройках 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.

  6. Выключите и перезапустите виртуальные машины.

  7. Теперь обе виртуальные машины могут подключаться к Интернету и успешно пинговать друг друга.

  8. Откройте configuration.php Joomla и измените это значение: public $host = '10.0.2.6';

Вот и все: теперь Joomla может использовать сервер базы данных другой виртуальной машины.

Связанный контент