2022년 5월 11일 수요일

codeigniter4(ci4) 404 페이지 설정

 /app/Config/Routes.php

$routes->set404Override(function($message=null){
    $response = service('response');
    $response->setStatusCode(404);
    echo view('errors/html/http404', ['message'=>$message]);
}); 

ci4 공식문서의 예제로 404페이지를 오버라이드 할 경우 HTTP 헤더에 200으로 떨어지는 문제가 있어 위와 같이 처리가 가능하다.


또는 에러를 전반적으로 처리하는 컨트롤러가 있다면

$routes->set404Override(function($message=null)
{
    $errors = new \App\Controllers\Errors;
    $errors->error404($message);
}

위와 같이 처리가 가능하다. $this->response는 바로 사용할수 없기 때문에 service 함수로 객체를 생성해서 사용하면 된다.

2021년 2월 24일 수요일

mysql-proxy 업데이트 후 오류

centos6 mysql-proxy 오류

오래된 mysql-proxy 업데이트 후 실행시 아래와 같은 오류가 발생하는 경우


** (process:8153): CRITICAL **: GLib version too old (micro mismatch), got: lib=2.22.5, headers=2.28.8
** Message: Initiating shutdown, requested from mysql-proxy-cli.c:276
세그멘테이션 오류 (core dumped)

glib 버전이 낮아서 발생하는 오류다. 업데이트해 주자

yum update glib2
service mysql-proxy start

2020년 7월 10일 금요일

로그파일 삭제 하기 cat /dev/null 주의점

crontab과 같이 반복적으로 프로세스가 시작 종료 되는 환경
#] cat /dev/null > filename.log
filename.log을 삭제하지 않고 0바이트의 빈 파일로 만든다.

종료되지 않는 프로세스에 물려있는 경우
예를 들면 백그라운드에서 종료되지 않고 모니터링 하는 프로그램일 경우
#] test.sh > filename.log &

이와 같은 경우 cat /dev/null > filename.log
내용은 초기화 되지만 용량에는 변화가 없다. 프로세스를 재시작 또는 종료시켜야 용량도 초기화 된다.

현재 상황과 용도에 맞게 사용해야 한다.


2020년 6월 5일 금요일

gitlab 업데이트 방법(centos6)


centos6 기준으로 gitlab-ce가 설치된 경우에 해당된다.

현재 사용하고 있는 12.5.3의 버전을 최신 버전이 13.0.5으로 올리려고 간만에 다음 명령어를 입력한다.

yum install gitlab-ce

잠시 후 아래와 같은 오류가 발생된다.
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Error in PREIN scriptlet in rpm package gitlab-ce-13.0.3-ce.0.el6.x86_64
gitlab preinstall: It seems you are upgrading from major version 12 to major version 13.
gitlab preinstall: It is required to upgrade to the latest 12.10.x version first before proceeding.
gitlab preinstall: Please follow the upgrade documentation at https://docs.gitlab.com/ee/policy/maintenance.html#upgrade-recommendations

내용인 즉 메이저버전 업데이트가 있어 바로 진행을 할 수 없으니 12버전의 최종 버전 설치 후 업데이트를 진행하라 알려 주고 종료된다.

gitlab의 버전의 구성은 3자리로 되어 있다. (예: 12.5.3)
- 12(Major) : 이전 버전과 호환되지 않은 신규api 기능 추가
- 5(Minor) : 이전버전과 호환되는 사소한 기능 추가
- 3(Patch) : 이전버전과 호환되는 버그 수정 등

메이저버전이 동일할 경우 업데이트 가능
yum install gitlab-ce

메이저 버전이 바뀐 경우 (예: 12.x.x -> 13.x.x)
1) 12.x.x 중 최종버전 설치
2) 13.0.x 의 최초 버전 설치
3) 13.x.x 최종 버전 설치

메이저 버전이 2단개 이상 바뀐경우(예: 11.x.x -> 13.x.x)
※ 중간버전을 건너 뛰지 않고 순차적으로 업데이트한다.
1) 11.x.x 최종버전 설치
2) 12.0.x 최초버전 설치
3) 12.x.x 최종버전 설치
4) 13.0.x 최초버전 설치
5) 13.x.x 최종버전 설치

gitlab 지정버전 설치
yum install gitlab-ce-12.10.10


버전확인 : 
 
업그레이드 방법(공식) :





2020년 6월 4일 목요일

.htaccess: RewriteRule: bad flag delimiters 오류

메인페이지 위치가 서브디렉토리로 변경되면서 간단하게 .htaccess 파일을 변경해서 처리하기로 했다.

.htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^$ new_dir [R=302, L]

간단하게 루트디렉토리 접근시 new_dir로 임시 이동하고 종료한다는 간단한 문법이다.
그런데 500 Internal Server Error 이 출력된다.

error로그를 확인해보면 .htaccess: RewriteRule: bad flag delimiters 라고 남아있다.

잘못된 부분은 [R=302, L] 에서 쉼표와 L사이의 공백에 있다.

다음과 같이 붙여 쓰자 [R=302,L]

참고로 아래 사이트에서 .htaccess 문법검사가 가능하다.



2020년 5월 24일 일요일

SSL 보안서버 인증서 설치 확인 사이트

SSL 인증서를 적용하고 웹브라우저 상에서 https로 접근해서 사이트가 잘 뜨는것 까지 확인했는데.... 페이스북 디버거 페이지에서 접근하면 Curl Error : SSL_CACERT SSL certificate problem: unable to get local issuer certificate 문구가 뜨면서 페이스북에서 접근이 불가능하다.

아래 사이트에서 SSL 테스트가 가능하다.








위 사이트에서 SSL설치시 체인에 문제가 있다는것을 발견하고 설치는 정상적으로 되었으나 웹방화벽에 SSL인증서 문제가 있어 재설치 요청으로 문제가 해결됨.


2020년 3월 26일 목요일

php5.4 에서 php5.6 으로 업그레이드

remi 저장소가 이미 설치되어 있다는 전제하에 아래와 같이 업그레이드 가능하다.
#] yum --enablerepo=remi-php56 upgrade php*


아래와 같이 저장소를 찾을 수 없는 경우 따로 받아 설치한다.
libwebp-0.4.3-3.el6.x86_64: failure: Packages/l/libwebp-0.4.3-3.el6.x86_64.rpm from epel: [Errno 256] No more mirrors to try.

#] wget http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/l/libwebp-0.4.3-3.el6.x86_64.rpm
#] rpm -Uvh libwebp-0.4.3-3.el6.x86_64.rpm
#] yum --enablerepo=remi-php56 upgrade php*
#] php -v

따로 opcache가 필요하다면
#] yum --enablerepo=remi-php56 install php-opcache

설정파일은 /etc/php.d/ 안에 ini 파일들이 존재한다.
※ yum remove로 php를 삭제 후 설치 하지 않아도 된다.