从Android应用程序连接到本地后端

use*_*140 5 android apache2 local httpd.conf

我有我的Laravel后端,我试图从Android应用程序连接到.我的主机文件有

   127.0.0.1    my.backend.test
Run Code Online (Sandbox Code Playgroud)

我后端的httpd conf文件是

<VirtualHost *:80>
ServerName      my.backend.test
DocumentRoot    /var/www/mybackend.co.uk/code/public/
DirectoryIndex  index.php
RewriteEngine   On
ErrorLog        /var/www/mybackend.co.uk/code/storage/logs/apache_error.txt

Header set Access-Control-Allow-Origin "http://localhost:4200"

<Directory /var/www/mybackend.co.uk/code/public/>
    AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)

我可以从谷歌ARC 访问http://my.backend.test/api/some-route,但不能从我的手机访问.我似乎必须使用我的本地IP地址,但我不明白如何设置它.

我尝试添加

<VirtualHost 192.168.my.ip:8080>
ServerName      my.mobilebackend.test
DocumentRoot    /var/www/mybackend.co.uk/code/public/
DirectoryIndex  index.php
RewriteEngine   On
ErrorLog        
/var/www/mybackend.co.uk/code/storage/logs/apache_error.txt

<Directory /var/www/mybackend.co.uk/code/public/>
     AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)

到httpd conf和

192.168.my.ip my.mobilebackend.test
Run Code Online (Sandbox Code Playgroud)

主持人

bwt*_*bwt 2

如果我理解正确的话:您可以从同一网络上的不同计算机访问您的服务器(因此这不是防火墙问题),但前提是您使用名称(添加在客户端的主机文件中)而不是 IP 地址。

您的配置是第一个虚拟主机吗?apache 搜索ServerName与查询中提供的名称(例如 URL)相匹配的名称,然后返回到第一个,在您的情况下是 ubuntu 主页。

作为测试,如果您使用会发生什么

ServerName      192.168.0.1 (i.e. the IP used in the URL)
Run Code Online (Sandbox Code Playgroud)

我认为如果您通过 IP 地址访问服务器,但不再通过名称访问服务器,那么它会起作用