検索
ホームページPHPフレームワークLaravelLaravel を使用してフロントエンドとバックエンドの個別のデプロイメントを実装する方法

今日のインターネットの世界では、Web アプリケーションを中心としたソフトウェア サービスがますます普及しています。その中でも、Laravelフレームワークは、PHP言語の優れた開発フレームワークとして、効率的なパフォーマンスを備えているだけでなく、フレンドリーな開発経験、豊富なオープンソースコミュニティ、強力なORM、移行システムなどの一連の利点もあります。 Laravelのバックエンド開発では、最近フロントエンドとバックエンドを分離する開発モデルが徐々に普及してきています。この記事では、Laravelを使ってフロントエンドとバックエンドの分離デプロイを実現する方法を紹介します。

1. フロントエンドとバックエンドの分離とは

フロントエンドとフロントエンドの分離は、Web アプリケーションを開発する新しい方法であり、フロントエンドとバックエンドを完全に分離します。 -技術的な観点から終わります。フロントエンド プログラムはインターフェイスの生成とサーバーとの通信によるデータ取得を担当し、バックグラウンド プログラムはビジネス ロジックの処理とデータベースへのアクセスを担当します。

このアプローチには多くの利点があります。まず、フロントエンドとバックエンドの開発効率を向上させることができます。フロントエンド開発者とバックエンド開発者は並行して開発できるため、相互の依存関係が軽減され、第 2 に、アプリケーションのパフォーマンスが向上します。フロントエンドとバックエンドのサービスは個別に導入および拡張できるため、システム全体のパフォーマンスが大幅に向上します。さらに、このアプローチにより、フロントエンド開発者とバックエンド開発者の両方が可能な限りそれぞれの領域に集中できるようになり、コードの品質と保守性が向上します。

2. Laravel でのフロントエンドとバックエンドの分離の実装

Laravel 開発では、フロントエンドとバックエンドの分離を実装するには、いくつかのフロントエンド フレームワークを使用する必要があります。 。その中で、フロントエンド開発ソリューションとして、Vue.js、React、Angular などの主流のフレームワークを使用できます。 Laravel では、次の 2 つの方法を使用してフロントエンドとバックエンドの分離を実現できます。

  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 を構成する

次に、Vue.js フロントエンドからのリクエストに応答するように routes/api.php ファイルを設定する必要があります。

Route::get('/todos', function () {
    return App\Todo::all();
});

frontend/src/App.vue では、Axios またはその他の AJAX ライブラリを使用してバックエンド API を取得できます。この例では、Axios ライブラリを使用します。

<template>
  <div>
    <div>
      <input>
      <label>{{ todo.title }}</label>
    </div>
  </div>
</template>

<script>
import axios from &#39;axios&#39;

