Python Vagrant-从主机访问django服务器

Python Vagrant-从主机访问django服务器,python,django,vagrant,Python,Django,Vagrant,我使用puphpetconfigurator设置了一个vagrant VM,我安装了许多编程语言,包括PHP、python、ruby等。我为PHP项目安装了apache2和mysql,但它的django,我确实需要启动并运行。以下是配置文件中定义网络IP和主机名的部分: machines: vflm_zpwmfbk4aw05: id: machine1 host

我使用
puphpet
configurator设置了一个vagrant VM,我安装了许多编程语言,包括PHP、python、ruby等。我为PHP项目安装了
apache2
mysql
,但它的
django
,我确实需要启动并运行。以下是配置文件中定义网络IP和主机名的部分:

            machines:
                vflm_zpwmfbk4aw05:
                    id: machine1
                    hostname: machine1.puphpet
                    network:
                        private_network: 192.168.56.101
                        forwarded_port:
                            vflmnfp_pjysbxl944a0:
                                host: '9346'
                                guest: '22'
                    memory: '2000'
                    cpus: '1'
当我向上游荡时然后将我的主机浏览器指向
192.168.56.101
我会看到一个空白屏幕。这意味着它连接到某个东西,否则我会得到一个404屏幕

我了解到,要从主机访问django服务器,您需要运行以下命令:

python manage.py runserver 0.0.0.0:8000
但是当我把浏览器指向192.168.56.101:8000时,我看到了404屏幕

以下是
/etc/hosts
文件中的内容:

127.0.0.1       machine1.puphpet        machine1
127.0.0.1       localhost
127.0.1.1       vagrant.vm      vagrant
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.3.3     myhost.dev
我手动添加了最后一行
192.168.3.3 myhost.dev
,因为我决定更改默认安装的设置,但它不起作用

以下是接口文件:

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp
pre-up sleep 2
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
auto enp0s8
iface enp0s8 inet static
      address 192.168.56.101
      netmask 255.255.255.0
#VAGRANT-END

apache2是否与djangos服务器冲突?有没有一种方法可以确切地了解VM中有哪些IP和端口可用

我明白了。这一切都是关于端口转发。我安装的此VM具有错误的端口转发设置:


主机端口为7280,来宾端口为22。这意味着我必须在端口22上运行VMs django服务器,并将主机浏览器指向端口7280。这不起作用,因为端口22是保留的,所以我无法在其上运行django服务器。解决方案是添加额外的端口转发规则。8000行。因此,将来宾端口和主机端口都设置为8000,我可以在端口8000上运行服务器,然后通过端口8000上的主机访问它

我明白了。这一切都是关于端口转发。我安装的此VM具有错误的端口转发设置:


主机端口为7280,来宾端口为22。这意味着我必须在端口22上运行VMs django服务器,并将主机浏览器指向端口7280。这不起作用,因为端口22是保留的,所以我无法在其上运行django服务器。解决方案是添加额外的端口转发规则。8000行。因此,将来宾端口和主机端口都设置为8000,我可以在端口8000上运行服务器,然后通过端口8000上的主机访问它

如果您不确定自己在做什么,请始终遵循以下步骤:首先,确保它在VM中工作-启动django并连接到它(使用wget或curl)以确保您可以在本地访问它。其次,修复主机的网络问题,您不能在主机文件中添加所需的IP和名称。在您的示例“192.168.56.101”和“machine1.puphpet”中,它必须是主机名为“192.168.56.101”的虚拟机的IP。如果要更改这些值,必须在配置yaml文件中更改。如果您不确定要执行的操作,始终遵循以下步骤:首先,确保它在您的VM中工作-启动django并连接到它(使用wget或curl)以确保您可以在本地访问它。其次,修复主机的网络问题,您不能在主机文件中添加所需的IP和名称。在您的示例“192.168.56.101”和“machine1.puphpet”中,它必须是主机名为“192.168.56.101”和“machine1.puphpet”的VM的IP。如果要更改这些值,必须在配置文件中更改