Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Sebarkan aplikasi web PHP menggunakan Laravel Forge

Sebarkan aplikasi web PHP menggunakan Laravel Forge

王林
王林asal
2023-09-04 12:09:091604semak imbas

Pembangun menyukai automasi - untuk setiap proses antara pembangunan dan pengeluaran, mereka memerlukan skrip untuk menyelaraskan aliran kerja mereka. Perkara yang sama berlaku untuk penempatan.

Tekan Proses akhirnya membina dan menggunakan aplikasi anda hendaklah semudah menekan butang Kerahkan Sekarang, tetapi itu bukan perkara yang selalu berlaku. Kami akhirnya melaburkan masa dan sumber untuk mengkonfigurasi pelayan, menyediakan persekitaran, memindahkan fail yang kami fikir tidak berkaitan dengan binaan pengeluaran, dsb.

Sesetengah daripada kita lebih suka menggunakan FTP untuk menghantar fail secara manual ke pelayan atau menolak kod ke repositori GitHub, manakala yang lain lebih suka menggunakan alat penempatan untuk memudahkan proses. Laravel Forge ialah salah satu alat sedemikian yang menjadikan penggunaan PHP mudah.

Jangan biarkan nama jenama Laravel mengelirukan anda. Selain Laravel, anda juga boleh menggunakan perkhidmatan ini untuk mengehoskan WordPress, Symphony, Statamic atau mana-mana projek web lain asalkan ia adalah PHP. Secara peribadi, saya suka Laravel Forge kerana ia mudah dan mudah untuk dimulakan.

Dalam tutorial ini, saya akan membimbing anda melalui langkah-langkah menyambungkan Laravel Forge dengan AWS dan meneroka ciri yang ditawarkannya.

Gambaran keseluruhan

Laravel Forge membolehkan anda memutar pelayan awan dan mengendalikan proses penggunaan menggunakan Git dan beberapa penyedia pelayan popular yang tersedia. Prosesnya dijelaskan di bawah:

Pertama, anda perlu menyambungkan AWS atau mana-mana pembekal awan lain ke akaun Forge anda. Seterusnya, pautkan kawalan sumber anda (seperti GitHub) ke Forge. Anda kini boleh membuat pelayan. Pasang repositori kawalan sumber pada pelayan. Akhir sekali, tekan butang deploy. Mudah, kan?

Pelayan yang dikonfigurasikan menggunakan Laravel Forge disertakan dengan timbunan berikut:

  • Ubuntu 16.06
  • Saya tidak
  • PHP 7.2/7.1/7.0/5.6
  • MySQL/MariaDB/Postgres
  • Redis
  • Memcached

Selepas mencipta pelayan, anda boleh mengkonfigurasinya lagi.

Apabila anda mendaftar, anda boleh memilih antara pelan berbeza yang mereka tawarkan. Saya memilih pelan Asas $12/bulan, bagaimanapun, anda mendapat percubaan percuma yang memberi anda akses kepada semua dalam senarai selama lima hari.

Selepas log masuk, anda akan melihat sesuatu seperti di bawah.

使用Laravel Forge部署PHP Web应用程序

Anda boleh memilih Lautan Digital, AWS, Linode dan Vultr sebagai pembekal perkhidmatan. Sebagai alternatif, anda boleh menggunakan Forge dengan VPC tersuai. Bagi kawalan sumber, Forge menyokong GitHub, GitLab dan Bitbucket. Dalam tutorial ini, saya akan membincangkan asas mengkonfigurasi AWS untuk berfungsi dengan Forge dan GitHub untuk kawalan sumber. Setelah selesai, anda akan dapat mencipta dan mengkonfigurasi sebarang bilangan pelayan.

Jika anda menggunakan penyedia perkhidmatan lain dalam senarai, anda boleh melangkau langkah ini dan menghubungi kami kemudian selepas kami mengkonfigurasi AWS dan Laravel Forge.

Menyediakan Laravel Forge dan AWS

