개발자는 자동화를 좋아합니다. 개발과 생산 사이의 모든 프로세스에서 워크플로우를 간소화하는 스크립트를 원합니다. 배포도 마찬가지입니다.
푸시 최종적으로 애플리케이션을 구축하고 배포하는 과정은 지금 배포 버튼을 누르는 것만큼 간단해야 하지만, 대부분의 경우 그렇게 되지 않습니다. 결국 우리는 서버 구성, 환경 설정, 프로덕션 빌드와 관련이 없다고 생각되는 파일 이동 등에 시간과 리소스를 투자했습니다.
우리 중 일부는 수동으로 서버에 파일을 보내거나 GitHub 저장소에 코드를 푸시하기 위해 FTP를 사용하는 것을 선호하는 반면, 다른 일부는 배포 도구를 사용하여 프로세스를 단순화하는 것을 선호합니다. Laravel Forge는 PHP 배포를 쉽게 만들어주는 도구 중 하나입니다.
Laravel 브랜드 이름에 오해하지 마세요. Laravel 외에도 이 서비스를 사용하여 WordPress, Symphony, Statamic 또는 PHP라면 다른 웹 프로젝트를 호스팅할 수도 있습니다. 개인적으로 저는 간단하고 시작하기 쉽기 때문에 Laravel Forge를 좋아합니다.
이 튜토리얼에서는 Laravel Forge를 AWS와 연결하는 단계를 안내하고 이것이 제공하는 기능을 살펴보겠습니다.
Laravel Forge를 사용하면 클라우드 서버를 가동하고 Git 및 사용 가능한 일부 인기 있는 서버 공급자를 사용하여 배포 프로세스를 처리할 수 있습니다. 프로세스는 아래에 설명되어 있습니다.
먼저 AWS 또는 기타 클라우드 제공업체를 Forge 계정에 연결해야 합니다. 다음으로 소스 제어(예: GitHub)를 Forge에 연결합니다. 이제 서버를 생성할 수 있습니다. 서버에 소스 제어 저장소를 설치합니다. 마지막으로 배포 버튼을 누릅니다. 쉽지요?
Laravel Forge를 사용하여 구성된 서버는 다음 스택과 함께 제공됩니다:
서버를 생성한 후 추가로 구성할 수 있습니다.
가입 시 제공되는 다양한 요금제 중에서 선택할 수 있습니다. 저는 월 12달러 기본 요금제를 선택했습니다. 하지만 목록에 있는 모든 항목에 5일 동안 액세스할 수 있는 무료 평가판이 제공됩니다.
로그인하시면 아래와 같은 화면을 보실 수 있습니다.
서비스 제공자로 Digital Ocean, AWS, Linode 및 Vultr를 선택할 수 있습니다. 또는 사용자 지정 VPC와 함께 Forge를 사용할 수 있습니다. 소스 제어의 경우 Forge는 GitHub, GitLab 및 Bitbucket을 지원합니다. 이 자습서에서는 소스 코드 제어를 위해 Forge 및 GitHub와 함께 작동하도록 AWS를 구성하는 기본 사항에 대해 설명합니다. 완료되면 원하는 만큼의 서버를 생성하고 구성할 수 있습니다.
목록에 있는 다른 서비스 제공업체를 사용하는 경우 이 단계를 건너뛰고 나중에 AWS 및 Laravel Forge를 구성한 후 문의해 주세요.
Forge와 AWS를 설정하려면 아래 단계를 따라야 합니다.
Laravel Forge에 로그인하고 서비스 공급자로 AWS를 선택하세요. 액세스 키 ID(key)와 보안 액세스 키(secret)를 입력하라는 메시지가 표시됩니다. Laravel Forge에 대한 충분한 액세스를 제공하는 정책을 사용하여 특정 IAM 사용자를 생성해야 합니다. IAM은 문제가 발생할 경우 액세스를 취소할 수 있도록 각 사용자에 대한 권한을 매핑하는 Amazon의 방법입니다.
AWS 콘솔에 로그인하고 새 IAM 사용자를 생성하세요.
사용자에게 의미 있는 이름을 지정하고 Programmatic Access 확인란을 선택하세요.
laravel-forge IAM 사용자에게 올바른 권한을 설정하세요. 사용자 그룹은 권한 관리에 적합하므로 새 사용자 그룹을 만듭니다. 이제 자연스러운 질문은 "Forge 사용자가 어떤 정책에 액세스해야 합니까?"입니다. AdministratorAccess를 부여할 수는 있지만 그렇게 해서는 안 됩니다.
Forge가 사용자를 대신하여 서버를 생성하고 구성하도록 하려면 두 가지 정책을 추가해야 합니다.
IAM 계정을 확인하세요. 다음 페이지에서 액세스 키와 비밀번호를 확인할 수 있습니다.
Laravel Forge 페이지로 이동하여 붙여넣으세요. 그게 다야.
아직 연결하지 않았다면 GitHub/Bitbucket 계정을 Forge에 연결하세요. 서버를 생성하면 Forge는 공개 키를 계정에 추가합니다. 새로운 서비스 공급자를 추가하거나 소스 제어를 업데이트해야 하는 경우 프로필에서 이러한 옵션을 찾을 수 있습니다.
새 서버를 추가하려면 서버 만들기 페이지로 이동하세요.
AWS 프리 티어를 사용하는 경우 1GB RAM이 포함된 t2.micro를 선택하세요. 다른 설정은 기본값을 사용하겠습니다. 여기에는 데이터베이스 MySQL 및 PHP 버전 7.2가 포함됩니다. 나중에 데이터베이스 이름을 사용자 정의할 수 있습니다. 단순화를 위해 로드 밸런서를 사용하지 않기로 결정했습니다. 포스트 프로덕션의 비밀을 알고 싶다면 이 튜토리얼의 마지막 부분에서 그 내용을 다루었습니다.
서버를 생성하는 데 최대 5분이 걸릴 수 있습니다. sudo 액세스를 위한 자격 증명이 제공됩니다. 나중에 사용할 수 있도록 안전한 장소에 보관하세요. 예상대로 작동하는지 확인하려면 서버의 IP 주소로 이동하면 화면에 phpinfo()
의 출력이 표시됩니다.
서버를 생성한 후 보게 되는 인터페이스는 서버 관리 대시보드입니다.
여기에서 다음과 같은 많은 일을 할 수 있습니다:
많은 기능이 번들로 포함되어 있습니다. 이 튜토리얼에서는 중요한 내용을 다뤘습니다. 사이트 관리부터 시작해 보겠습니다. Forge 문서에 따르면:
사이트는 서버의 각 "도메인"을 나타냅니다. 새로 구성된 모든 서버에는 "기본" 사이트가 포함되어 있습니다. 그러나 프로덕션 사이트를 시작할 준비가 되면 이를 삭제하고 유효한 도메인 이름을 사용하여 새 사이트를 만들어야 합니다. 块引用>보시다시피 Forge는 우리를 위해 기본 사이트를 설정했습니다. 원하는 만큼의 사이트를 만들고 이를 하위 도메인으로 라우팅할 수 있습니다. 이 튜토리얼에서는 기본 사이트를 그대로 사용하겠습니다. 기본적으로 웹 디렉터리는
/public
로 설정되어 있습니다. 이것이 Laravel과 대부분의 다른 웹 애플리케이션이 구성되는 방식입니다.특정 사이트를 클릭하면 사이트 관리 인터페이스가 나타납니다. 여기에서 개별 사이트를 관리, 배포 및 구성할 수 있습니다.
사이트 관리 인터페이스
처음 인터페이스는 다음과 같습니다.
Git 저장소에서 WordPress를 설치하거나 설치할 수 있습니다. 이 튜토리얼의 목적을 위해 계정에 포크할 수 있는 샘플 Contact Us 애플리케이션을 만들었습니다. 프로젝트 및 분기 이름을 지정할 수 있습니다. 완료되면 애플리케이션 배포를 제어할 수 있습니다.
사용 가능한 옵션을 간략하게 살펴보겠습니다.
지금 배포하고 빠르게 배포하세요
배포하려면 지금 배포 버튼을 사용하여 수동으로 배포할 수 있습니다. 또는 선택한 GitHub 저장소의 마스터 브랜치에 코드를 푸시할 때 프로젝트를 자동으로 배포하는 빠른 배포 옵션을 활성화할 수 있습니다.
배포 스크립트
기본 배포 스크립트는 저장소에서 코드를 가져오고, 종속성을 설치하고, 서버를 시작하고, 애플리케이션이 배포될 때마다 마이그레이션을 실행합니다. 실제 배포 스크립트입니다.
으아아아수정하고 내용을 추가해야 하는 경우 그렇게 할 수 있습니다.
배포 트리거 URL
이를 사용하여 애플리케이션을 타사 서비스에 통합하거나 사용자 정의 배포 스크립트를 만들 수 있습니다. URL에 대한 요청이 수신되면 배포 스크립트가 트리거됩니다.
저장소 및 분기 업데이트
브랜치를 업데이트하거나 다른 저장소에 동일한 프로젝트의 최신 버전을 설치해야 하는 경우 이 옵션을 사용할 수 있습니다. 분기를 업데이트하는 경우 배포 스크립트에서 분기 이름을 업데이트해야 할 수도 있습니다.
환경
Forge는 애플리케이션용 환경 파일을 자동으로 생성합니다. 데이터베이스 자격 증명과 같은 일부 세부 정보는 환경에 자동으로 추가됩니다. 그러나 애플리케이션이 API를 사용하는 경우 환경에 API 키를 안전하게 배치할 수 있습니다. 일반 PHP 웹 애플리케이션을 실행하는 경우에도
getenv()
메서드를 사용하여 ENV 변수에 액세스할 수 있습니다.대기열 작업자
Forge에서 대기열 작업자를 시작하는 것은
queue:work
Artisan 명령을 실행하는 것과 같습니다. Forge는 프로세스가 영원히 실행되도록 대기열 작업자를 관리하기 위해 감독자라는 프로세스 모니터를 사용합니다. 대기열 우선순위 또는 유용하다고 판단되는 기타 분류를 기반으로 여러 대기열을 생성할 수 있습니다.SSL
过去,为网站提供 SSL 保护绝非易事且免费。 Forge 允许您安装现有证书,或者您可以从 LetsEncrypt 获取免费证书。它既快速又简单。如果您需要通配符子域的 SSL,您可以将免费的 Cloudflare 证书添加到 Forge。
回到服务器管理界面,我们有SSH密钥。
添加 SSH 密钥
虽然仪表板上提供了大多数可配置选项,但如果您需要连接到服务器,则应该使用 SSH 来完成。 SSH 是登录 VPS 的更安全的方式,并且提供比密码更多的保护。
要通过 SSH 访问服务器,您需要生成密钥对(如果尚未生成)。服务器将可以访问公钥,而私钥将驻留在您的主机中。然后,您可以使用该设置连接到服务器实例。
注意:从服务器管理仪表板添加的 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 操作)的数据来监控应用程序的性能指标。可用的工具有 Blackfire.io 和 Papertrail。要开始分析您的应用程序,您只需从第三方网站检索正确的凭据即可。
配置服务器网络和防火墙
如果您需要更新防火墙设置,则无需前往 AWS 控制台即可完成此操作。您可以从仪表板创建新的防火墙规则。如果您有使用相同提供商和区域配置的其他服务器,则可以设置服务器网络,以便它们可以轻松通信。
摘要
Laravel Forge 是一个令人难以置信的工具,它使部署变得轻而易举。它具有大量功能和易于使用的 UI,可让您轻松创建和配置服务器并部署应用程序。配置服务提供商后,您很可能不需要再次访问 AWS 控制台来管理服务器。
在本教程中,我介绍了使用 Laravel Forge 配置 AWS 的基础知识以及配置服务器和部署应用程序的步骤。我还讨论了 Forge 界面中几乎所有可用的功能。
对于那些刚刚开始使用 Laravel 或希望通过扩展来扩展您的知识、网站或应用程序的人,我们在 Envato Market 中提供了您可以学习的各种内容。
您是否有使用 Laravel Forge 或任何其他流行部署工具部署 PHP 应用程序的经验可以分享?让我们在评论中知道。
위 내용은 Laravel Forge를 사용하여 PHP 웹 애플리케이션 배포의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!