OpenAI API Key 같은 민감한 값을 PHP 코드에 직접 작성하지 않고 /etc/environment 와 PHP-FPM www.conf 에 저장하여 사용하는 방법을 정리합니다. /etc/environment 에 환경변수 저장 CLI 환경이나 크론(c...
WebRTC 기반 화상 채팅이나 데이터 전송 서비스를 운영하다 보면, 특정 환경에서 연결이 실패하는 문제가 발생합니다. 특히 모바일 네트워크(LTE), 사내망, NAT 환경에서는 P2P 연결이 제대로 이루어지지 않는 경...
MySQL에서 날짜 데이터를 DATETIME 대신 유닉스 타임스탬프 형태로 저장하는 경우가 많습니다. 계산과 비교에는 유리하지만, 그대로 출력하면 사람이 읽기 어렵다는 단점이 있습니다. 이 글에서는 MySQL에서 유닉...
게시판이나 리스트 화면에서는 정확한 날짜보다 사용자가 체감하기 쉬운 상대 시간 표시가 더 적합한 경우가 많습니다. 아래 PHP 코드는 등록 시각을 기준으로 하루, 일주일 단위로 시간을 가공해 출력하는 방식...
채팅·소켓 서버 운영 시 반드시 알아야 할 프로세스 매니저 PM2가 필요한 이유 Node.js로 만든 서버는 항상 실행 상태를 유지해야 합니다. 서버 재부팅이나 예기치 않은 오류로 프로세스가 종료되면 ...
API 인증키는 외부 서비스와 통신할 때 본인임을 증명하는 중요한 정보입니다. 소스코드에 직접 노출하면 보안 문제가 생기기 때문에 운영체제 환경 변수 형태로 관리하는 것이 일반적입니다. 여기서는 우분투와 ...
서버를 운영하다 보면 예상치 못한 네트워크 문제를 겪을 때가 있습니다. 최근 저희는 후이즈(Whois) 문자 메시지 발송 서비스를 사용하던 중, 메시지가 발송되지 않고 PHP 로그에 다음과 같은 에러가 남는 이슈...
준비 단계 Vultr 관리자 페이지에서 Block Storage 용량 업그레이드 서버에서 현재 상태 확인 lsblk df -h 본격 확장 단계 마운트 해제 umount /mnt/blockstorage parted로 파티션 확장 ...
Cloudflare POP 서버 병목 테스트: 이미지가 느리게 뜨는 이유 웹사이트에 이미지가 간헐적으로 늦게 뜨는 현상을 겪고 계신가요? 단순히 서버 문제만은 아닐 수 있습니다. 이 글에서는 Cloudflare POP(Point of...
운영 중인 Ubuntu 서버에서 루트 디스크(/dev/vda1) 용량이 부족해지는 경우, Vultr 등 클라우드 환경에서는 Block Storage(/dev/vdb1)를 추가하여 디스크 공간을 확장할 수 있습니다. 이 글에서는 기존 /var/www...
우분투 서버를 운용하다 보면 /var/log 디렉토리 안의 로그 파일이 쌓이면서 디스크 공간을 압박하는 일이 잦습니다. 이 글에서는 로그 파일의 확인, 정리, 자동 관리 방법을 소개합니다. 자주 보는 로그 파일...
리눅스 서버를 운용 중이라면 반드시 알아야 할 기본 명령어 df 명령어란? df(disk free)는 현재 시스템의 디스크 공간 사용량을 확인할 수 있는 명령어입니다. 서버나 개인 컴퓨터에서 디스크가 가득 차는 ...
리눅스 서버에서 crontab -e를 이용하면, 원하는 명령을 정해진 주기마다 자동으로 실행할 수 있습니다. 예를 들어, 매시간 PHP 스크립트를 실행하거나, 매 30분마다 캐시를 비우는 작업 등을 처리할 수 있습니다...
MySQL에서 데이터베이스를 만들 때, 문자셋과 정렬 방식(Collation)을 함께 지정하면 더욱 명확한 설정이 가능합니다. 이번 포스트에서는 utf8_general_ci 정렬 방식으로 데이터베이스를 생성하는 방법을 알려드...
이번 글에서는 Cloudflare를 사용 중인 이미지 서버에서 특정 시간대 또는 브라우저에서 이미지가 간헐적으로 느리게 뜨는 문제를 분석하고 해결한 과정을 공유합니다. 문제 현상 일부 브라우저에서 이미지가...
포스트 삭제