php79 stack v0.9.12 업데이트 – PHP 7.2 추가

PHP 7.2 설치 지원이 추가되었고, 이미 알려진 문제들에 대한 개선이 이루어졌습니다.

특히 app-install.sh 스크립트의 결과 화면이 이해하기 쉽게 개선되었습니다.

./app-install.sh --user=laravel54 --domain=laravel54.php79.net --app=laravel54 --php=70

stack 관련 문의 – https://github.com/php79/stack/issues


https://github.com/php79/stack/blob/master/CHANGELOG.md

v0.9.12 (2017-09-16)

Added

  • app-install.sh 에서 –skip-install 옵션을 추가하여 앱 자동 설치만 제외할 수 있도록 개선함 https://github.com/php79/stack/issues/4
  • app-install.sh 에서 비밀번호 자동생성 기능 추가
  • 보안 강화를 위해, 비밀번호 자동생성 기본 길이를 12자에서 32자로 늘림
  • app-install.sh 에서 Laravel 5.4, 5.5 설치 추가
  • PHP 7.2 설치 추가

Fixed

  • status.sh 실행 속도 개선 및 서비스별 설정을 구분하여 표시하도록 개선 https://github.com/php79/stack/issues/22
  • 시간 동기화 명령인 ntpdate 실패(대부분 방화벽 차단, DNS 이슈)시에도 경고만 보여지고 설치가 진행되도록 개선 https://github.com/php79/stack/issues/31
  • cpu core 수가 2개 인 경우, nginx.conf 의 worker_processes 가 0 으로 잘못 설정되던 오류 수정
  • self-update.sh 실행전과 후에 nginx 설정 테스트 추가 https://github.com/php79/stack/issues/5

screwim 로 디비 접속 정보 암호화 하기

디비 접속 정보 암호화 하기

보안 강화을 위해, 디비 접속 정보 등이 담긴 설정 파일을 암호화하는 방법을 소개해드립니다.

물론 실제 동작시엔 실행단이나 메모리에서 해당 정보를 파악할 수 있어 완벽한 보안 기법은 아니지만, 하나의 보안 관문을 추가하는 정도라 생각하시면 됩니다.

테스트 환경

김정균님이 제작하신 screwim 확장 모듈을 사용해, 개발 서버에서 설정 파일을 암호화하여 운영 서버에 적용하는 과정을 살펴보겠습니다.

CentOS 6/7 + PHP 7.0 (remi repo) 환경을 기준으로 테스트하였으며, php79 stack을 사용중이신 분들은 PHP 7.0 이 설치된 상태에서 따라 해보시면 됩니다.

screwim 로 디비 접속 정보 암호화 하기 더보기

php79 backup 중요 업데이트 – 월단위 백업 누락건

https://github.com/php79/backup 에서는 다음 3가지 백업 솔루션을 제공하고 있습니다.

이 가운데 ‘로컬 및 원격 증분 백업’은 rsnapshot 이란 백업 프로그램을 사용중입니다.
rsnaphsot은 크론 데몬에 스케쥴을 등록해두고, 매일/매주/매월 실행되도록 되어 있습니다.

그런데 ‘매월 백업’이 실행되지 않는 설정 오류가 발견되었습니다.
즉, 매일 7일간 백업과 매주 4주간 백업은 정상 실행됩니다.
그러나 4주가 지난 최근 3개월 간의 월 단위 백업이 되지 않고 있었습니다.

따라서 꼭 다음 내용대로 설정을 수정해주셔야 월 단위 백업이 정상적으로 실행됩니다.

기존 증분 백업 사용자 해결 방법 – https://github.com/php79/backup/issues/4

‘로컬 풀 백업’은 rsnapshot 을 사용하지 않아, 따로 하실 작업이 없습니다.

PHP 7.0 호환성 문제시, 이전 버전인 5.6 으로 빠르게 전환하기

XE 의 PHP 7.0 호환성 문제

며칠 전 XE 1.8.11 사이트가 포함된 서버를 신규 서버로 이전했습니다.