Untuk menyediakan Forge dan AWS, anda perlu mengikut langkah di bawah.

1. Log masuk ke Laravel Forge

Log masuk ke Laravel Forge dan pilih AWS sebagai pembekal perkhidmatan. Anda akan diminta untuk ID kunci akses anda (kunci) dan kunci akses rahsia (rahsia). Anda perlu mencipta pengguna IAM tertentu dengan dasar yang menyediakan akses yang mencukupi kepada Laravel Forge. IAM ialah cara Amazon memetakan kebenaran pada setiap pengguna supaya anda boleh membatalkan akses jika timbul sebarang isu.

2. Buat pengguna IAM baharu

Log masuk ke konsol AWS dan buat pengguna IAM baharu.

使用Laravel Forge部署PHP Web应用程序

Beri pengguna nama yang bermakna dan tandai kotak pilihan Akses Programatik.

3. Pilih polisi yang betul

Tetapkan kebenaran yang betul untuk pengguna IAM laravel-forge. Buat kumpulan pengguna baharu kerana kumpulan pengguna bagus untuk mengurus kebenaran. Sekarang soalan semula jadi ialah, "Dasar apakah yang harus diakses oleh pengguna palsu Walaupun anda boleh memberikannya AdministratorAccess, anda tidak sepatutnya?"

使用Laravel Forge部署PHP Web应用程序

Jika anda mahu Forge mencipta dan mengkonfigurasi pelayan bagi pihak anda, anda perlu menambah dua dasar:

  1. AmazonEC2FullAccess
  2. AmazonVPCFulAccess

4. Simpan kelayakan dan sahkan

Sahkan akaun IAM, pada halaman seterusnya anda akan menemui kunci akses dan kata laluan.

使用Laravel Forge部署PHP Web应用程序

Pergi ke halaman Laravel Forge dan tampalkannya di sana. Itu sahaja.

5. Pautkan akaun GitHub anda ke Forge

Jika anda belum melakukannya, sila berbuat demikian dengan menyambungkan akaun GitHub/Bitbucket anda ke Forge. Apabila anda membuat pelayan, Forge menambah kunci awam pada akaun anda. Jika anda perlu menambah pembekal perkhidmatan baharu dan/atau mengemas kini kawalan sumber, anda boleh mencari pilihan ini dalam profil anda.

Buat pelayan baharu

Pergi ke halaman Cipta Pelayan untuk menambah pelayan baharu.

使用Laravel Forge部署PHP Web应用程序

Jika anda menggunakan AWS Free Tier, pilih t2.micro dengan 1GB RAM. Bagi tetapan lain, saya akan menggunakan nilai lalai. Ini termasuk pangkalan data MySQL dan PHP versi 7.2. Anda boleh menyesuaikan nama pangkalan data kemudian. Demi kesederhanaan, saya memutuskan untuk tidak menggunakan pengimbang beban. Jika anda ingin mengetahui rahsia pasca produksi, saya telah membincangkannya di penghujung tutorial ini.

Mencipta pelayan mungkin mengambil masa sehingga lima minit. Anda akan diberikan kelayakan untuk akses sudo. Simpannya di tempat yang selamat supaya anda boleh menggunakannya pada masa hadapan. Untuk melihat sama ada perkara berfungsi seperti yang diharapkan, pergi ke alamat IP pelayan anda dan anda seharusnya melihat output phpinfo() pada skrin anda. phpinfo() 的输出。

服务器管理界面

创建服务器后看到的界面是服务器管理仪表板。

使用Laravel Forge部署PHP Web应用程序

您可以在这里执行很多操作,例如:

  • 网站管理
  • 添加 SSH 密钥
  • 数据库配置
  • 更新 PHP 设置
  • 安排任务
  • 启动守护进程
  • 管理网络和配置防火墙
  • 使用 Blackfire 或 Papertail 监控应用程序
  • 配置元设置

其中捆绑了很多功能。我已经在本教程中介绍了重要的内容。让我们从站点管理开始。根据 Forge 文档:

