GVKun编程网logo

Laravel如何在本地搭建多站点前言方案实现完成(laravel部署)

20

如果您对Laravel如何在本地搭建多站点前言方案实现完成感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于Laravel如何在本地搭建多站点前言方案实现完成的详细内容,我们还

如果您对Laravel如何在本地搭建多站点前言方案实现完成感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于Laravel如何在本地搭建多站点前言方案实现完成的详细内容,我们还将为您解答laravel部署的相关问题,并且为您提供关于1.14 在本地搭建一个论坛及虚拟机搭建web站点、9.6 使用Tectonic在本地搭建多节点K8S集群、kubernetes (二):通过 Tectonic 在本地搭建多节点 k8s 集群、Laravel 8 查询在本地工作但不在服务器上的有价值信息。

本文目录一览:

Laravel如何在本地搭建多站点前言方案实现完成(laravel部署)

Laravel如何在本地搭建多站点前言方案实现完成(laravel部署)

下面由Laravel框架教程栏目给大家介绍Laravel在本地搭建多站点,希望对需要的朋友有所帮助!

前言

最近的想法挺多的,又想做这个又想做那个.但是碰到一个很难受的问题就是:

  1. 没有整理好历来所有的代码,没有一个存储的路径或方案.
  2. 没有对这些代码进行统一的管理方案.

所以对我来说,眼下最要紧的事,就是先整理好代码,然后开发出一套属于自己的本地化管理工具.

这个工具目前暂定为Laravel进行开发.采用的是前后端分离的策略,以便日后多端可以有相应的api进行使用.

然后我也不是特别喜欢多开好几个Laravel进行开发,所以一个Laravel框架中,同时包含多域名也是成为一个主要的问题之一.

今天我就好好的记录下,我用Laravel在本地化进行多域名的设置.其实架设到其他的系统其实都差不多的.

方案

目前决定先分为两个域名.

一个是API的接口域名,我定为: api.hellolux.com

一个是后台管理域名,我定为: admin.hellolux.com

实现

在Controller层新增文件夹

在app\Http\Controllers目录下,新增两个文件夹,分别为Api和Admin.

修改RouteServiceProvider.PHP文件

在app\Providers\RouteServiceProvider.PHP中,修改

# 新增项目名称的命名空间
protected $AdminNamespace = 'App\Http\Controllers\Admin';
protected $ApiNamespace = 'App\Http\Controllers\Api';

public function map()
{
    # 根据项目名称定义路由
    $this->mapApiRoutes();
    $this->mapAdminRoutes();
}

# 新增两个方法
protected function mapAdminRoutes()
{
    Route::group([
        'domain' => config('app.admin_domain'),
        'namespace' => $this->AdminNamespace,
    ], function ($router) {
        require base_path('routes/admin.PHP');
    });
}
protected function mapApiRoutes()
{
    Route::group([
        'domain' => config('app.api_domain'),
        'namespace' => $this->ApiNamespace,
    ], function ($router) {
        require base_path('routes/api.PHP');
    });
}

在config/app.PHP新增

'api_domain' => env('API_DOMAIN', 'api.hellolux.com'),
'admin_domain' => env('ADMIN_DOMAIN', 'admin.hellolux.com'),

在.env中新增

API_DOMAIN=api.hellolux.com
ADMIN_DOMAIN=admin.hellolux.com

在routes目录下,新增api.PHP和admin.PHP两个文件

# api.PHP
use Illuminate\Http\Request;

Route::get('/', IndexController@index);



# admin.PHP
use Illuminate\Http\Request;

Route::get('/', IndexController@index);

在/etc/hosts中增加域名

# Local_Manage
127.0.0.1   api.hellolux.com
127.0.0.1   admin.hellolux.com

/etc/apache2/http.conf中取消vhosts注释

Include /private/etc/apache2/extra/httpd-vhosts.conf

在/etc/apache2/extra/httpd-vhosts.conf中,新增

<VirtualHost *:80>
    ServerAdmin hellolux@163.com
    DocumentRoot /Users/hellolux/Documents/Github/Local_Manage/public
    ServerName hellolux
    ServerAlias *.hellolux.com
    ErrorLog /Users/hellolux/Documents/Github/Local_Manage/logs/error.log
    CustomLog /Users/hellolux/Documents/Github/Local_Manage/logs/access.log common
</VirtualHost>

重启apache

sudo apachevtl restart

完成

浏览器打开admin.hellolux.com和api.hellolux.com分别会显示具体的页面了.

1.14 在本地搭建一个论坛及虚拟机搭建web站点

1.14 在本地搭建一个论坛及虚拟机搭建web站点

实验:在本地搭建一个论坛: 
  准备:web集成环境:PHPstudy
    百度搜(有漏洞)下载PHP 2018(功能强)——安装文件夹英文(系统服务)
    cmd——打开服务窗口services.msc
    其他选项——查看PHP探针
    安装目录下PHP/www 存放网站
  下载cms(内容管理系统)
  discuz.net(论坛网站) 3.4正式下载——Gitee——选择简体utf-8——登录
    解压——拿取upload剪贴——复制到www——改文件名discuz
    访问127.0.0.1/discuz/index.PHP——全新安装
  打开PHP创建数据库discuz
  127.0.0.1——安装数据库
  进入论坛
  admin.PHP 后台管理
    google搜索intitle"登录管理中心"——回到本地输入账号密码——可以修改服务器配置

 

 

 

虚拟机搭建web站点

windows server 2003
Windows server2008
Windows server2016

 

2003:  俩镜像——密钥BXJ7B-XJ4RP-YYPCX-RXP2K-TKTBB——全名adminstrator
    无效:找镜像 f2——ctl+c搜索激活
    源码下载:百度搜索源码之家(或ASP源码)

实验2:搭建ASP的学校网站
  下载源码
  2003中win系统,开始管理服务器——添加或删除角色——下一步——自定义下一步——应用程序服务器——两个勾选——    下一步——正在安装IIS
    虚拟机设置,使用镜像文件另一个——确定
    管理工具—interestnet web服务
    源码下载:百度源码之家—第一个--(或者百度ASP源码)
    找到搭建网站的源码
  c盘新建文件夹——外面源码Xschool放到虚机2003
  internet信息管理器——网站新建——ip地址,本地 端口号80,选择匿名
  网络访问权限全选等等
  访问http://虚拟机ip——为建设中——删除默认

  Xchool配置:
    右键权限—添加—e—evarone -确定—属性—主目录—执行权限纯脚本配置—选项—勾选启用父路径—调试两个勾  选确定—文档—启用默认全删除点击添加,根据之前源码文件查看index.asp—应用确定
    Web服务扩展—第三个active允许—浏览网站还是建设中-xshool右键选择浏览可以看到
    去浏览器搜索网站绑定的ip地址

9.6 使用Tectonic在本地搭建多节点K8S集群

9.6 使用Tectonic在本地搭建多节点K8S集群

使用Tectonic搭建K8S集群

# 这种使用方式已被废弃,涉及到的资源已经在官网无法下载
# 通过老师提供的安装包 https://gitlab-demo.com/xiaoquwl/docker-k8s-devops/tree/master/chapter9/tectonic-sandbox-1.7.5-tectonic.1 来安装遇到了各种坑。。。。。
https://coreos.com/tectonic/docs/latest/tutorials/sandbox/install.html

有需要的可以使用Kubeadm:https://www.imooc.com/article...

获取集群列表

kubectl config get-clusters
NAME
minikube

如果我们想通过kubectl管理多个集群,可以将多个集群的config文件合并到~/.kube/config文件中

关于config合并的规则:https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/

contexts 操作

获取当前的contexts

kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* minikube minikube minikube
  vagrant    vagrant    kubelet

切换contexts

kubectl config use-context vagrant

查看contexts

kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
  minikube minikube minikube
