-
Caddy Webserver 설정하기(Windows)IT 2020. 9. 13. 12:07반응형
웹서버로 Apache, Nginx 등 많지만 요즘 필받아서 공부하고 있는 Go 랭귀지로만 만들어진 웹서버가 있다
go 프로그램으로 간단한 웹서버를 만들어서 프로그램과 통신하는 것은 만들었지만
이렇게 노골(?)적으로 고성능 웹서버를 지향하는 프로그램이 있다니
호기심 발동 한번 설정해 본다
에 접속하여 윈도(X64버전만 존재) 버전을 다운받는다
놀랍게도 Go 답게 복잡하지 않은 단일 실행 파일 하나....
물론 오픈 소스이므로
에서 다운받아도 무방하다
적당한 위치에 파일을 카피해 놓고 실행하면 실행이 되지 않는다
설정파일을 만들어야 한다 기본적으로 설정파일은 Caddyfile 이라는 파일이다
:2020 { encode zstd gzip root * C:\dev\caddy\www file_server templates handle_errors { rewrite * /{http.error.status_code}.html file_server } log { output file C:\dev\caddy\logs\access.log { roll true # Rotate logs, enabled by default roll_size_mb 5 # Set max size 5 MB roll_gzip true # Whether to compress rolled files roll_local_time true # Use localhost time roll_keep 2 # Keep at most 2 log files roll_keep_days 7 # Keep log files for 7 days } } }
2020 포트로 웹서비스를 열고 root 디렉토리, 로그파일 등 대충 보면 이해가 갈듯
이렇게 설정을 하고
caddy run
명령을 주면 웹서비스가 시작된다
root 폴더에 index.html파일을 만들어서 접속해보면 접속이 된다
이제 PHP 설정을 해보자
에 접속해서 windows 용 다운로드 링크로 가서
VC15 x64 Non Thread Safe 버전을 다운로드 받는다
적당한 폴더에 압축을 풀고
php.ini-development 파일을 php.ini 로 복사하여 원하는 설정으로 변경한다
php 는 fastcgi 형식으로 실행하기 때문에 bat 파일을 하나 만든다
@ECHO off ECHO Starting PHP Fastcgi c:\dev\php\php-cgi.exe -b 127.0.0.1:9023 -c c:\dev\php\php.ini
이렇게 bat 파일을 만들어 실행을 하고
위에서 만든 Caddyfile 에 한줄을 추가한다
:2020 { encode zstd gzip root * C:\dev\caddy\www file_server templates php_fastcgi 127.0.0.1:9023 handle_errors { rewrite * /{http.error.status_code}.html file_server } log { output file C:\dev\caddy\logs\access.log { roll true # Rotate logs, enabled by default roll_size_mb 5 # Set max size 5 MB roll_gzip true # Whether to compress rolled files roll_local_time true # Use localhost time roll_keep 2 # Keep at most 2 log files roll_keep_days 7 # Keep log files for 7 days } } }
php_fastcgi 127.0.0.1:9023
이 문장을 넣고 다시 실행을 한다(bat 파일도 함께)
그리로 phpinfo() 함수를 실행하는 php에 접속해 보면
무사히 제대로 실행이 된다
첨가로 고성능 PHP 프레임워크인 Phalcon을 설정하려면
에서 확인하면 되는데 윈도용 파일은
github.com/phalcon/cphalcon/releases
에서 다운로드가 가능하다
현재 최신 버전은 phalcon_x64_vc15_php7.4_4.0.6+5190_nts 이다
이것을 다운로드 받아
php 의 ext 폴더에 풀어 놓는다 (물론 php_phalcon.dll 만)
이제 php.ini에 주석처리된
extension_dir = "ext"
을 주석해제를 하고
하단 extension이 첨부된 부분에
extension=phalcon
하나 더 추가한다
추가후 phpcgi bat파일을 실행해보면
이와 같은 에러가 난다
phalcon사이트에 보면
Phalcon 로딩 이전에 로딩하기 위해서 PSR 익스텐션이 필요합니다. 시스템에서 해당 익스텐션이 사용가능한지 확인해 주세요.
라는 문구가 있다 PSR 익스텐션을 설치해야 한다
에 접속해서 1.0.0 윈도 DLL 파일을 다운받는다
당연히 7.4 Non Thread Safe (NTS) x64 버전으로
다운받아서 php_psr.dll 파일을 역시 php 의 ext 파일에 복사한다
그후 다시 php.ini에
extension=psr
extension=phalcon를 추가하여 다시 phpcgi 배치파일을 실행하면 이상없이 실행이 된다
이제 다시 phpinfo 페이지에 접속해보면
이상없이 작동되는 것을 확인할 수 있다
역시 go 로 만들어진 프로그램답게 대부분의 플랫폼에서 다 지원되고 필요하다면 github에서 다운받아 컴파일을 해도 된다
복잡한 의존성없이 실행파일 하나로만 실행이 가능하고
설정이 단순하다
안정성과 성능이 받쳐준다면 매우 훌륭할듯 개인용으로 한번 사용해 봐야 겠다
반응형'IT' 카테고리의 다른 글
iOS 14 출시 (0) 2020.09.17 Apple Event 2020 (0) 2020.09.16 iOS 13.7 업데이트 (0) 2020.09.09 Asus Blue cave Merlin 펌웨어 5.1.2 (0) 2020.09.04 Asus 공유기 AiMesh 설정하기 (1) 2020.09.03