站点代表服务器上的每个“域”。每个新配置的服务器都包含“默认”站点;但是,当您准备好启动生产站点时,您应该删除它并使用有效域名创建一个新站点。 块引用>

如您所见,Forge 已经为我们设置了默认站点。您可以创建任意数量的站点并将它们路由到您的子域。出于本教程的目的,我将坚持使用默认站点。默认情况下,Web 目录设置为 /public。这就是 Laravel 和大多数其他 Web 应用程序的配置方式。

如果您点击特定站点,您将看到站点管理界面。您可以从此处管理、部署和配置各个站点。

站点管理界面

这是界面最初的样子。

使用Laravel Forge部署PHP Web应用程序

您可以从 Git 存储库安装或安装 WordPress。出于本教程的目的,我创建了一个示例联系我们应用程序,您可以将其分叉到您的帐户中。您可以指定项目和分支的名称。完成后,您应该可以控制部署应用程序。

使用Laravel Forge部署PHP Web应用程序

我将带您快速浏览可用的选项。

立即部署和快速部署

要进行部署,您可以使用立即部署按钮手动部署。或者,您可以启用快速部署选项,当您将代码推送到所选 GitHub 存储库的 master 分支时,该选项会自动部署项目。

部署脚本

默认部署脚本从存储库中提取代码,安装依赖项,启动服务器,并在每次部署应用程序时运行迁移。这是实际的部署脚本。

cd /home/forge/redmonark.com
git pull origin laravelapi
composer install --no-interaction --prefer-dist --optimize-autoloader
echo "" | sudo -S service php7.2-fpm reload

if [ -f artisan ]
then
    php artisan migrate --force
fi

如果您需要调整它并添加额外的东西,您可以。

部署触发器 URL

您可以使用它将您的应用程序集成到第三方服务中或创建自定义部署脚本。当 URL 收到请求时,就会触发部署脚本。

更新存储库和分支

如果您需要更新分支或在不同的存储库上安装同一项目的较新版本,则可以使用这些选项。如果您要更新分支,则可能还需要更新部署脚本中的分支名称。

环境

Forge 自动为应用程序生成环境文件。一些详细信息(例如数据库凭据)会自动添加到环境中。但是,如果应用程序使用 API,您可以将 API 密钥安全地放置在环境中。即使您运行的是通用 PHP Web 应用程序,您也可以使用 getenv() 方法访问 ENV 变量。

队列工作人员

在 Forge 中启动队列工作程序与运行 queue:work

Antara muka pengurusan pelayan🎜 🎜Antara muka yang anda lihat selepas mencipta pelayan ialah papan pemuka pengurusan pelayan. 🎜 🎜Gunakan Laravel Forge untuk menggunakan aplikasi web PHP🎜🎜Anda boleh di sini Lakukan banyak tindakan, seperti: 🎜
  • Pengurusan Tapak Web
  • Tambah Kunci SSH
  • Konfigurasi pangkalan data
  • Kemas kini tetapan PHP
  • Menjadualkan tugas
  • Mulakan proses daemon
  • Urus rangkaian dan konfigurasi tembok api
  • Pantau aplikasi menggunakan Blackfire atau Papertail
  • Tetapan meta konfigurasi
🎜Ia mempunyai banyak ciri yang disertakan di dalamnya. Saya telah membincangkan perkara penting dalam tutorial ini. Mari kita mulakan dengan pengurusan tapak. Menurut dokumentasi Forge: 🎜
Tapak mewakili setiap "domain" pada pelayan. Setiap pelayan yang baru dikonfigurasikan mengandungi tapak "lalai" bagaimanapun, apabila anda bersedia untuk melancarkan tapak pengeluaran, anda harus memadamkannya dan membuat tapak baharu dengan nama domain yang sah.
🎜Seperti yang anda lihat, Forge telah menyediakan tapak lalai untuk kami. Anda boleh membuat sebarang bilangan tapak dan menghalakannya ke subdomain anda. Untuk tujuan tutorial ini, saya akan kekal dengan tapak lalai. Secara lalai, direktori web ditetapkan kepada /public. Beginilah cara Laravel dan kebanyakan aplikasi web lain dikonfigurasikan. 🎜 🎜Jika anda mengklik pada tapak tertentu, anda akan melihat antara muka pengurusan tapak. Anda boleh mengurus, menggunakan dan mengkonfigurasi tapak individu dari sini. 🎜 🎜Antara muka pengurusan tapak🎜 🎜Beginilah rupa antara muka pada mulanya. 🎜 🎜Gunakan Laravel Forge untuk menggunakan aplikasi web PHP🎜🎜Anda boleh memuat turunnya daripada pemasangan Repositori Git atau pemasangan WordPress. Untuk tujuan tutorial ini, saya mencipta contohHubungi Kamiapl yang boleh anda masukkan ke dalam akaun anda. Anda boleh menentukan nama projek dan cawangan. Setelah selesai, anda sepatutnya mempunyai kawalan ke atas penggunaan aplikasi anda. 🎜 🎜Menggunakan aplikasi web PHP menggunakan Laravel Forge🎜🎜Saya akan membawa anda ke sana Lihat dengan cepat pilihan yang tersedia. 🎜

Kerahkan sekarang dan gunakan dengan cepat

🎜Untuk menggunakan, anda boleh mengatur secara manual menggunakan butang Kerahkan Sekarang. Sebagai alternatif, anda boleh mendayakan pilihan Pengedaran Pantas, yang menggunakan projek anda secara automatik apabila anda menolak kod ke cawangan induk repositori GitHub pilihan anda. 🎜

Skrip agih

🎜Skrip penggunaan lalai menarik kod daripada repositori, memasang kebergantungan, memulakan pelayan dan menjalankan migrasi setiap kali aplikasi digunakan. Ini ialah skrip penggunaan sebenar. 🎜
ssh-keygen -t rsa
🎜Jika anda perlu mengubahnya dan menambah bahan tambahan, anda boleh. 🎜

URL pencetus penyebaran

🎜Anda boleh menggunakannya untuk menyepadukan aplikasi anda ke dalam perkhidmatan pihak ketiga atau membuat skrip penggunaan tersuai. Apabila permintaan untuk URL diterima, skrip penggunaan akan dicetuskan. 🎜

Kemas kini repositori dan cawangan

🎜Anda boleh menggunakan pilihan ini jika anda perlu mengemas kini cawangan atau memasang versi baharu projek yang sama pada repositori yang berbeza. Jika anda mengemas kini cawangan, anda juga mungkin perlu mengemas kini nama cawangan dalam skrip penggunaan. 🎜

Persekitaran

🎜Forge menjana fail persekitaran secara automatik untuk aplikasi. Beberapa butiran, seperti bukti kelayakan pangkalan data, ditambahkan secara automatik pada persekitaran. Walau bagaimanapun, jika aplikasi anda menggunakan API, anda boleh meletakkan kunci API dalam persekitaran dengan selamat. Walaupun anda menjalankan aplikasi web PHP generik, anda boleh mengakses pembolehubah ENV menggunakan kaedah getenv(). 🎜

Pekerja beratur

🎜Memulakan pekerja baris gilir dalam Forge adalah sama seperti menjalankan perintah queue:work Artisan. Forge menggunakan pemantau proses yang dipanggil Penyelia untuk mengurus pekerja baris gilir supaya proses kekal berjalan selama-lamanya. Anda boleh membuat berbilang baris gilir berdasarkan keutamaan baris gilir atau sebarang klasifikasi lain yang anda rasa berguna. 🎜

SSL

过去,为网站提供 SSL 保护绝非易事且免费。 Forge 允许您安装现有证书,或者您可以从 LetsEncrypt 获取免费证书。它既快速又简单。如果您需要通配符子域的 SSL,您可以将免费的 Cloudflare 证书添加到 Forge。