신규 서버는 https://github.com/php79/stack 으로 N(nginx)PM 을 자동 설치했습니다.

일부 구버전 사이트는 PHP 5.3, XE 사이트에는 PHP 7.0 을 적용했습니다.

잘 돌아가나 했더니, 오늘 파일 첨부시 https://www.xetown.com/qna/147895 문제가 발생한다고 연락이 오네요.

불금 저녁인데 말이죠. ㅜㅜ

PHP 7.0 호환성 문제시, 이전 버전인 5.6 으로 빠르게 전환하기 더보기

ionCube loader 간편 설치

기존 ionCube loader 설치 방법

ionCube 개발사에 방문하고, 다운받고, 압축 풀고…
서버에 올리고, ini 파일 수정하고, 테스트, 서비스 재시작하고…
잘못되면 다시 앞으로 돌아가 무한 반복하시죠?

php79 stack 에서의 간편 설치

  • PHP 5.3 에 ioncube 모듈을 추가하고 싶으신가요? 아래 명령이면 한번에 완료됩니다.

[code lang=bash]
/root/stack/php/ioncube-loader-install.sh 53
[/code]

ionCube loader 간편 설치 더보기

stack: PHP 5.3 ~ 7.0 + Nginx + MariaDB + 앱 자동 설치

PHP 설치, 업데이트 따른 반복 작업을 단순하게 할 수 없을지 많은 고민을 해왔습니다.

그래서 그동안 사용하던 여러 자동화 스크립트를 하나의 패키지로 묶어 공개했습니다.


php79 stack

Nginx, PHP 5.3 ~ 7.0, MariaDB 를 한번에 설치합니다.

설치 방법 – https://github.com/php79/stack

stack: PHP 5.3 ~ 7.0 + Nginx + MariaDB + 앱 자동 설치 더보기

리눅스 백업 1.0

최근 랜섬웨어 등으로 인해, 백업의 중요성이 더 커지고 있습니다.
따라서 초보자분들도 쉽게 자동화된 백업을 구축할 수 있는 솔루션을 만들어 보았습니다.

백업 기능

  • /home 폴더 계정단위 백업 생성
  • MySQL/Maria DB 계정단위 백업 생성
  • 백업 용량을 고려하여, 오래된 백업 자동 삭제 지원
  • 백업 용량을 획기적으로 줄여주는 증분 백업 지원 (rsnapshot)
  • 운영 서버의 데이타를 별도 백업 장비에서 원격 백업 지원 (rsnapshot)
    • 운영 서버와 백업이 분리되어, 운영 서버가 랜섬웨어 등에 공격당해도 데이타가 안전합니다.

백업 구축 시작

오픈소스(MIT) 라이선스이므로, 회사에서도 제한 없이 사용하실 수 있습니다.

안전한 코딩 – 비밀번호, 보안 토큰 비교 방법

코딩시 비밀번호나 보안 토큰 등 중요한 값을 비교할 때, 사소한 코딩 습관이 보안 취약점을 예방할 수 있습니다.
바로 ‘일치 연산자(===)’와 ‘동등 연산자(==)’의 차이점을 알고, 가능한 ‘일치 연산자(===)’만 사용해야 합니다.

– 비밀번호 비교의 2가지 예제
– 잘못된 비교 방법의 문제
– 결론 – 안전한 코딩

안전한 코딩 – 비밀번호, 보안 토큰 비교 방법 더보기

Cron 중복 실행 해결

리눅스 서버에서 매시간, 매일 자동으로 실행되는 스케쥴 작업은 Cron 데몬을 사용하게 됩니다.  특히 매일 새벽에 자동 백업을 걸어놓는 경우에 많이 사용하는데, 간혹 백업이 2회씩 중복 실행되는 문제를 겪는 경우가 있습니다.  따라서 이러한 장애 발생의 원인과 해결 방법을 찾아보겠습니다.
– cron 로그를 통한 중복 실행 위치 찾기
– cron 중복 실행의 원인 파악
– anacron 은 왜 도입되었을까?

Cron 중복 실행 해결 더보기