GVKun编程网logo

多个子域访问单个 Laravel 实例(多个子域名进同一个ip)

16

在这篇文章中,我们将为您详细介绍多个子域访问单个Laravel实例的内容,并且讨论关于多个子域名进同一个ip的相关问题。此外,我们还会涉及一些关于java–Android:从应用程序中的多个活动访问单

在这篇文章中,我们将为您详细介绍多个子域访问单个 Laravel 实例的内容,并且讨论关于多个子域名进同一个ip的相关问题。此外,我们还会涉及一些关于java – Android:从应用程序中的多个活动访问单个数据库?、Laravel 5.4 api 允许跨域访问、Laravel 5.x设置跨域访问、Laravel 52 $errors 不正常工作 laravel 5 教程 laravel开发教程 laravel怎么的知识,以帮助您更全面地了解这个主题。

本文目录一览:

多个子域访问单个 Laravel 实例(多个子域名进同一个ip)

多个子域访问单个 Laravel 实例(多个子域名进同一个ip)

如何解决多个子域访问单个 Laravel 实例?

我对 Laravel 完全不明智。但不幸的是,就在一周前,我得到了一个基于 Laravel 的项目。我在我的主机上设置并运行它。它运作良好。但现在我需要设置子域并访问 Laravel 项目的同一个实例。

我挣扎着,并以某种方式成功了。现在我的子域可以访问主域 Laravel 实例。

以下是完整的详细信息:

假设我使用 Laravel 安装项目的主域是例如example.com。然后创建另一个子域 sub.example.com 并将它的 DocumentRoot 目录指向我的主域“example.com”

然后我在我的 Laravel 主安装中创建了一个新的 .env 文件,我的子域名称为 .env.sub.example.com,并使用以下代码更新了以下文件 bootstrape/app.PHP 以便它可以读取 {{1} } 文件取决于来自哪个域的请求并相应地提供服务。

.env

一切正常,但会话有问题,我安装的一些模块有冲突。如果有人能指出我的错误或告诉我我错过了什么。

如何将我的单个 Laravel 实例与子域一起使用?