export default {
  data () {
    return {
      todos: []
    }
  },
  created () {
    axios.get(&#39;/api/todos&#39;)
      .then(response => {
        this.todos = response.data
      })
      .catch(error => {
        console.log(error)
      })
  },
  methods: {
    toggle (todo) {
      todo.completed = !todo.completed
      axios.put(&#39;/api/todos/&#39; + todo.id, todo)
        .then(response => {})
        .catch(error => {
          console.log(error)
        })
    }
  }
}
</script>

frontend/config/index.js で、Laravel バックエンドとは異なるポートを使用するように Vue.js フロントエンドを設定できます。その後、アプリケーションを実行してアクセスできるようになります。

php artisan serve --port=8000
cd frontend
npm start
  1. Laravel Mix を使用してフロントエンド プロジェクトをパッケージ化する

もう 1 つの方法は、フロントエンド コードと Laravel バックエンド コードを同じプロジェクトにパッケージ化してデプロイすることです。このモードでは、Laravel Mix がフロントエンド アプリケーションを構築するためのツールとして使用されます。 Laravel Mix は、フロントエンド リソースを簡単にパッケージ化できる簡素化された Webpack ビルド ツールです。

この方法の利点は、フロントエンドとバックエンドのコードが全体としてパッケージ化されるため、展開とメンテナンスに便利であることです。 npm run devnpm run build に似たコマンドを使用してフロントエンド コードをコンパイルし、コンパイル結果を Laravel のパブリック ディレクトリに配置して、ブラウザから表示できるようにします。アプリケーションに直接アクセスします。

以下は、このメソッドの実装を示す簡単な例です。

2.1 新しい Laravel プロジェクトを作成する

まず、新しい 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 Mix を Laravel にインストールする

次に、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 ディレクトリに配置できます。たとえば、いくつかの CSS スタイルを 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;
}

2.6 Laravel Mix の構成

我们需要在 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 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Laravelで高度な機能を備えたRESTFUL APIを構築する方法は?Laravelで高度な機能を備えたRESTFUL APIを構築する方法は?Mar 11, 2025 pm 04:13 PM

この記事では、堅牢なLaravel Restful APIの構築をガイドします。 プロジェクトのセットアップ、リソース管理、データベースインタラクション、シリアル化、認証、承認、テスト、および重要なセキュリティベストプラクティスをカバーしています。 スケーラビリティチャレに対処します

LaravelでOAUTH2認証と承認を実装する方法は?LaravelでOAUTH2認証と承認を実装する方法は?Mar 12, 2025 pm 05:56 PM

この記事では、LaravelでOAUTH 2.0認証と承認を実装しています。 League/OAuth2-Serverやプロバイダー固有のソリューションなどのパッケージを使用して、データベースのセットアップ、クライアント登録、承認サーバー構成を強調しています

Laravelのコンポーネントを使用して再利用可能なUI要素を作成するにはどうすればよいですか?Laravelのコンポーネントを使用して再利用可能なUI要素を作成するにはどうすればよいですか?Mar 17, 2025 pm 02:47 PM

この記事では、コンポーネントを使用してLaravelで再利用可能なUI要素の作成とカスタマイズについて説明し、組織のベストプラクティスを提供し、パッケージを強化することを提案します。

クラウドネイティブ環境でLaravelを使用するためのベストプラクティスは何ですか?クラウドネイティブ環境でLaravelを使用するためのベストプラクティスは何ですか?Mar 14, 2025 pm 01:44 PM

この記事では、スケーラビリティ、信頼性、セキュリティに焦点を当てたクラウドネイティブ環境でLaravelを展開するためのベストプラクティスについて説明します。重要な問題には、コンテナ化、マイクロサービス、ステートレス設計、最適化戦略が含まれます。

Laravelでカスタム検証ルールを作成して使用するにはどうすればよいですか?Laravelでカスタム検証ルールを作成して使用するにはどうすればよいですか?Mar 17, 2025 pm 02:38 PM

この記事では、Laravelでカスタム検証ルールの作成と使用について説明し、それらを定義および実装する手順を提供します。再利用性や特異性などの利点を強調し、Laravelの検証システムを拡張する方法を提供します。

Laravel vs. Symfony:Webアプリに適したものはどれですか?Laravel vs. Symfony:Webアプリに適したものはどれですか?Mar 10, 2025 pm 01:34 PM

PHPフレームワークの選択に関しては、LaravelとSymfonyは最も人気があり広く使用されているオプションの1つです。各フレームワークは、独自の哲学、特徴、強みをテーブルにもたらし、さまざまなプロジェクトやユースケースに適しています

Laravelでカスタムブレードディレクティブを作成および使用するにはどうすればよいですか?Laravelでカスタムブレードディレクティブを作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 02:50 PM

この記事では、Laravelでカスタムブレードディレクティブの作成と使用を行い、テンプレートを強化します。ディレクティブの定義、テンプレートでそれらを使用し、大規模なプロジェクトでそれらを管理することをカバーし、改善されたコードの再利用性やRなどの利点を強調しています

Laravelでファイルアップロードとクラウドストレージを処理する最良の方法は何ですか?Laravelでファイルアップロードとクラウドストレージを処理する最良の方法は何ですか?Mar 12, 2025 pm 05:54 PM

この記事では、Laravelの最適なファイルアップロードとクラウドストレージ戦略を調べます。 ローカルストレージとクラウドプロバイダー(AWS S3、Google Cloud、Azure、DigitalOcean)、セキュリティ(検証、消毒、HTTPS)およびパフォーマンスオプティを強調しています

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール