因此我遵循了一些指南并设法启动了服务器,但由于某种原因,它只能通过我的笔记本电脑(Windows 和 ubuntu 虚拟机)上的本地主机访问,当我尝试通过桌面上的 ip 访问时,它不起作用,即使它们在同一个网络上,我关闭了 Windows 和 ubuntu 上的防火墙以防万一。
这是我的 port.conf 文件的样子
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
sites-available 上的 myapp.conf 文件如下所示:
<VirtualHost *:80>
ServerName 10.0.2.15
DocumentRoot /home/david/myapp/public
RailsEnv development
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/home/david/myapp/public">
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
apache2.conf 文件是默认文件,唯一的区别是我必须添加乘客模块才能使其与 rails 一起工作
LoadModule passenger_module /home/david/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/passenger-5.1.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/david/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/passenger-5.1.2
PassengerDefaultRuby /home/david/.rbenv/versions/2.4.0/bin/ruby
</IfModule>
知道为什么我不能仅从本地主机通过其 IP 地址访问服务器吗?
答案1
我建议在 virtualbox 中使用“桥接适配器”设置,这将为虚拟机提供 LAN 上的真实地址,然后您可以在路由器中将端口 80 转发给它,以允许外界访问。