我的 /* |----------------------------------------------- | Load domain-specific .env file if it exists |----------------------------------------------- */ if(isset($_SERVER[''HTTP_HOST'']) && !empty($_SERVER[''HTTP_HOST''])){ $domain = $_SERVER[''HTTP_HOST'']; if (isset($domain)) { $dotenv = Dotenv\Dotenv::createImmutable(base_path(),''.env.''.$domain); try { $dotenv->load(); } catch (\Dotenv\Exception\InvalidpathException $e) { // No custom .env file found for this domain } } } // ... 文件包含这样的路由

routes/web.PHP

解决方法

@Airy,理想情况下,您希望为您的应用程序研究多租户。它更易于维护,而且您无需更新 Laravel 内部结构即可使其正常工作,这是我的建议。

看看一些可能对你有帮助的 Laravel 包:

  1. https://tenancyforlaravel.com/
  2. https://spatie.be/docs/laravel-multitenancy/v2/introduction
  3. https://tenancy.dev/

希望以上内容有所帮助。

java – Android:从应用程序中的多个活动访问单个数据库?

java – Android:从应用程序中的多个活动访问单个数据库?

我有一个todo列表类型的应用程序,将所有的笔记数据存储在一个sqlite3数据库中.应用程序中的每个活动都需要访问数据库来实时编辑数据的不同部分.

目前,我有每个活动都打开自己的DBManager对象(我创建的帮助类来管理数据库).这是引起问题的,我想要一个稍微更全面的访问解决方案,所以我不必继续打开/关闭/创建一个数据库.

我正在考虑几个选择,并希望听到每个人的利弊以及其他建议.

单身风格有一个包装类,它返回对唯一的数据库管理器的引用,所以任何需要它的活动都可以使用它.
>静态管理器.使经理类完全是静态成员,并在加载时打开数据库.任何需要它(任何人都可以)轻松访问.
> 1和2之间的合并.我可以创建一个数据库管理器类来初始化数据库的成员单例实例,所有的数据操作方法都是静态的.那么我甚至不需要参考单身份访问数据库.我最喜欢这个解决方案,请指出缺点.

建议?

解决方法

在我看来,内容提供商是复杂的,如果你不是分享不是你自己的活动,你不需要它.因此,我建议你先使用单例类.那么如果你有更多的时间或需要它,去内容提供商.

我已经成功地使用了一个单身6个月,没有太多的困难. (我很小心,真的让它成为一个单身,但只有一个实例加载数据一次)

独生子

优势:易于实施
优点:因为我使用了一个常见的
我可以实现缓存
很容易,因此使应用程序
不必像数据库那样做
经常
>缺点:不能与外部活动共享您的数据

内容提供商

优势:您可以共享数据
与外部活动
优势:您可以与…集成
搜索API
>缺点:复杂,需要
以不同的方式代表您的数据
办法
>劣势:另一个Android API花时间学习

Laravel 5.4 api 允许跨域访问

Laravel 5.4 api 允许跨域访问

Laravel 5.4 api 允许跨域访问

需求: SPA单页应用请求接口, 报错

XMLHttpRequest cannot load http://api.console.vms3.com/api/user. No ''Access-Control-Allow-Origin'' header is present on the requested resource. Origin ''http://localhost:8080'' is therefore not allowed access.

意思就是服务器响应不允许跨域访问.

那我们就需要让服务器支持跨域访问, 也就是在响应头部中添加

''Access-Control-Allow-Origin: *''

文本使用Laravel 5.4版本

第一步: 创建中间件

创建 `app/Http/Middleware/AccessControlAllowOrigin.php` middleware 把 ''Access-Control-Allow-Origin: *'' 写入头部.

app/Http/Middleware/AccessControlAllowOrigin.php

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class AccessControlAllowOrigin
{
    /**
     *
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        header(''Access-Control-Allow-Origin: *'');
        header("Access-Control-Allow-Credentials: true");
        header("Access-Control-Allow-Methods: *");
        header("Access-Control-Allow-Headers: Content-Type,Access-Token");
        header("Access-Control-Expose-Headers: *");

        return $next($request);
    }

}

第二步: 注册路由

注册这个 middleware 到 kernel 中. 
分别在 protected $middleware  数组中和 protected $routeMiddleware 数组中
添加我们刚才创建的那个文件class名, 使用 `cors` 这个别名.

第三步: 设置中间件保护接口

然后在设置它保护 api , 就是$middlewareGroups[''api''] 的数组中添加它的别名, 本文中是 ''cors''

app/Http/Kernel.php

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application''s global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        \App\Http\Middleware\AccessControlAllowOrigin::class,
    ];

    /**
     * The application''s route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        ''web'' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        ''api'' => [
            ''throttle:60,1'',
            ''bindings'',
            ''cors''
        ],
    ];

    /**
     * The application''s route middleware.
     *
     * These middleware may be assigned to groups or used individually.
     *
     * @var array
     */
    protected $routeMiddleware = [
        ''auth'' => \Illuminate\Auth\Middleware\Authenticate::class,
        ''auth.basic'' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        ''bindings'' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ''can'' => \Illuminate\Auth\Middleware\Authorize::class,
        ''guest'' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        ''throttle'' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        ''cors'' => \App\Http\Middleware\AccessControlAllowOrigin::class,
    ];
}

Laravel 5.x设置跨域访问

Laravel 5.x设置跨域访问

做api接口的时候碰到个问题,跨域!
解决方法有很多,但是方便的依旧那么一两个,这里我就介绍我最会的就是以下这种

最方便的,新建一个middleWare,把这个middleware加入到全局中间件,所有的请求,都会经过这个中间件的过滤。

php artisan make:middleware CrossHttp

然后就会在appHttpMiddlewareCrossHttp.php这个中间件,在handle方法里面添加如下代码:

public function handle($request, Closure $next) {
        $response = $next($request);
        $response->header(''Access-Control-Allow-Origin'', ''*'');
        $response->header(''Access-Control-Allow-Headers'', ''Origin, Content-Type, Cookie, Accept'');
        $response->header(''Access-Control-Allow-Methods'', ''GET, POST, PATCH, PUT, OPTIONS'');
       $response->header(''Access-Control-Allow-Credentials'', ''true'');  //ession共享的需求才用到
        return $response;
    }
   
 

这个*意思就是允许所有域名来访问这个接口。
到这里还没完,中间件建立了,我们还要加到appHttpKernel.php里面去,不然不能生效。

clipboard.png

Laravel 52 $errors 不正常工作 laravel 5 教程 laravel开发教程 laravel怎么

Laravel 52 $errors 不正常工作 laravel 5 教程 laravel开发教程 laravel怎么

as of 5.2, routes.php is by default already called in the context of a [‘middleware’=>’web’] by routeserviceprovider. but in routes.php default generation of auth routes, the route::group call is still happening by default - so if you delete that route::group declaration from routes.php the application then correctly shows errors.

http://stackoverflow.com/questions/34438463/laravel-5-2-errors-not-appearing-in-blade/36253445#36253445?newreg=d2be163070544c9faa15d63a39c84a21

'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了Laravel 52 $errors 不正常工作,包括了laravel,error方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

今天关于多个子域访问单个 Laravel 实例多个子域名进同一个ip的介绍到此结束,谢谢您的阅读,有关java – Android:从应用程序中的多个活动访问单个数据库?、Laravel 5.4 api 允许跨域访问、Laravel 5.x设置跨域访问、Laravel 52 $errors 不正常工作 laravel 5 教程 laravel开发教程 laravel怎么等更多相关知识的信息可以在本站进行查询。

本文标签: