请问如何远程访问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. 您实际得到的结果?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

是网络问题,和laravel无关

2个月前 评论
讨论数量: 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 即可

2个月前 评论

php artisan serve --host=0.0.0.0

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

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

2个月前 评论
LMZ-ZH (楼主) 2个月前
LMZ-ZH (楼主) 2个月前
kis龍 (作者) 2个月前
sanders

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

2个月前 评论
LMZ-ZH (楼主) 2个月前

免费FRP: freefrp.net/

Sakura frp: www.natfrp.com/

都有免费frp

2个月前 评论

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

file

2个月前 评论

是网络问题,和laravel无关

2个月前 评论

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