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 つのアプリケーション例をデプロイした後、リンクをクリックして効果をプレビューします:
- ThinkPHP 公式サンプル: http: //13492727- 1986114430573743.test.functioncompute.com
- ThinkPHP ブログの例: http://13500180-1986114430573743.test.functioncompute.com
- 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 アプリケーションでは、次の手順が必要になる場合があります。
- ECS などの物理マシンを購入します。
- 物理マシンにパブリック IP をバインドし、php、nginx、php-fpm## をインストールします。 #nginx、php-fpm を構成し、アプリケーションをマシンにアップロードします
- テストを実行します
fun deployコマンドを 1 つだけ実行すると、Fun は自動的に展開プロセスに入ります。このプロセスでは、ユーザーは Enter キーを連打するだけで済みます。プロセスの詳細は次のとおりです。
- Fun は、これが Fun プロジェクトではないことを検出し、作成の支援を求めるプロンプトを表示します (Enter キーを押すか、y を入力するだけです)
-
Fun プロジェクトが自動的に正常に作成され、デプロイするかどうかを確認するメッセージが表示されます。 Enter を直接押すか、y を入力して確認することができます -
#Fun はアプリケーションをオンラインで直接デプロイします -
##デプロイメントが完了すると、成功したデプロイメント ログから、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 应用在本地开发完成后,一键部署到远端直接用于生产,并拥有了弹性伸缩、按量付费、免运维等特性。