Function Compute : Function Compute est un service piloté par les événements grâce au calcul de fonctions, les utilisateurs. n'ont pas besoin de gérer les serveurs et autres conditions de fonctionnement, il leur suffit d'écrire du code et de le télécharger. Function Compute prépare les ressources informatiques et exécute le code utilisateur de manière évolutive et élastique, et les utilisateurs ne paient qu'en fonction des ressources consommées par le code réel en cours d'exécution. Pour plus d'informations sur les calculs de fonctions, reportez-vous à .
Fun : Fun est un outil utilisé pour prendre en charge le déploiement d'applications sans serveur, qui peut vous aider à gérer facilement des ressources telles que le calcul des fonctions, les passerelles API et les services de journalisation. Il vous aide à développer, créer et déployer des opérations via un fichier de configuration de ressources (template.yml). Plus de référence de documentation pour Fun.
Remarque : Les techniques présentées dans cet article nécessitent une version Fun supérieure ou égale à 3.6.3.
Tutoriel recommandé : "tutoriel thinkphp"
Qu'est-ce que ThinkPHP ?
ThinkPHP est un framework de développement PHP léger, orienté objet, gratuit, open source, rapide et simple, né pour le développement d'applications WEB agiles et le développement simplifié d'applications d'entreprise. ThinkPHP adhère au principe de conception simple et pratique depuis sa naissance tout en conservant d'excellentes performances et un code minimal, il accorde plus d'attention à la facilité d'utilisation. La publication sous le contrat de licence open source Apache2 signifie que vous pouvez utiliser ThinkPHP gratuitement et que vous êtes même autorisé à publier/vendre les applications que vous développez sur la base de ThinkPHP en tant que produits open source ou commerciaux.
Aperçu de l'effet
Cliquez sur le lien après le déploiement des deux exemples d'application impliqués dans cet article pour prévisualiser l'effet :
- Exemple officiel de ThinkPHP : http://13492727-1986114430573743.test.functioncompute.com
- Exemple de blog ThinkPHP : http://13500180-1986114430573743.test.functioncompute.com
- ThinkPHP blog exemple de gestion du backend : http://13500180-1986114430573743.test.functioncompute.com/admin
Préparation de l'environnement
Suivez d'abord les instructions dans Fun 's méthode du document d'installation pour installer Fun sur cette machine.
PS : La méthode présentée dans cet article ne nécessite pas d'installer Docker, seulement Fun. Le moyen le plus simple est de télécharger directement le fichier binaire exécutable.
Une fois l'installation terminée, vous pouvez exécuter fun --version pour vérifier si Fun est installé avec succès.
Premier exemple : initialisez et déployez rapidement un exemple d'application ThinkPHP
Initialisez un exemple thinkphp :
composer create-project topthink/think tp
Exécutez l'exemple localement pour tester :
php think run
Vous pouvez voir l'effet localement :
Le développement traditionnel La méthode est qu'une fois le développement local terminé, le travail de déploiement doit être effectué. Habituellement, nous pouvons avoir besoin des étapes suivantes pour déployer une application PHP :
- Acheter une machine physique, telle qu'ECS
- Lier le serveur public à la machine physique. . Internet IP, installez php, nginx, php-fpm
- Configurez nginx, php-fpm et téléchargez l'application sur la machine
- Exécutez le test
Les plus compliquées sont les étapes 2 et 3, car elles peuvent être différentes. Les méthodes de configuration de l'environnement sont différentes et il y aura plus de pièges. Nous montrons comment déployer des applications sur Function Compute.
fun deploy
Une seule commande est nécessaire, Fun entrera automatiquement dans le processus de déploiement, dans lequel l'utilisateur n'a qu'à appuyer sur une série de touches Entrée. Les détails du processus sont les suivants :
- Fun détecte qu'il ne s'agit pas d'un projet Fun et vous demandera de l'aide pour le créer (appuyez simplement sur Entrée ou entrez y)
- Le projet Fun est automatiquement créé avec succès, et il vous demande s'il faut le déployer ? Vous pouvez appuyer directement sur Entrée, ou saisir y pour confirmer
- Ensuite, Fun déploiera directement l'application en ligne
Une fois le déploiement terminé, nous pouvons voir selon le journal de déploiement réussi que la fonction calcul Un nom de domaine temporaire 13492727-1986114430573743.test.functioncompute.com a été généré pour nous. Nous pouvons accéder directement à l'application que nous venons de déployer via ce nom de domaine temporaire.
备注:临时域名仅仅用作演示以及开发,是有时效的,如果用作生产,请绑定已经备案的域名。
第二个示例:快速迁移一个已有的 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 应用在本地开发完成后,一键部署到远端直接用于生产,并拥有了弹性伸缩、按量付费、免运维等特性。