배포


로컬 컴퓨터에서 웹사이트를 개발을 완성하였다면, 이제는 서버로 코드를 배포해야 합니다. 코드를 서버로 배포하는 방법은 다양합니다. 전형적인 FTP, Git 등이 있습니다.

여러 방식중에서도 가장 많이 사용하는 방법은 FTP입니다. FTP를 사용하기 위해서는 별도의 Client 툴이 필요로 합니다. 지니 프레임워크는 내장 CLI 램프를 통하여 손쉽게 코드를 서버로 배포할 수 있습니다.

서버


직접 서버를 구축하고 운영하는 것은 많은 비용을 소요합니다. 지니는 버전 호환성을 유지하여 Cafe24, 고도몰과 같은 저럼한 호스팅 환경에서도 동작이 가능합니다. 물론 Azure 와 같은 클라우드 환경에서도 운영이 가능합니다.

간단한 호스팅


Cafe24,고도몰등 호스팅은 매우 저렴한 리눅스 기반의 호스팅을 제공합니다. 저렴한 가격과 지니를 통하여 웹사이트를 구축할 수 있습니다.

클라우드 연동


서비스 완성후에는 이를 서버로 배포를 하여야 합니다. 서버는 자신의 컨덴츠가 365일 24시간 안정적으로 서비스를 할 수 있도록 하기 위한 운영장비 입니다. 또한 서비스들을 전새계를 대상으로 하는 경우가 많습니다. 이를 위하여 지니PHP는 마이크로소프트 Azure 클라우드를 지원합니다. Azure 클라우드를 잘 몰라도 지니PHP에서 제공하는 CLI툴 lamp를 통하여 쉽게 클라우드 서버에 코드/컨덴츠를 배포할 수 있습니다.

서버연계


지니는 php 7버젼으로 개발되었습니다. Php언어가 지원되는 서버에서는 쉽게 파일 업로드 만으로도 실행을 할 수 있습니다 마이크로소프트 azure pass기능인 webapp을 생성 연동하여 쉽게 사이트를 구축할 수 있습니다.

코드배포


작성한 코드를 서버로 옴기는 작업은 다양한 방식이 있습니다. 전형적인 ftp 접속, git 저장소를 이용한 배포등 입니다.

그중에서도 ftp는 가장 쉬운 서버접속 및 배포 방식입니다. Ftp를 이용하기 위해서는 별도의 접속 프로그램이 필요로 합니다. 램프는 자체 ftp 클라이언트 기능을 통하여 작성한 코드를 서버로 배포합니다.

php lamp deploy:명령 폴더

형태로 입력하면 됩니다.

접속설정


램프를 통하여 배포를 하기 위해서는 ftp 접속 계정을 가지고 있어야 합니다. 접속 계정은 .ftpconfig.php 파일에 작성을 하면 됩니다.

깃을 통하여 코드의 이력를 관리하는 경우 .ftpconfig.php 파일을 관리에서 제외 합니다. 설정파일을 .gitignore 에 추가합니다.

증분배포


기존 ftp 프로그램을 이용한 코드 배포는 매번 파일들이 중복해서 업로드가 진행 됩니다.

이는 중복된 자원낭비와 시간이 소요 됩니다. 램프는 코드를 배포시에 로컬 파일과 서버의 파일 수정시간을 비교하여 코드를 업로드 합니다.

deploy:update 명령을 사용하면 됩니다.

타임존

주의시항으로는 서버와 로컬 머신이 같은 타임존 위치에 속해야 합니다. 만일 시간이 동기화 되어 있지 않으면 시간을 이용한 증분 백업을 할 수 없습니다. 로컬의 타임존 변경은 php.ini 파일에서 변경을 할 수 있습니다.

업로드


가끔씩 코드 전체를 덥었는 형태로 일괄 업로드가 필요한 경우가 있습니다. deploy:upload 명령은 시간을 비교하지 않고 모든 파일을 업로드 합니다.

Ignore 설정


배포작업시 제외할 파일이 있는 경우에는 ignore 파일을 설정하면 됩니다. .ftpignore 파일에 배포시 제외할 파일이나 폴더 경로를 입력 하시면 됩니다.

Ignore 설정은 아직 완벽하지 않습니다.

/aaa !/aaa/bbb

위와 같이 aaa폴더를 제외하지만 그안에 있는 /aaa/bbb 는 허용하는 형태의 패턴은 아직 구현이 되지 않았습니다. 아직 단순한 제외만 가능합니다.