본문 바로가기

분류 전체보기358

CentOS7 nginx 에서 http/2 적용하기 nginx 를 컴파일하지 않고 패키지 설치하는 방식으로 http/2 를 적용하는 방법입니다. 먼저, 기존의 nginx 를 제거합니다. 그런 후, 아래의 명령어를 실행하여 nginx 를 설치합니다. yum install https://repo.aerisnetwork.com/stable/centos/7/x86_64/aeris-release-1.0-4.el7.noarch.rpmyum install nginx-moreyum --enablerepo=aeris-testing update nginx-more 설치 후, 기존 설정 경로 conf.d 에 있는 vhost 설정 파일들을 conf.d/vhosts 로 옮깁니다. 설정 파일 중 include 경로 및 http/2 관련 내용을 추가합니다. server { clie.. 2017. 8. 29.
Angular 에서 RxJS unsubscribe() 관련 팁 import "rxjs/add/operator/takeWhile"; takeWhile() 을 이용하는 방법으로서 먼저 상기처럼 모듈을 임포트합니다. 그리고 멤버 변수로 boolean 을 선언한 후, 아래와 같이 subscribe() 를 호출합니다. .....private aliveResults: boolean = true; ..... this.service.getResults().takeWhile(() => this.aliveResults).subscribe( ); 끝으로 ngOnDestroy 이벤트에서 다음과 같이 처리합니다. ngOnDestroy() { this.aliveResults = false;} 이와 같이 사용하면 별도 unsubsribe()를 호출하지 않아도 됩니다. 저의 경우, Ajax 호.. 2017. 4. 27.
Laravel 점검 모드에서 AWS ELB health 검사 \App\Http\Middleware\CheckForMaintenanceMode.php 를 작성합니다. 2017. 4. 25.
PHP 7 에서의 예외처리 - Throwable, Exception, Error PHP 의 경우 Error 와 Exception 을 구분합니다. PHP 7 에서는 Error 중 E_ERROR, E_RECOVERABLE_ERROR 의 경우 Exception 처럼 사용(try, catch, finally)이 가능합니다.(그 외 Error 는 기존의 방식과 동일합니다.) 하지만, Exception 처럼 사용이 가능하다고 Exception 클래스를 상속받은 것은 아닙니다. 별도의 Error 클래스를 상속받았지요. 다만, Exception 과 Error 클래스는 모두 Throwable 인터페이스를 상속하여 구현되었습니다. Throwable { abstract public string getMessage ( void ) abstract public int getCode ( void ) abst.. 2017. 4. 21.
ELB 에 HTTPS 설정하기... 먼저, Certificate Manager 로 들어가 인증서 가져오기를 선택합니다. 인증서 본문에는 crt 파일을, 인증서 프라이빗 키에는 key 파일의 내용을 복사하여 붙여넣습니다. 인증서 체인에는 체인 파일의 내용을 복사하여 붙여넣습니다. 만약, key 파일 생성시 비밀번호를 사용하였다면 이를 제거하고 사용합니다.(파일명은 상황에 맞게 고쳐씁니다.) openssl rsa -in ssl.key -out ssl-nopass.key 이제 ELB 설정에서 Listeners 를 추가합니다. 기존 EC2 에 설치되어 있는 웹서버(nginx)의 SSL 옵션을 사용하지 않을거라서 Instance Protocol 은 HTTP 로 설정합니다. 따라서 Health Check 도 기존 HTTP 설정을 그대로 사용합니다. .. 2017. 4. 13.
CentOS 7 NativeScript 개발 환경 구축하기 요근래 페이스북에서 네이티브스크립트 관련 글들이 자주 노출되길래 한번 설치해보았습니다. 주말인지라 집에서 작업해보았구요. 집에서는 리눅스 데스크탑을 주로 사용하고 있습니다.^^ 일단 설치 및 테스트 환경은 다음과 같습니다. CentOS 7 x64Node.js v6.10.1Java 1.8.0_121 (openjava)gcc 4.9.4PhpStorm - NativeScript 플러그인 설치 설치와 관련한 문서는 다음을 참고하였습니다. http://docs.nativescript.org/angular/start/ns-setup-linux 먼저, 32비트 런타임 라이브러리를 설치합니다. sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686 그리고 Andro.. 2017. 4. 8.
Angular4 업그레이드하기 기존, 개발 환경(2017/02/17 - [프로그래밍/언어 - PHP] - Laravel5 + Angular2 + Fuse-box 사용하기)에서 Angular4 로 업그레이드하였습니다.(Angular2 에 대한 하위 호환성 및 좀 더 작고 빠른 것이 Angular 4 의 특징이라고 할 수 있습니다.) 먼저, Windows 에서 npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dy.. 2017. 3. 28.
Laravel5 + Angular2 + Fuse-box 사용하기 먼저, Laravel5 + Angular2 환경을 구축하기 위하여 제법 복잡한 설정들을 하였습니다. 2016/11/09 - [프로그래밍/언어 - PHP] - Angular2 설치하기 - Laravel 5 하지만 개발하면서 불편한 점이 한두가지가 아니더군요. gulp typescript, gulp copy 명령어의 연속... 그리고 브라우저 새로고침 반복들... 이후, webpack 의 존재를 알게되었지만 이상하게 관련 설정을 하기 싫더군요.(게으름이...) 그러다 우연히 Fuse-box 란 놈을 발견하게 되었습니다. 자석에 이끌리듯 설정하게 되었네요. 1. 설치 npm 을 사용하여 fuse-box 를 설치합니다. npm install fuse-box --save-dev 2. 환경설정(디버그) 라라벨 설치.. 2017. 2. 17.
PhpStorm 에서 Laravel PHPUnit 원격 설정 먼저, 접속할 Remote PHP 서버 정보를 추가합니다. PHP 설정에서 인터프리터를 추가한 원격 PHP 로 지정한 후, Path mappings 를 이용하여 디렉토리를 매핑합니다. PHPUnit 설정에서 By Remote Interpreter 를 실행하여 추가한 후, Use Composer autoloader 를 선택하고 서버의 laravel/vendor/autoload.php 를 지정합니다. 이후, 테스트 클래스를 지정하여 실행하면 됩니다. 2016. 12. 27.
PhpStorm 의 .idea 디렉토리 git ignore 처리하기 .idea 등 특정 디렉토리 이하 파일들에 대한 ignore 를 처리하기 위하여 아래처럼 설정합니다. 가령, .idea 디렉토리인 경우 설정에서 Version Control > Ignored File > Add 를 실행한 후, Ignore all files under 를 실행하여 해당 디렉토리를 지정한 후, Terminal 에서 아래의 명령어를 실행합니다. git rm --cached .idea/* 2016. 12. 26.
Angular2 설치하기 - Laravel 5 Elixir 를 사용하는 방법은 이전 포스팅을 참고하여 주세요. 2016/06/13 - [프로그래밍/언어 - PHP] - Elixir 사용하기 - Laravel 5 package.json 파일에 설치할 패키지를 추가합니다. elixir-typescript 대신 saaksin-elixir-typescript 를 사용합니다.(대충 수정해서 Angular2 용으로 npm 패키지 등록하였습니다. ^^) { "private": true, "scripts": { "prod": "gulp --production", "dev": "gulp watch" }, "devDependencies": { "gulp": "^3.9.1", "laravel-elixir": "^5.0.0", "saaksin-elixir-typescri.. 2016. 11. 9.
PhpStorm 원격 디버깅 - xdebug 원격 서버에 xdebug 패키지를 설치합니다. yum install php-pecl-xdebug 관련 설정을 추가합니다. vi /etc/php.d/15-xdebug.inixdebug.remote_enable=1xdebug.remote_host="localhost"xdebug.remote_port=9000xdebug.remote_log="/tmp/xdebug.log"xdebug.idekey="PHPSTORM"xdebug.remote_mode="req" 원격 서버에서 php-fpm 을 재실행합니다. 개발 PC 의 PhpStorm 에서 PHP Debug Connection 의 리스닝 모드를 활성화합니다. 원격서버에서 개발 PC로 연결이 가능하도록 SSH 터널링을 합니다. Putty 를 사용하는 방법은 많이 알.. 2016. 11. 4.
CodeCommit 사용하기 - PhpStorm IAM 에 user 등록하고, AWSCodeCommitFullAccess 를 정책으로 추가합니다. 그런후, PC 에서 생성한 SSH 공개키를 업로드한 후에 아래와 같이 사용합니다. 먼저, PhpStorm 에서 프로젝트의 VCS 를 Git 으로 지정합니다. 그리고 프로젝트 소스를 Git 에 추가하고 커밋합니다. 커밋시 삭제하고 싶은 파일이나 디렉토리가 있으면, 선택 해제하고 커밋 메시지를 입력합니다. 아마존의 CodeCommit 에서는 리포지토리를 생성합니다. 사용할 이름(저장소명)과 설명을 작성합니다. 리포지토리가 생성되면, 접근할 수 있는 SSH 경로를 복사합니다. 끝으로, PC 에서(프로젝트의 git 루트 경로) 아래와 같이 원격 저장소를 orgin 으로 추가합니다. git remote add ori.. 2016. 9. 23.
cron hourly 오류 메일이 계속 수신될 경우... 어느날 갑자기 아래와 같은 메일이 계속적으로 오기 시작하였습니다. /etc/cron.hourly/0yum-hourly.cron: Not using downloaded repomd.xml because it is older than what we have: Current : Tue Aug 9 13:58:01 2016 Downloaded: Tue Aug 9 02:17:58 2016 검색해보니 yum 캐시 문제인 듯 하여 이를 정리하였습니다. 참고로 yum cache 의 용량 확인은... du -sh /var/cache/yum 전체 캐시의 삭제는 아래의 명령어를 사용하였습니다. yum clean all 효과가 있는지는 좀 더 살펴봐야겠네요. ^^ 2016. 8. 10.
Laravel 5.2 Whoops 디버그 패키지 사용하기 Laravel 4 에서 볼 수 있었던 Whoops 를 Laravel 5 에서 사용하기 위하여 아래의 composer 패키지를 추가합니다. filp/whoops app\Exceptions\Handler.php 를 아래와 같이 수정합니다. protected function renderExceptionWithWhoops(Exception $e) { $whoops = new \Whoops\Run; $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler); return new \Illuminate\Http\Response( $whoops->handleException($e), $e->getStatusCode(), $e->getHeaders() ); } public.. 2016. 6. 3.