ホームページ  >  記事  >  PHPフレームワーク  >  サーバーレスベースの TP フレームワーク アプリケーションを構築する方法

サーバーレスベースの TP フレームワーク アプリケーションを構築する方法

藏色散人
藏色散人転載
2021-08-05 16:13:451874ブラウズ

まず、この記事に登場するいくつかの重要な概念を紹介します。

Function Compute: Function Compute はイベント駆動型のサービスであり、Function Compute を通じてユーザーはサーバーの実行ステータスを管理する必要はなく、コードを記述してアップロードするだけで済みます。 Function Compute は、コンピューティング リソースを準備し、弾力的にスケーラブルな方法でユーザー コードを実行します。ユーザーは、実際のコードの実行によって消費されたリソースに基づいてのみ料金を支払います。関数計算の詳細については、「 」を参照してください。
Fun: Fun は、サーバーレス アプリケーションのデプロイメントをサポートするために使用されるツールで、関数コンピューティング、API ゲートウェイ、ログ サービスなどのリソースを簡単に管理するのに役立ちます。これは、リソース構成ファイル (template.yml) を介した操作の開発、構築、およびデプロイを支援します。 Fun に関するその他のドキュメント参照。

注: この記事で紹介する手法には、Fun バージョン 3.6.3 以上が必要です。

推奨チュートリアル: 「thinkphp チュートリアル

ThinkPHP とは何ですか?

ThinkPHP は、無料のオープンソースで、高速かつシンプルなオブジェクト指向の軽量 PHP 開発フレームワークであり、アジャイルな WEB アプリケーション開発と簡素化されたエンタープライズ アプリケーション開発のために生まれました。 ThinkPHP は誕生以来、シンプルで実用的な設計原則を堅持しており、優れたパフォーマンスと最小限のコードを維持しながら、使いやすさにも重点を置いています。 Apache2 オープン ソース ライセンス契約に基づいて公開するということは、ThinkPHP を無料で使用できることを意味し、ThinkPHP に基づいて開発したアプリケーションをオープン ソースまたは商用製品として公開/販売することもできます。

効果のプレビュー

この記事に含まれる 2 つのアプリケーション例をデプロイした後、リンクをクリックして効果をプレビューします:

  1. ThinkPHP 公式サンプル: http: //13492727- 1986114430573743.test.functioncompute.com
  2. ThinkPHP ブログの例: http://13500180-1986114430573743.test.functioncompute.com
  3. ThinkPHP ブログの例管理バックエンド: http:// 13500180-1986114430573743. test.functioncompute.com/admin

環境準備

まず、Fun のインストールドキュメントに紹介されている方法に従って、本機に Fun をインストールします。

PS: この記事で紹介する方法では、Docker のインストールは必要なく、Fun のみをインストールする必要があります。最も簡単な方法は、実行可能なバイナリ ファイルを直接ダウンロードすることです。

インストールが完了したら、 fun --version を実行して、Fun が正常にインストールされたかどうかを確認できます。

最初の例: ThinkPHP サンプル アプリケーションをすばやく初期化してデプロイする

thinkphp サンプルを初期化する:

composer create-project topthink/think tp

テストのためにサンプルをローカルで実行する:

php think run

あなた

従来の開発方法では、ローカル開発が完了した後、デプロイメント作業を実行する必要があります。 PHP アプリケーションでは、次の手順が必要になる場合があります。

  1. ECS などの物理マシンを購入します。
  2. 物理マシンにパブリック IP をバインドし、php、nginx、php-fpm## をインストールします。
  3. #nginx、php-fpm を構成し、アプリケーションをマシンにアップロードします
  4. テストを実行します
最も複雑なのはステップ 2 と 3 です。環境が異なれば動作も異なり、落とし穴も多くなるでしょう。アプリケーションを Function Compute にデプロイする方法を示します。

fun deploy
コマンドを 1 つだけ実行すると、Fun は自動的に展開プロセスに入ります。このプロセスでは、ユーザーは Enter キーを連打するだけで済みます。プロセスの詳細は次のとおりです。

    Fun は、これが Fun プロジェクトではないことを検出し、作成の支援を求めるプロンプトを表示します (Enter キーを押すか、y を入力するだけです)

  1. Fun プロジェクトが自動的に正常に作成され、デプロイするかどうかを確認するメッセージが表示されます。 Enter を直接押すか、y を入力して確認することができます

  2. #Fun はアプリケーションをオンラインで直接デプロイします

  3. ##デプロイメントが完了すると、成功したデプロイメント ログから、Function Compute が一時的なドメイン名 13492727-1986114430573743.test.functioncompute.com を生成したことがわかります。この一時的なドメイン名を通じて直接アクセスできます。ドメイン名: 先ほどデプロイしたアプリケーション。

    备注:临时域名仅仅用作演示以及开发,是有时效的,如果用作生产,请绑定已经备案的域名。

    第二个示例:快速迁移一个已有的 ThinkPHP 应用

    这里我们拿一个开源的 ThinkPHP 博客做示例:https://github.com/wolf-leo/Wolf-Blog

    首先我们需要将 blog 克隆下来:

    git clone https://github.com/wolf-leo/Wolf-Blog.git

    使用 composer 安装依赖:

    composer install

    在要使用的 mysql 数据库上新建一个名为 blog_test 的 database。然后编辑 config/database.php 文件,修改其中的数据库地址、用户名、密码信息。

    // ... ...
    return [
        // ... ...
        // 服务器地址
        'hostname' => '192.168.17.104',
        // 数据库名 测试数据库名称 不用修改 否则默认安装会出错
        'database' => 'blog_test',
        // 用户名  需要修改的地方
        'username' => 'root',
        // 密码     需要修改的地方
        'password' => 'root',
        // ... ...
    ];

    修改完成后,就可以本地启动查看效果了:

    $ php think run
    
    ThinkPHP Development server is started On <http://127.0.0.1:8000/>
    You can exit with `CTRL-C`
    Document root is: /examples/php/Wolf-Blog/public

    然后打开 http://localhost:8000 可以直接看到效果。

    本地测试没问题后,就要进行部署了。部署前,我们需要知道,由于函数计算运行时代码目录本身是不可以修改的,而 ThinkPHP 会在代码目录下的 Runtime 这个目录写一些缓存文件,我们需要将这个缓存文件放到 /tmp 下面。在我们的例子中就是将 thinkphp/library/think/App.php 这个文件的第 174 行做如下修改:

    - $this->runtimePath = $this->rootPath . 'runtime' . DIRECTORY_SEPARATOR;
    + $this->runtimePath = DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR;

    修改完成后可以直接使用以下命令进行部署:

    fun deploy

    经历与第一个示例一样的步骤后,我们可以得到一个可以访问的临时域名进行测试:13500180-1986114430573743.test.functioncompute.com。打开该临时域名,可以预览到与本地运行一样的效果。

    还可以访问 13500180-1986114430573743.test.functioncompute.com/admin 打开该应用的管理后台:

    总结

    本文主要介绍了如何将 ThinkPHP 应用部署到函数计算。相比较与传统的部署方法,不仅没有更复杂,还省略了购买机器、安装配置 Nginx、安装配置 php-fpm 等步骤。可以实现,将传统的 ThinkPHP 应用在本地开发完成后,一键部署到远端直接用于生产,并拥有了弹性伸缩、按量付费、免运维等特性。

以上がサーバーレスベースの TP フレームワーク アプリケーションを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。