请问如何远程访问Laravel?

1. 运行环境

Linux i7-6700HQ 8GBRAM

1). 当前使用的 Laravel 版本?

9.52.15
//: <> (使用 php artisan --version 命令查看)

2). 当前使用的 php/php-fpm 版本?

PHP 版本:
8.0.28
//: <> (使用 php --version 命令查看 php 版本)

php-fpm 版本:
master
//: <> (代码里 phpinfo 函数,然后页面访问查看 php-fpm 版本)
//: <> (如不方便使用 phpinfo 函数 ,使用 ps aux | grep php-fpm.conf 命令查)
//: <> ( 看 php-fpm 版本。如有多个,请以 nginx 站点配置为准。)

3). 当前系统

openEuler22.03LTS
//: <> (期待数值 Windows 10 / Ubuntu 20.4 / CentOS 8 )

4). 业务环境

开发环境
//: <> (期待信息 开发环境生产环境)
//: <> (是否使用负载均衡?请提供相关信息)

5). 相关软件版本

nginx 1.21.5
//: <> (提供相关软件的版本,如 Nginx 、MySQL、MongoDB 等)

2. 问题描述?

不管是使用php artisan serve还是php artisan octane:start启用服务 laravel只能本地访问 无法局域网或远程访问 请问如何解决?

3. 您期望得到的结果?

4. 您实际得到的结果?

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

是网络问题,和laravel无关

1年前 评论
讨论数量: 10
jcc123

外网访问可以使用ngork或frp一类的穿透软件。

如果想使用PHP的话。推荐最近写的一个包bridge

install

composer require reactphp-framework/bridge dev-master -vvv

server

  • 服务端开启 8010和8080端口
    • 8010 用于和客户端通信,8080用于外网访问

server.php

require __DIR__ . '/vendor/autoload.php';

use Reactphp\Framework\Bridge\Server;
use Reactphp\Framework\Bridge\Pool;
use Reactphp\Framework\Bridge\Verify\VerifyUuid;
use Reactphp\Framework\Bridge\Http\HttpBridge;
use Reactphp\Framework\Bridge\WebSocket\WsBridge;
use Reactphp\Framework\Bridge\Tcp\TcpBridge;
use Reactphp\Framework\Bridge\BridgeStrategy;
use Reactphp\Framework\Bridge\Io\Tcp;
use Reactphp\Framework\Bridge\Business\PortToPort;

// Server::$debug = true;

$server = new Server(new VerifyUuid([
    '60ad7c87-ac44-4ad8-b731-9c916465e565'
]));

$server->enableKeepAlive(10);

$pool = new Pool($server, [
    'max_connections' => 20,
    'connection_timeout' => 2,
    'uuid_max_tunnel' => 1,
    'keep_alive' => 5,
    'wait_timeout' => 3
]);

new Tcp('0.0.0.0:8010' , new BridgeStrategy([
    new TcpBridge($server),
    new HttpBridge(new WsBridge($server))
]));
(new PortToPort($pool))
    ->from(null, '8080', function ($data) {
        return $data;
    })
    ->to(
        '60ad7c87-ac44-4ad8-b731-9c916465e565',
        '127.0.0.1:8080',
        function ($data) {
            return $data;
        }
    )->start();
php server.php

client

client.php

<?php

require __DIR__ . '/vendor/autoload.php';

use Reactphp\Framework\Bridge\Client;

// Client::$debug = true;
// Client::$secretKey = '123456';
$client = new Client('server_ip:8010', '60ad7c87-ac44-4ad8-b731-9c916465e565');
$client->start();
php client.php

访问

http://server_ip:8080 即可

1年前 评论

php artisan serve --host=0.0.0.0

单独设置 ip,可局域网访问

需要公网访问的话,加个内外穿透, frp

1年前 评论
LMZ-ZH (楼主) 1年前
LMZ-ZH (楼主) 1年前
kis龍 (作者) 1年前
sanders

楼上说的都对,我加个检查点:查查网络通不通?比如尝试下能否访问这台机器的其他服务?

1年前 评论
LMZ-ZH (楼主) 1年前

免费FRP: freefrp.net/

Sakura frp: www.natfrp.com/

都有免费frp

1年前 评论

先请求到nginx再转发到本地IP,我使用swoole加速就是这样弄的

file

1年前 评论

是网络问题,和laravel无关

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!