回到服务器管理界面,我们有SSH密钥。

添加 SSH 密钥

虽然仪表板上提供了大多数可配置选项,但如果您需要连接到服务器,则应该使用 SSH 来完成。 SSH 是登录 VPS 的更安全的方式,并且提供比密码更多的保护。

要通过 SSH 访问服务器,您需要生成密钥对(如果尚未生成)。服务器将可以访问公钥,而私钥将驻留在您的主机中。然后,您可以使用该设置连接到服务器实例。

使用Laravel Forge部署PHP Web应用程序

注意:从服务器管理仪表板添加的 SSH 密钥将特定于该服务器。如果您需要从现在开始自动将密钥添加到所有服务器,您可以从您的个人资料设置中添加它们。

要生成密钥对,请运行以下命令。

ssh-keygen -t rsa

系统会询问您几个问题,例如您想要存储密钥的文件以及用于提高安全性的密码。接下来,将 SSH 密钥添加到 ssh-agent。

ssh-add ~/.ssh/id_rsa

复制公钥并将其添加到 Forge 的 SSH 密钥列表中。

cat ~/.ssh/id_rsa.pub  # Copy the output of this command

配置 PHP 和 MySQL

您可以使用该界面来配置 PHP 和 MySQL。对于数据库,可用的选项包括:

  • 创建新数据库。
  • 添加新用户。
  • 更新用户对数据库的访问权限。
  • 更新 Forge 有关密码的知识。

确保在 .env 文件中填写更新的数据。

您可以配置以下 PHP 设置:

  • 升级到最新版本的 PHP。
  • 更改上传文件大小。
  • 针对生产环境优化 OPCache,以便将编译后的 PHP 代码存储在内存中。

其他重要设置

这里我列出了一些其他可用的设置。

安排任务

您可以使用 Forge 的调度程序来安排重复任务或运行 cron 作业。如果您需要定期发送电子邮件、清理某些内容或运行脚本,则可以使用任务计划程序。默认情况下会创建一个任务,该任务每晚运行 composer self-update 。您可以尝试以您选择的频率安排新的会议。

启动守护进程

守护进程是在后台进程中运行的计算机程序。 Laravel Forge 允许您启动守护进程并使用 Supervisor 来确保守护进程保持运行。如果守护进程由于某种原因崩溃,Supervisor 将自动重新启动脚本。

监控应用程序

Laravel Forge 内置了对工具的支持,这些工具可以通过收集有关资源(例如内存、CPU 时间和 I/O 操作)的数据来监控应用程序的性能指标。可用的工具有 B​​lackfire.io 和 Papertrail。要开始分析您的应用程序,您只需从第三方网站检索正确的凭据即可。

配置服务器网络和防火墙

如果您需要更新防火墙设置,则无需前往 AWS 控制台即可完成此操作。您可以从仪表板创建新的防火墙规则。如果您有使用相同提供商和区域配置的其他服务器,则可以设置服务器网络,以便它们可以轻松通信。

摘要

Laravel Forge 是一个令人难以置信的工具,它使部署变得轻而易举。它具有大量功能和易于使用的 UI,可让您轻松创建和配置服务器并部署应用程序。配置服务提供商后,您很可能不需要再次访问 AWS 控制台来管理服务器。

在本教程中,我介绍了使用 Laravel Forge 配置 AWS 的基础知识以及配置服务器和部署应用程序的步骤。我还讨论了 Forge 界面中几乎所有可用的功能。

对于那些刚刚开始使用 Laravel 或希望通过扩展来扩展您的知识、网站或应用程序的人,我们在 Envato Market 中提供了您可以学习的各种内容。

您是否有使用 Laravel Forge 或任何其他流行部署工具部署 PHP 应用程序的经验可以分享?让我们在评论中知道。

Atas ialah kandungan terperinci Sebarkan aplikasi web PHP menggunakan Laravel Forge. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn