PHP 프레임워크 Laravel Laravel을 사용하여 프런트엔드와 백엔드의 별도 배포를 구현하는 방법

Laravel을 사용하여 프런트엔드와 백엔드의 별도 배포를 구현하는 방법

Apr 23, 2023 am 09:17 AM

오늘날의 인터넷 세계에서는 웹 애플리케이션을 핵심으로 하는 소프트웨어 서비스가 점점 더 대중화되고 있습니다. 그 중 Laravel 프레임워크는 PHP 언어를 위한 탁월한 개발 프레임워크로서 효율적인 성능을 제공할 뿐만 아니라 친숙한 개발 경험, 풍부한 오픈 소스 커뮤니티, 강력한 ORM 및 마이그레이션 시스템과 같은 일련의 장점을 가지고 있습니다. Laravel의 백엔드 개발에서는 최근 프론트엔드와 백엔드를 분리하는 개발 모델이 점차 대중화되고 있습니다. 이 기사에서는 Laravel을 사용하여 프런트엔드와 백엔드를 별도로 배포하는 방법을 소개합니다.

1. 프론트엔드와 백엔드 분리란?

프론트엔드와 백엔드 분리는 기술적인 관점에서 프론트엔드와 백엔드를 완전히 분리하는 웹 애플리케이션 개발의 새로운 방식입니다. 프런트엔드 프로그램은 인터페이스를 생성하고 서버와 통신하여 데이터를 얻는 역할을 담당하고, 백그라운드 프로그램은 비즈니스 로직을 처리하고 데이터베이스에 액세스하는 역할을 합니다.

이 방법에는 많은 이점이 있습니다. 첫째, 프론트엔드와 백엔드 개발의 효율성을 향상시킬 수 있습니다. 프론트엔드와 백엔드 개발자는 병렬로 개발할 수 있어 서로에 대한 의존도를 줄일 수 있으며, 둘째, 애플리케이션 성능을 향상시킬 수 있습니다. 프런트엔드 서비스와 백엔드 서비스를 별도로 배포하고 확장할 수 있으므로 시스템의 전반적인 성능이 크게 향상될 수 있습니다. 또한 이 접근 방식을 통해 프런트엔드와 백엔드 개발자 모두 각자의 영역에 최대한 집중할 수 있어 코드 품질과 유지 관리성이 향상됩니다.

2. Laravel에서 프런트엔드와 백엔드 분리 구현

Laravel 개발에서 프런트엔드와 백엔드 분리를 구현하려면 일부 프런트엔드 프레임워크를 사용해야 합니다. 그중 Vue.js, React, Angular와 같은 주류 프레임워크를 프런트엔드 개발 솔루션으로 사용할 수 있습니다. Laravel에서는 프런트엔드와 백엔드를 분리하기 위해 다음 두 가지 방법을 사용할 수 있습니다.

  1. 새 프런트엔드 프로젝트 만들기

먼저 독립적인 프런트엔드 프로젝트를 만든 다음 API를 통해 Laravel 백엔드와 상호 작용할 수 있습니다. 이 모드에서 Laravel은 백엔드 데이터 API 인터페이스 작성만 담당하며, 프런트엔드는 AJAX 또는 Fetch API를 사용하여 백엔드 데이터 인터페이스를 요청합니다. 프런트엔드 및 백엔드 코드는 서로 다른 서버나 포트에 배포될 수 있습니다.

이 접근 방식의 장점은 프런트엔드와 백엔드 간의 분리가 매우 높다는 것입니다. 개발자는 애플리케이션의 성능을 향상시키면서 각자의 장점을 최대한 활용할 수 있습니다. 일부 최신 프런트엔드 프레임워크와 도구를 사용하여 개발 효율성과 개발 경험을 향상할 수도 있습니다.

다음은 이 접근 방식을 보여주는 간단한 예입니다. 예를 들어 Laravel을 백엔드로, Vue.js를 프런트엔드로 생각해 보겠습니다.

1.1 새 Laravel 프로젝트 만들기

먼저 명령줄에서 새 Laravel 프로젝트를 만들어야 합니다.

composer create-project --prefer-dist laravel/laravel blog
로그인 후 복사
로그인 후 복사

1.2 새 Vue 만들기 .js 프로젝트

다음으로 새 Vue.js 프로젝트를 만들어야 합니다.

npm install -g vue-cli
vue init webpack frontend
로그인 후 복사

1.3 Laravel 및 Vue.js 구성

다음으로 routes/api.php 파일을 구성해야 합니다. Vue.js 프런트 엔드의 요청에 응답합니다. routes/api.php 文件来响应 Vue.js 前端的请求。

Route::get('/todos', function () {
    return App\Todo::all();
});
로그인 후 복사

frontend/src/App.vue 中,我们可以使用 Axios 或任何其他 AJAX 库来获取后端 API。在这个示例中,我们将使用 Axios 库。

<template>
  <div class="todo-list">
    <div class="todo" v-for="todo in todos" :key="todo.id">
      <input type="checkbox" :checked="todo.completed" @change="toggle(todo)">
      <label>{{ todo.title }}</label>
    </div>
  </div>
</template>

<script>
import axios from 'axios'

export default {
  data () {
    return {
      todos: []
    }
  },
  created () {
    axios.get('/api/todos')
      .then(response => {
        this.todos = response.data
      })
      .catch(error => {
        console.log(error)
      })
  },
  methods: {
    toggle (todo) {
      todo.completed = !todo.completed
      axios.put('/api/todos/' + todo.id, todo)
        .then(response => {})
        .catch(error => {
          console.log(error)
        })
    }
  }
}
</script>
로그인 후 복사

frontend/config/index.js 中,我们可以将 Vue.js 前端设置为使用与 Laravel 后端不同的端口。然后,我们可以运行并访问这个应用程序。

php artisan serve --port=8000
cd frontend
npm start
로그인 후 복사
  1. 使用 Laravel Mix 打包前端项目

另一个方式是将前端代码和 Laravel 后台代码打包到同一个项目中进行部署,这种模式下 Laravel Mix 作为工具用于构建前端应用程序。Laravel Mix 是一个简化了 Webpack 的构建工具,可以让我们轻松地打包前端资源。

这种方式的优点是前后端代码会打包成一个整体,方便部署和维护。我们可以使用类似于 npm run devnpm run build 的命令来编译前端代码,并将编译结果放在 Laravel 的 public 目录中,这样我们就可以通过浏览器直接访问应用程序了。

下面是一个简单的示例来演示这种方式的实现:

2.1 创建一个新的 Laravel 项目

首先,我们需要在命令行中创建一个新的 Laravel 项目:

composer create-project --prefer-dist laravel/laravel blog
로그인 후 복사
로그인 후 복사

2.2 安装 Node.js 和 NPM

在接下来的步骤中,我们需要安装 Node.js 和 NPM。

在 Ubuntu 中,可以使用以下命令安装:

sudo apt-get install nodejs
sudo apt-get install npm
로그인 후 복사

2.3 在 Laravel 中安装 Laravel Mix

然后,我们需要安装 Laravel Mix:

npm install --save-dev laravel-mix
로그인 후 복사

然后,我们需要执行以下命令来生成 webpack.mix.js 配置文件:

node_modules/.bin/mix
로그인 후 복사

2.4 编写前端代码

接下来,我们需要编写前端代码。例如,我们可以在 resources/assets/js/app.js 文件中编写一些 JavaScript 代码。以下是一个简单的示例:

"use strict";

window.Vue = require('vue');

Vue.component('example-component', require('./components/ExampleComponent.vue'));

const app = new Vue({
    el: '#app'
});
로그인 후 복사

2.5 编写前端资源

我们可以把前端的资源文件放在 resources/assets 目录下。例如,我们可以在 resources/assets/sass/app.scss

html, body {
  height: 100%;
  margin: 0;
}

#app {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.title {
  font-size: 24px;
  text-align: center;
}
로그인 후 복사
frontend/src/App.vue에서 Axios나 다른 AJAX 라이브러리를 사용하여 백엔드 API를 얻을 수 있습니다. 이 예에서는 Axios 라이브러리를 사용합니다.

const mix = require('laravel-mix');

mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css');
로그인 후 복사
로그인 후 복사
frontend/config/index.js에서 Laravel 백엔드와 다른 포트를 사용하도록 Vue.js 프런트엔드를 설정할 수 있습니다. 그런 다음 애플리케이션을 실행하고 액세스할 수 있습니다. 🎜
npm run dev
로그인 후 복사
로그인 후 복사
    🎜Laravel Mix를 사용하여 프런트엔드 프로젝트 패키징🎜🎜🎜또 다른 방법은 배포를 위해 프런트엔드 코드와 Laravel 백엔드 코드를 동일한 프로젝트에 패키징하는 것입니다. Laravel Mix는 프런트엔드 애플리케이션을 구축하는 도구로 사용됩니다. Laravel Mix는 프런트엔드 리소스를 쉽게 패키징할 수 있게 해주는 단순화된 Webpack 빌드 도구입니다. 🎜🎜이 방법의 장점은 프런트엔드 코드와 백엔드 코드가 전체적으로 패키징되어 배포 및 유지 관리가 쉽다는 것입니다. npm run devnpm run build와 유사한 명령을 사용하여 프런트 엔드 코드를 컴파일하고 컴파일 결과를 Laravel의 공개 디렉터리에 배치할 수 있습니다. 애플리케이션에 직접 액세스합니다. 🎜🎜이 접근 방식을 보여주는 간단한 예는 다음과 같습니다. 🎜🎜2.1 새 Laravel 프로젝트 만들기 🎜🎜먼저 명령줄에서 새 Laravel 프로젝트를 만들어야 합니다. 🎜
    npm run watch
    로그인 후 복사
    로그인 후 복사
    🎜2.2 Node.js 및 NPM 설치🎜🎜In 다음 단계에서는 Node.js와 NPM을 설치해야 합니다. 🎜🎜Ubuntu에서는 다음 명령을 사용하여 설치할 수 있습니다. 🎜
    sudo apt-get install nginx
    sudo apt-get install mysql-server
    sudo apt-get install php-fpm
    로그인 후 복사
    로그인 후 복사
    🎜2.3 Install Laravel Mix in Laravel🎜🎜그런 다음 Laravel Mix를 설치해야 합니다. 🎜
    server {
        listen 80;
        server_name yourdomain.com;
    
        root /var/www/public;
    
        index index.php;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ /\. {
            deny all;
        }
    
        location ~ \.php$ {
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            internal;
        }
    }
    로그인 후 복사
    로그인 후 복사
    🎜그런 다음 다음 명령을 실행하여 webpack.mix .js 구성 파일: 🎜
    cp -r /path/to/frontend/dist/* /var/www/public
    로그인 후 복사
    로그인 후 복사
    🎜2.4 프론트엔드 코드 작성🎜🎜다음으로 프론트엔드 코드를 작성해야 합니다. 예를 들어 resources/assets/js/app.js 파일에 일부 JavaScript 코드를 작성할 수 있습니다. 다음은 간단한 예입니다. 🎜
    sudo mysql_secure_installation
    로그인 후 복사
    로그인 후 복사
    🎜2.5 프런트엔드 리소스 작성🎜🎜프런트엔드 리소스 파일을 resources/assets 디렉터리에 넣을 수 있습니다. 예를 들어 resources/assets/sass/app.scss에 몇 가지 CSS 스타일을 작성할 수 있습니다. 🎜
    CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'dbpassword';
    GRANT ALL PRIVILEGES ON dbname.* TO 'dbuser'@'localhost';
    로그인 후 복사
    로그인 후 복사
    🎜2.6 Laravel 믹스 구성🎜

    我们需要在 webpack.mix.js 文件中配置 Laravel Mix。例如,我们可以使用 .sass() 方法来生成 CSS 文件,并使用 .js() 方法来生成 JavaScript 文件:

    const mix = require('laravel-mix');
    
    mix.js('resources/assets/js/app.js', 'public/js')
       .sass('resources/assets/sass/app.scss', 'public/css');
    로그인 후 복사
    로그인 후 복사

    2.7 编译前端资源

    接下来,我们可以运行以下命令来编译前端资源:

    npm run dev
    로그인 후 복사
    로그인 후 복사

    npm run watch
    로그인 후 복사
    로그인 후 복사

    这样,我们就可以在浏览器中看到我们的应用程序了。

    1. 部署应用程序

    无论我们使用哪种方式来实现前后端分离,最终都需要进行部署。我们可以使用第三方工具如 Jenkins、Capistrano 和 Docker Compose 等来自动化部署。这里介绍一种基于 NGINX + PHP-FPM + MySQL 的部署方式。

    3.1 安装服务

    首先,我们需要安装 NGINX、PHP-FPM 和 MySQL。我们可以使用以下命令在 Ubuntu 中进行安装:

    sudo apt-get install nginx
    sudo apt-get install mysql-server
    sudo apt-get install php-fpm
    로그인 후 복사
    로그인 후 복사

    3.2 配置 NGINX

    接下来,我们需要配置 NGINX。我们可以在 /etc/nginx/sites-available 目录下创建一个新的配置文件。以下是配置文件的示例:

    server {
        listen 80;
        server_name yourdomain.com;
    
        root /var/www/public;
    
        index index.php;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ /\. {
            deny all;
        }
    
        location ~ \.php$ {
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            internal;
        }
    }
    로그인 후 복사
    로그인 후 복사

    我们需要将我们的代码放置在 /var/www/public 目录中。例如,我们使用前两种方式中的第一种方式,代码存放在了一个 独立的前端项目 中。我们可以使用以下命令将编译好的前端代码复制到 /var/www/public 目录中:

    cp -r /path/to/frontend/dist/* /var/www/public
    로그인 후 복사
    로그인 후 복사

    3.3 配置 MySQL

    接下来,我们需要配置 MySQL。我们可以使用以下命令进行安全设置:

    sudo mysql_secure_installation
    로그인 후 복사
    로그인 후 복사

    然后,我们可以创建一个新的 MySQL 数据库:

    CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'dbpassword';
    GRANT ALL PRIVILEGES ON dbname.* TO 'dbuser'@'localhost';
    로그인 후 복사
    로그인 후 복사

    在 Laravel 的 .env 配置文件中,我们需要进行如下数据库配置:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=dbname
    DB_USERNAME=dbuser
    DB_PASSWORD=dbpassword
    로그인 후 복사

    3.4 执行数据库迁移

    接下来,我们需要执行 Laravel 数据库迁移,并进行一些初始化操作:

    php artisan migrate
    php artisan db:seed
    php artisan key:generate
    로그인 후 복사

    3.5 重启服务

    最后,我们需要重启 NGINX 和 PHP-FPM 服务,使配置生效:

    sudo systemctl restart nginx
    sudo systemctl restart php7.4-fpm
    로그인 후 복사

    至此,我们可以通过浏览器访问我们的应用程序,Laravel 前后端分离部署就完成了。

    三、结论

    本文介绍了使用 Laravel 实现前后端分离部署的两种方式:创建一个新的前端项目和使用 Laravel Mix 打包前端项目两种方式。当然,对于前端开发人员来说,也可以选择自己熟悉的框架、编程语言来进行前端开发,只需要遵循前后端分离的原则即可。总之,Laravel 的灵活性使得它可以与许多现代前端框架和工具配合使用,让开发人员可以更自由地选择适合自己的开发方式。

위 내용은 Laravel을 사용하여 프런트엔드와 백엔드의 별도 배포를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

LARAVEL 소개 예 LARAVEL 소개 예 Apr 18, 2025 pm 12:45 PM

Laravel은 웹 응용 프로그램을 쉽게 구축하기위한 PHP 프레임 워크입니다. 설치 : Composer를 사용하여 전 세계적으로 Laravel CLI를 설치하고 프로젝트 디렉토리에서 응용 프로그램을 작성하는 등 다양한 기능을 제공합니다. 라우팅 : Routes/Web.php에서 URL과 핸들러 간의 관계를 정의하십시오. 보기 : 리소스/뷰에서보기를 작성하여 응용 프로그램의 인터페이스를 렌더링합니다. 데이터베이스 통합 : MySQL과 같은 데이터베이스와 상자 외 통합을 제공하고 마이그레이션을 사용하여 테이블을 작성하고 수정합니다. 모델 및 컨트롤러 : 모델은 데이터베이스 엔티티를 나타내고 컨트롤러는 HTTP 요청을 처리합니다.

Laravel 사용자 로그인 기능 Laravel 사용자 로그인 기능 Apr 18, 2025 pm 12:48 PM

Laravel provides a comprehensive Auth framework for implementing user login functions, including: Defining user models (Eloquent model), creating login forms (Blade template engine), writing login controllers (inheriting Auth\LoginController), verifying login requests (Auth::attempt) Redirecting after login is successful (redirect) considering security factors: hash passwords, anti-CSRF protection, rate limiting and security 헤더. 또한 Auth Framework는 비밀번호 재설정, 이메일 등록 및 확인과 같은 기능도 제공합니다. 자세한 내용은 Laravel 문서를 참조하십시오 : https://laravel.com/doc

Laravel 및 백엔드 : 파워링 웹 응용 프로그램 논리 Laravel 및 백엔드 : 파워링 웹 응용 프로그램 논리 Apr 11, 2025 am 11:29 AM

Laravel은 백엔드 논리에서 어떻게 중요한 역할을합니까? 라우팅 시스템, eloquentorm, 인증 및 승인, 이벤트 및 청취자, 성능 최적화를 통해 백엔드 개발을 단순화하고 향상시킵니다. 1. 라우팅 시스템은 URL 구조의 정의 및 요청 처리 로직을 정의 할 수 있습니다. 2. eloquentorm은 데이터베이스 상호 작용을 단순화합니다. 3. 인증 및 인증 시스템은 사용자 관리에 편리합니다. 4. 이벤트와 리스너는 느슨하게 결합 된 코드 구조를 구현합니다. 5. 성능 최적화는 캐싱 및 대기열을 통한 응용 프로그램 효율성을 향상시킵니다.

Laravel 프레임 워크 설치 방법 Laravel 프레임 워크 설치 방법 Apr 18, 2025 pm 12:54 PM

기사 요약 :이 기사는 Laravel 프레임 워크를 쉽게 설치하는 방법에 대한 독자들을 안내하기위한 자세한 단계별 지침을 제공합니다. Laravel은 웹 애플리케이션의 개발 프로세스를 가속화하는 강력한 PHP 프레임 워크입니다. 이 자습서는 시스템 요구 사항에서 데이터베이스 구성 및 라우팅 설정에 이르기까지 설치 프로세스를 다룹니다. 이러한 단계를 수행함으로써 독자들은 라벨 프로젝트를위한 탄탄한 토대를 빠르고 효율적으로 놓을 수 있습니다.

Laravel을 배우는 방법 무료로 LaRavel을 배우는 방법 Laravel을 배우는 방법 무료로 LaRavel을 배우는 방법 Apr 18, 2025 pm 12:51 PM

Laravel 프레임 워크를 배우고 싶지만 자원이나 경제적 압력이 없습니까? 이 기사는 Laravel의 무료 학습을 제공하며 온라인 플랫폼, 문서 및 커뮤니티 포럼과 같은 리소스를 사용하여 PHP 개발 여정을 시작하는 것에서 마스터까지의 탄탄한 토대를 마련하는 방법을 가르쳐줍니다.

Laravel의 버전 번호를 보는 방법은 무엇입니까? Laravel의 버전 번호를 보는 방법 Laravel의 버전 번호를 보는 방법은 무엇입니까? Laravel의 버전 번호를 보는 방법 Apr 18, 2025 pm 01:00 PM

Laravel 프레임 워크에는 개발자의 다양한 요구를 충족시키기 위해 버전 번호를 쉽게 볼 수있는 내장 방법이 있습니다. 이 기사는 Composer Command Line 도구 사용, .env 파일에 액세스하거나 PHP 코드를 통해 버전 정보를 얻는 것을 포함하여 이러한 방법을 탐색합니다. 이러한 방법은 Laravel 애플리케이션의 버전 관리를 유지 관리하고 관리하는 데 필수적입니다.

어떤 버전의 Laravel이 있습니까? 초보자를위한 Laravel 버전을 선택하는 방법 어떤 버전의 Laravel이 있습니까? 초보자를위한 Laravel 버전을 선택하는 방법 Apr 18, 2025 pm 01:03 PM

초보자를위한 Laravel Framework 버전 선택 안내서 에서이 기사는 초보자가 많은 버전 중에서 정보에 입각 한 선택을하는 데 도움이되도록 설계된 Laravel의 버전 차이점으로 뛰어 들었습니다. 우리는 각 릴리스의 주요 기능에 중점을두고 장단점을 비교하며 초보자가 기술 수준 및 프로젝트 요구 사항에 따라 가장 적합한 Laravel 버전을 선택할 수 있도록 유용한 조언을 제공 할 것입니다. 초보자에게는 적절한 버전의 Laravel을 선택하는 것이 학습 곡선과 전반적인 개발 경험에 크게 영향을 줄 수 있기 때문에 중요합니다.

Laravel과 ThinkPhp의 차이점 Laravel과 ThinkPhp의 차이점 Apr 18, 2025 pm 01:09 PM

Laravel과 ThinkPHP는 모두 인기있는 PHP 프레임 워크이며 개발에 고유 한 장점과 단점이 있습니다. 이 기사는 두 가지 깊이를 비교하여 건축, 기능 및 성능 차이를 강조하여 개발자가 특정 프로젝트 요구에 따라 정보에 입각 한 선택을 할 수 있도록 도와줍니다.

See all articles