반응형

apache 가 원인미상의 오류로 재시작되는 현상이 있어 원인을 찾아 보았다.

먼저 apache error log에 coredump 가 생성되었으니 확인해보라는 부분이 있었고,

coredump 가 생성된 위치를 알려준다. 해당 위치로 이동해보자.

 

cat 또는 vi 를 사용해 coredump 파일을 열어보았는데, 텍스트 파일이 아니었다.

그래서 여는 방법을 찾아보았더니, gdb 를 사용해야 했다.

하지만 단순히 gdb 로 연다고 해서 열리는게 아니라, 이걸 생성한 데몬을 기준으로 열어주어야 한다.

 

gdb /app/apache/bin/httpd /app/log/coredump/core.httpd.xxxx.2.xxxxx

 

이런식으로 coredump 파일을 열어주면 오류 내용이 출력되고, 어느 부분을 실행하다 오류가 발생했는지는 backtrace를 입력해주면 된다.

 

(gdb) backtrace
#0  0x00007f6765dc772a in __strchr_sse2 () from /lib64/libc.so.6
#1  0x00007f6765d7cfd6 in putenv () from /lib64/libc.so.6
#2  0x00007f6763ea7292 in php_putenv_destructor (pe=0x7f6727891b40)
    at /app/src/php-5.3.29/ext/standard/basic_functions.c:3435
#3  0x00007f6763f8585b in zend_hash_destroy (ht=0x7f66d423bd48) at /app/src/php-5.3.29/Zend/zend_hash.c:529
#4  0x00007f6763ea78a5 in zm_deactivate_basic (type=1, module_number=26, tsrm_ls=0x7f66d412c8f0)
    at /app/src/php-5.3.29/ext/standard/basic_functions.c:3768
#5  0x00007f6763f7a0af in module_registry_cleanup (module=<value optimized out>, tsrm_ls=<value optimized out>)
    at /app/src/php-5.3.29/Zend/zend_API.c:2173
#6  0x00007f6763f855b8 in zend_hash_reverse_apply (ht=0x7f676479e4a0,
    apply_func=0x7f6763f7a090 <module_registry_cleanup>, tsrm_ls=0x7f66d412c8f0)
    at /app/src/php-5.3.29/Zend/zend_hash.c:757
#7  0x00007f6763f78120 in zend_deactivate_modules (tsrm_ls=0x7f66d412c8f0)
    at /app/src/php-5.3.29/Zend/zend.c:867
#8  0x00007f6763f18509 in php_request_shutdown (dummy=<value optimized out>)
    at /app/src/php-5.3.29/main/main.c:1643
#9  0x00007f6764010257 in php_apache_request_dtor (r=0x7f670413c6c0)
    at /app/src/php-5.3.29/sapi/apache2handler/sapi_apache2.c:509
#10 php_handler (r=0x7f670413c6c0) at /app/src/php-5.3.29/sapi/apache2handler/sapi_apache2.c:681
#11 0x0000000000443450 in ap_run_handler (r=0x7f670413c6c0) at config.c:158
#12 0x0000000000446a7e in ap_invoke_handler (r=0x7f670413c6c0) at config.c:376
#13 0x0000000000492940 in ap_process_request (r=0x7f670413c6c0) at http_request.c:282
#14 0x000000000048f8c0 in ap_process_http_connection (c=0x7f672000d198) at http_core.c:190
#15 0x000000000044a9e0 in ap_run_process_connection (c=0x7f672000d198) at connection.c:43
#16 0x00000000004b03df in process_socket (thd=0x27f74a8, dummy=<value optimized out>) at worker.c:545
#17 worker_thread (thd=0x27f74a8, dummy=<value optimized out>) at worker.c:895
#18 0x00007f67660e3aa1 in start_thread () from /lib64/libpthread.so.0
#19 0x00007f6765e30c4d in clone () from /lib64/libc.so.6
(gdb)

 

해당 문제가 발생한 서버는 php5.3.29 라는 오래된 버전을 사용하고 있는 중인데,.. 

putenv() 를 실행할때 메모리 오류가 발생하였다. 그래서 해당 건을 $_SERVER 와 $_ENV를 활용한 코드로 대체하여 수정하였다.

 

끗.

반응형
반응형

브라우저 보안정책 강화로 인해 iframe 으로 php 외 다른 url 등을 불러왔을 때, set cookie의 기본 samesite 정책이 Lax 로 지정되어 iframe 내의 페이지가 set cookie 를 기본적으로 하지 못하도록 차단됩니다. 그래서 iframe 으로 사이트를 불러왔을때 로그인이 풀리는 현상이 있는데요.

 

php 에서 로그인 처리시, 혹은 session_start() 시에 아래 코드를 추가하면 해결이 가능합니다.

session_start();
setcookie("PHPSESSID", session_id(), time() + 3600, "/; samesite=None; Secure");

 

session_start() 다음에 생성된 session_id 를 PHPSESSID setcookie를 다시 해주는건데요. samesite 를 None 옵션을 주면 iframe 내에서 불러졌더라도 쿠키에 셋업되어 다른 페이지 이동시에 세션이 유지되게 됩니다.

반응형
반응형

엣지 브라우저를 사용하다보면 이미지에 마우스를 올렸을때 우측 상단에 비주얼 검색 아이콘이 뜨곤 한다

이걸 제거하려면 아래 코드를 이미지 태그에 걸어주면 된다

img {
	pointer-events: none;
}

 

다만 해당 비주얼 검색을 사용하는 사람이 있을수도 있으니 해당 기능을 제한적으로 사용하면 좋을꺼 같다.

반응형
반응형

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

 

PHP 인증 시도시 prompt 에서 입력한 암호값이 전달되지 않을 경우, 

위 값을 .htacess 에 넣어주면 된다.

반응형
반응형

php7.4-fpm 환경에서 $_SERVER['PHP_AUTH_USER'] 등의 서버 환경 변수 값이 식별되지 않는 문제가 발생하였다.

아래 .htaccess 에 내용을 추가하여 해결하였다.

 

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
반응형
반응형

Failed to set fetch cache https://xx.com/xx.jpg Error: fetch for over 2MB of data can not be cached

 

오류가 발생했을 때, 아래와 같이 조치하면 된다.

# 1
fecth('xx', { cache: 'no-store' });

# 2
export const dynamic = 'force-dynamic';

 

반응형
반응형

next-auth 를 설치하고 나서 인증 성공시 리디렉션 되는 경로의 포트가 3000이 기본으로 되어있어 실제 사용중인 포트가 일치하지 않는 문제가 생겼다. 검색하다보니 아래 URL에서 .env 에서 설정을 가이드하고 있어 변경하고 정상동작함을 확인했다.

 

https://next-auth.js.org/configuration/options#nextauth_url

 

Options | NextAuth.js

Environment Variables

next-auth.js.org

 

NEXTAUTH_URL="http://localhost:5000"

 

이런식으로 .env 파일에 NEXTAUTH_URL 을 설정해주면, redirect 시에 포트가 정상적으로 내가 원하는 값으로 변경이 되었다 

반응형
반응형

 

구매가격: 1,000 원

천원에 나올때 득템 ㅎㅎ 

생각보다 너무 가벼워서 무게를 잘 버티지 못함.....

그래서 밑받침을 바닥에 대게끔 거의 눕다시피해서 쓰고 있는중...

 

별점 2/5

반응형

'자유 > 알리테무도전기' 카테고리의 다른 글

그래픽 카드 지지대  (1) 2024.01.21
USB 컴퓨터 볼륨 컨트롤러  (0) 2024.01.21
포켓몬 키캡  (0) 2024.01.21

+ Recent posts