티스토리 뷰

Local Laravel 셋팅

$ brew install php@7.3
$ curl -sS https://getcomposer.org/installer | php
$ composer global require laravel/installer
$ laravel new hello-laravel-project
$ cd hello-laravel-project
$ composer update
$ cp .env.example .env
$ php artisan key:generate
$ php artisan serve

브라우저로 접속

http://127.0.0.1:8000

터미널로 돌아가서

Ctrl + C

Azure App service 의 IIS 서버 설정

$ vi public/web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>

    <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true"/>

    <staticContent>
      <remove fileExtension=".svg" />
      <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
      <remove fileExtension=".woff" />
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <remove fileExtension=".woff2" />
      <mimeMap fileExtension=".woff2" mimeType="font/x-woff" />
    </staticContent>

    <httpProtocol>
      <customHeaders>
        <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains"/>
        <add name="Access-Control-Allow-Headers" value="X-Requested-With,Content-Type" />
        <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS,DELETE,PUT,PATCH" />
      </customHeaders>
    </httpProtocol>

    <rewrite>
      <rules>

        <rule name="Laravel" stopProcessing="true">
        <match url="^" ignoreCase="false" />

        <conditions logicalGrouping="MatchAll">
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        </conditions>

        <action type="Rewrite" url="index.php" appendQueryString="true" />

        </rule>

      </rules>
    </rewrite>

    <handlers>
      <remove name="OPTIONSVerbHandler" />
      <remove name="PHP56_via_FastCGI" />
      <add name="PHP56_via_FastCGI" path="*.php" verb="GET,HEAD,POST,PUT,DELETE,OPTIONS" modules="FastCgiModule" scriptProcessor="D:\Program Files (x86)\PHP\v7.3\php-cgi.exe" resourceType="Either" />
    </handlers>
  </system.webServer>
</configuration>

Github 에 소스 올리기

  1. Github 에서 repo 생성
  2. 로컬 프로젝트 경로에서
    $ git init -q
    $ git add .
    $ git commit -m "Initialization"
    $ git remote add origin [github 원격 저장소 경로]
    $ git push -u origin master

Azure Portal (https://portal.azure.com)

App Services

PHP 7.3 Stack 설정

Settings > Configuration > General settings > Stack settings > PHP 7.3 셋팅 > Save

composer 셋팅

Extensions > Add Extension > Composer 선택
Accept Legal terms Agree > OK 클릭

CI/CD 설정

deployment > deployment center

  1. Github 인증하여 연결
  2. Continue 버튼 클릭
  3. Build Provider 로 Azure DevOps Pipelines 선택
  4. 다음 단계 페이지 폼에서

Organization 입력
Repository 선택
Branch 선택

Default folder : "site\wwwroot" to "site\wwwroot\public"

  1. Summary 페이지에서 OK 하면
    Azure DevOps Pipelines 에 의해
    github repo 로부터 CI/CD 진행 시작됨.

진행상황 확인은
https://dev.azure.com > 로그인 > 지정했던 프로젝트명 클릭

CI 확인은
LNB 에서 Pipelines 선택 > Pipelines 페이지

CD 확인은
LNB 에서 Releases 선택 > '프로젝트명 - CD' 선택 > Release-1 클릭 > GUI 로 진행 state 확인

Web App 에서의 Laravel 설정

development tools > console

$ cp .env.example .env
$ php artisan key:generate

DB 셋팅 했다면

$ vi .env

DB_ 계열에 셋팅 값 입력

$ php artisan migrate

또는

development tools > App service editor 에서 GUI 편집 이용

Laravel 폴더 구조 강제 설정

settings > configuration > path mappings > virtuals application and directories

Default folder : "site\wwwroot" to "site\wwwroot\public"

웹브라우저로 접속하여 확인

Overview 페이지에서 URL 또는 IP 확인 후 웹브라우저 접속

댓글