Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk membina aplikasi rangka kerja TP tanpa pelayan

Bagaimana untuk membina aplikasi rangka kerja TP tanpa pelayan

藏色散人
藏色散人ke hadapan
2021-08-05 16:13:451911semak imbas

Pertama sekali, mari kita perkenalkan beberapa konsep yang lebih penting yang muncul dalam artikel ini:

Function Compute: Function Compute ialah perkhidmatan dipacu peristiwa Melalui Function Compute, pengguna tidak perlu mengurus status berjalan pelayan, tetapi hanya perlu menulis kod dan memuat naiknya. Function Compute menyediakan sumber pengkomputeran dan menjalankan kod pengguna dengan cara berskala elastik, dan pengguna hanya membayar berdasarkan sumber yang digunakan oleh kod sebenar yang dijalankan. Untuk maklumat lanjut tentang pengiraan fungsi rujuk .
Keseronokan: Keseronokan ialah alat yang digunakan untuk menyokong penggunaan aplikasi Tanpa Pelayan, yang boleh membantu anda mengurus sumber dengan mudah seperti pengkomputeran fungsi, get laluan API dan perkhidmatan log. Ia membantu anda dalam membangunkan, membina dan menggunakan operasi melalui fail konfigurasi sumber (template.yml). Lebih banyak rujukan dokumentasi untuk Fun.

Nota: Teknik yang diperkenalkan dalam artikel ini memerlukan Fun versi 3.6.3 atau lebih tinggi.

Tutorial yang disyorkan: "tutorial thinkphp"

Apakah itu ThinkPHP?

ThinkPHP ialah rangka kerja pembangunan PHP ringan berorientasikan objek percuma, sumber terbuka, pantas dan ringkas, yang dilahirkan untuk pembangunan aplikasi WEB yang tangkas dan pembangunan aplikasi perusahaan yang dipermudahkan. ThinkPHP telah mematuhi prinsip reka bentuk yang ringkas dan praktikal sejak ia dilahirkan sambil mengekalkan prestasi cemerlang dan kod minimum, ia memberi lebih perhatian kepada kemudahan penggunaan. Menerbitkan di bawah perjanjian lesen sumber terbuka Apache2 bermakna anda boleh menggunakan ThinkPHP secara percuma, malah anda dibenarkan untuk menerbitkan/menjual aplikasi yang anda bangunkan berdasarkan ThinkPHP sebagai sumber terbuka atau produk komersial.

Pratonton Kesan

Pautan selepas penggunaan dua contoh aplikasi yang terlibat dalam artikel ini, klik untuk pratonton kesan:

  1. Contoh rasmi ThinkPHP: http:/ /13492727- 1986114430573743.test.functioncompute.com
  2. Thinkphp Blog Contoh: http://13500180-1986114430573743.test.functioncompute.com
  3. -1986114430 573743. test.functioncompute.com/admin
Persediaan alam sekitar

Mula-mula pasang Fun pada mesin ini mengikut kaedah yang diperkenalkan dalam dokumen pemasangan Fun.

PS: Kaedah yang diperkenalkan dalam artikel ini tidak memerlukan pemasangan Docker, cuma Fun Cara paling mudah ialah memuat turun terus fail binari boleh laku.

Selepas pemasangan selesai, anda boleh melaksanakan fun --version untuk menyemak sama ada Fun telah berjaya dipasang.

Contoh pertama: Mulakan dan gunakan aplikasi sampel ThinkPHP dengan pantas

Mulakan sampel thinkphp:

composer create-project topthink/think tp
Jalankan sampel secara setempat untuk ujian:

php think run
Anda boleh melihat kesannya secara tempatan:

Kaedah pembangunan tradisional ialah selepas pembangunan tempatan selesai, kerja penempatan mesti dijalankan Biasanya kami mungkin memerlukan langkah berikut untuk menggunakan aplikasi PHP:

    Beli mesin fizikal, seperti ECS
  1. Ikat IP awam pada mesin fizikal, pasang PHP, nginx, php -fpm
  2. Konfigurasikan nginx, php-fpm dan muat naik aplikasi ke mesin
  3. Jalankan ujian
Yang paling rumit ialah yang kedua , 3 langkah , kerana kaedah konfigurasi mungkin berbeza dalam persekitaran yang berbeza, dan akan terdapat lebih banyak perangkap. Kami menunjukkan cara untuk menggunakan aplikasi ke Function Compute.

fun deploy
Dengan hanya satu arahan, Fun akan memasuki proses penempatan secara automatik, di mana pengguna hanya perlu menekan satu siri kekunci Enter. Butiran proses adalah seperti berikut:

    Fun mengesan bahawa ini bukan projek Fun dan akan meminta bantuan untuk menciptanya (hanya tekan enter atau masukkan y)

  1. Projek yang menyeronokkan berjaya dibuat secara automatik, menggesa sama ada untuk digunakan? Anda boleh menekan Enter terus, atau masukkan y untuk mengesahkan

  2. Kemudian Fun akan terus menggunakan aplikasi dalam talian

Selepas penempatan selesai, kita dapat melihat dari log penempatan yang berjaya yang mengira fungsi menghasilkan nama domain sementara 13492727-1986114430573743.test.functioncompute.com untuk kami. nama domain. Aplikasi yang baru kami gunakan.

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

第二个示例:快速迁移一个已有的 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 应用在本地开发完成后,一键部署到远端直接用于生产,并拥有了弹性伸缩、按量付费、免运维等特性。

Atas ialah kandungan terperinci Bagaimana untuk membina aplikasi rangka kerja TP tanpa pelayan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:segmentfault.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam