| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- system error 113
- ParseError
- 오라클
- URLRewrite
- 객체
- Join
- Java
- 자바
- 프로그래머스
- docker
- 삼항연산자
- setter
- 외부접속 차단
- ifelse
- IIS보안
- for문
- 생성자
- 제어문
- getter
- 작성순서
- ServerHeader
- Linux
- php
- HAVING
- SQL
- 연산자
- DB연결 문제
- 문제해결
- mixedcontent
- 상속
- Today
- Total
목록php (4)
CoDream
안녕하세요! 지난 3편까지의 여정을 통해 우리는 도커 환경 문제, 경로 문제, PHP 버전 호환성 문제까지 모두 해결했습니다. 드디어 스크립트가 아무런 오류 없이 처음부터 끝까지 실행되었습니다!하지만 로그에 찍힌 결과를 보며, 저는 '동작하는 코드'가 '좋은 코드'는 아니라는 사실을 깨달았습니다. 제 스크립트는 서버에 부담을 주는 시한폭탄과 같았습니다. 이번 마지막 편에서는 이 스크립트를 어떻게 더 안전하고 빠르게 만들었는지, '코드 리팩토링' 과정을 공유합니다.최종 보스: 안전하고 빠른 코드를 향하여스크립트가 동작은 했지만, 아래와 같은 심각한 문제점들을 안고 있었습니다.문제점 1: 데이터 무결성 문제 (안전성)제 코드는 while 루프 안에서 댓글 하나를 삭제하고, 부모글 정보를 바로 업데이트하는 식..
지난 2편에서는 PHP의 매직 상수 __DIR__를 이용해 크론잡의 고질적인 include 경로 문제를 해결했습니다.이제 모든 외부 환경 문제는 해결되었으니, 드디어 스크립트의 핵심 로직이 실행될 차례라고 생각했습니다.하지만 기쁨도 잠시, 또 다른 종류의 오류가 저를 맞이했습니다.3차 관문: 뜻밖의 복병, 낡은 PHP 버전경로 문제를 해결하고 크론잡이 다시 실행되기를 기다린 후 로그 파일을 열어보니, 이번엔 이런 오류가 찍혀있었습니다.PHP Parse error: syntax error, unexpected '[' in /project/edu_config/update_enrollments.php on line 15Parse error는 PHP가 코드를 아예 이해조차 하지 못했다는, 즉 문법이 틀렸다는 의..
지난 1편에서는 docker exec 명령어를 이용해 서버(Host)의 크론잡이 도커 컨테이너 안의 PHP를 실행하도록 만드는 데 성공했습니다.드디어 스크립트가 실행되는가 싶었지만, 기쁨도 잠시, 로그 파일에는 새로운 오류 메시지가 저를 기다리고 있었습니다.2차 관문: 경로의 미로, include가 실패하다docker exec로 스크립트를 실행하니 이번엔 스크립트 내부의 include가 실패했습니다.로그 파일에 찍힌 오류는 다음과 같았습니다.PHP Warning: include_once(./_common.php): failed to open stream: No such file or directory_common.php 파일이 없다는 이 메시지는 저를 또다시 혼란에 빠뜨렸습니다. 파일은 분명히 제자리에 ..
"Lost connection to MySQL server at 'reading initial communication packet', system error: 113"→ 이 에러, 정말 황당하지만 원인은 의외로 단순했습니다. 📝 문제 배경새로운 PHP 애플리케이션 서버(A 서버)에서 MySQL이 설치된 별도 DB 서버(B 서버)에 접속을 시도했습니다.접속 정보는 다음과 같이 설정되어 있었습니다:mysql_connect('123.123.123.123:4306', 'app_user', 'secure_password');그런데 Workbench에서는 잘 연결되던 DB가, PHP에서는 전혀 접속되지 않고 다음과 같은 에러가 발생했습니다.🧨 에러 메시지Lost connection to MySQL server..