* vagrant vagrant kubelet

kubernetes (二):通过 Tectonic 在本地搭建多节点 k8s 集群

kubernetes (二):通过 Tectonic 在本地搭建多节点 k8s 集群

 

下载文件

 

 我的环境是 window 系统 (要安装 vagrant 和 virtualbox)

通过 vagrantfile 创建

 

 在当前目录运行  vagrant up 就可以了

会通过 virtualbox 创建两台机器

 

 

 

过程大约半小时  示网络情况而定

 

合并配置文件方便管理(因为之前用 minikube 部署过了一个 k8s 集群),如下把 tectonic 的配置文件合并到 C:\Users\Administrator\.kube 下的 config

 

合并前配置:

 

 

我的 tectonic 搭建的 k8s 集群配置文件路径

内容为:

 

合并后的为:

 

 

切换集群:

使用 kubectl config  use-context tectonic

可以看到集群切换到 tectonic 了

 

Laravel 8 查询在本地工作但不在服务器上

Laravel 8 查询在本地工作但不在服务器上

如何解决Laravel 8 查询在本地工作但不在服务器上?

我正在调试 Laravel 8 应用程序上的 API 调用,该应用程序在标头中使用 _token 参数。以下查询在本地返回结果:

$user= User::where(''_token'',$token)->first();

但不是在生产中。本地环境和生产环境都连接到同一个数据库(AWS RDS aurora MysqL)。

我想知道是什么导致了这个问题,或者如何调试它。谢谢

本地

Local Server

生产

Production Server

代码

function getJson($fileName,Request $request){
        $user=$this->verifyToken($request->header(''_token''));
        if(!isset($user->id)){  
            return response()->json([''error_code''=>''201'',"error_message" => ''please enter valid user token'']); 
        }
        try {
            $data=[];
            $files = File::allFiles(public_path(''json-data/''.$fileName)); 

            foreach($files as $path){
                          // print_r($path);
                $file = pathinfo($path);
                $dirname= $file[''dirname''] ;
                $basename= $file[''basename''] ;
                $extension= $file[''extension''] ;
                $filename= $file[''filename''] ;

                if($fileName==''general''){
                    $data=  json_decode(strtolower(file_get_contents(public_path(''json-data/''.$fileName.''/''.$basename))));
                }else{
                    $d=(array)json_decode(strtolower(file_get_contents(public_path(''json-data/''.$fileName.''/''.$basename))));
                    $d=array_unique($d);
                    $data=  (array_merge($data,$d)); 
                }

            }                
                       // $data=(array)$data;
            return response()->json([''error_code''=>200,"error_message" => '''',''data''=>  ($data)]);
        } catch (\Exception $e) {
            return response()->json([''error_code''=>''204'',"error_message" => $e->getMessage()]);
        }
    }

      

public function verifyToken($token=''''){
            try {
                if($token != ''''){
                    $user= User::where(''_token'',$token)->first();
                    return $user;
                }
            } catch (\Exception $e) {
                return [''error_code''=>''204'',"error_message" => $e->getMessage()];

            }
          }

路线

Route::post(''get-json/{fileName}'',''apiController@getJson'');

解决方法

解决方案

以防它对任何人有帮助。检查生产中的值有助于调试问题。标题名称有下划线。 _token 删除 _ 或通过参数传递 _token 可以解决该问题。显然 AWS Beanstalk 不接受标题中的下划线。

相关问题 Elastic Beanstalk doesn''t accept headers from Axios

我们今天的关于Laravel如何在本地搭建多站点前言方案实现完成laravel部署的分享已经告一段落,感谢您的关注,如果您想了解更多关于1.14 在本地搭建一个论坛及虚拟机搭建web站点、9.6 使用Tectonic在本地搭建多节点K8S集群、kubernetes (二):通过 Tectonic 在本地搭建多节点 k8s 集群、Laravel 8 查询在本地工作但不在服务器上的相关信息,请在本站查询。

本文标签: