티스토리 뷰

반응형

kimsq . php5.4.x 버전에서 7.4버전으로의 이전 마이그레이션 작업 후기


작업과 관련해서 작업설명의 글로 대신 보여드릴게요




아래는 작업보고 

안녕하세요. 작업 진행 상황을 간략하게 설명드리겠습니다. 최근 킴스큐의 CPM 마이그레이션 작업에 정신없이 매달리고 있어, 대화에 늦게 응답하게 된 점 양해 부탁드립니다. 작업 내용은 기록하고 있으나, 수정된 파일은 대표적인 것만 정리하겠습니다. 전체적으로 1,000개 이상의 파일을 수정해야 하기에 모든 내용을 나열하기는 어렵습니다.

1. 기존 환경 분석
킴스큐는 이전에 PHP 5.5.38 버전을 사용하고 있었습니다. 이 버전은 TLS 1.2 또는 TLS 1.3을 지원하지 않아 보안상의 문제가 발생할 수 있었습니다. 특히 결제 시스템에서 TLS 프로토콜은 매우 중요한 요소이기 때문에, 이를 해결하기 위해 PHP 7.2 이상으로의 이전이 필요했습니다. 또한 데이터베이스를 MySQL에서 MariaDB로 변경하기로 하여 성능과 안정성을 더욱 강화할 수 있었습니다.

2. 데이터베이스 이전
데이터베이스를 이전하는 작업은 대략 2시간에서 4시간 정도 소요될 것으로 예상됩니다. 초기 테스트 데이터베이스를 초기화한 후, 새로 받은 데이터베이스를 업로드하였습니다. MySQL과 MariaDB 간의 호환성이 뛰어나서 데이터베이스 설정을 수정하지 않고도 이전이 가능했습니다. SQL 파일은 125MB의 업로드 제한으로 인해 3개의 파일로 분할하여 처리했습니다.

3. PHP 7.4로의 마이그레이션
현재 작업 중인 PHP 버전은 7.4이며, 에러 메시지를 전부 출력한 후 fatal error를 점검하면서 문제를 해결해 나가고 있습니다. Warning이나 Deprecated 메시지는 큰 문제 없이 넘어가도 됩니다. fatal error는 웹사이트 기능에 직접적인 영향을 미치기 때문에, 반드시 확인해야 합니다. 예를 들어, 사이트 주소 접속 시 home으로 리다이렉트되거나, 특정 액션과 미드 값을 전달할 때 fatal error가 발생하는 경우가 많습니다.

4. 작업 진행 상황
금일 작업한 내용 중 1번 항목의 약 80%를 완료했습니다. 주요 수정 사항은 다음과 같습니다:
.htaccess 파일 관리
system.open.php 수정: 14줄에 디버그용 에러 출력을 추가했습니다. get_magic_quotes_gpc()를 제거하고 대체 코드로 수정했습니다.
$변수이름[키값]을 $변수이름['키값']으로 수정
단축 태그 <?를 <?php로 변경
배열 키: $a[id] 대신 $a['id'] 형태로 수정.
쿼리문 수정: 쿼리문에서 변수를 사용할 때는 "내부의 '$변수'" 대신 "{$변수}" 형태로 수정.
DB 접속 정보 수정: /_sys/_var/db/db_info.php에서 kind를 mariadb로 변경했습니다.
mariadb.php 추가: 해당 파일을 /_sys/_var/db/set/에 추가했습니다.
내부 함수: mysql_* 함수를 mysqli_*로 변경하고, $DB_CONNECT를 첫 번째 인자로 넣도록 수정했습니다.
-위에서 기존 킴스큐 베이스의 코드에서는 db_*의 내부함수로 적용하고 외부프로그램이나 플러그인들은 mysqli_*로 진행
PHP 버전 업그레이드에 따라 deprecated된 함수 및 구조 변경 사항 적용
현재 진행 중인 작업은 에러 메시지를 출력하며 코드에서 문제를 찾아 해결하는 방식입니다. 특별한 기술은 사용하지 않고 있으며, 단지 코드의 문법을 점검하고 수정하는 느낌으로 작업하고 있습니다. 예를 들어, 마침표, 느낌표, 물음표 등의 사용을 보다 정확하게 하여 가독성을 높이고 있습니다.

5. 작업 단계
초반 작업에서는 PHP의 fatal error를 해결하고, 웹 브라우저에서 출력에 이상이 없다면 에러 메시지를 비활성화합니다. 이는 에러 메시지로 인해 JavaScript 소스가 침범되어 이벤트가 작동하지 않는 문제를 방지하기 위함입니다.

JavaScript 작동 여부를 확인하고, 웹 브라우저에서의 이벤트 관련 기능을 점검합니다.

결제 관련 기존 코드의 PHP 문법을 수정합니다.

마지막으로 LG U+ 결제 관련 소스를 수정하여 마무리합니다.

6. 이후 계획
작업이 완료된 후에는 테스트 서버에서 기능을 확인한 후, 실제 이전 여부를 결정할 것입니다. 데이터베이스는 가장 최종 데이터로만 이전할 계획입니다. 이러한 과정을 통해 킴스큐 CPM의 안정적인 마이그레이션을 완수할 것입니다.

7. 결론
킴스큐의 PHP 버전 마이그레이션과 서버 이전 작업은 웹사이트의 성능과 안정성을 높이는 데 중요한 역할을 할 것입니다. 최신 PHP 버전으로의 업그레이드는 보안성을 강화하고 사용자 경험을 개선할 수 있는 기회를 제공합니다. 앞으로도 지속적인 모니터링과 업데이트를 통해 더욱 안전하고 빠른 서비스를 제공할 수 있도록 노력할 것입니다. 이러한 변화는 웹사이트의 발전을 위한 중요한 발걸음이며, 사용자에게 보다 나은 서비스를 제공하기 위한 지속적인 노력의 일환입니다.

 

위처럼 보냈는데 중요한 몇개를 적어두겠습니다.

현재 php 버전, db 종류 및 버전, 언어셋(이건 요새 거의 uft-8임)

옮겨갈 곳의 php 버전, db 종류 및 버전, 언어셋. (이건 요새 거의 uft-8임)

코드수정에서는

class 선언 후 __construct

$_GET, $_POST 관련제어
키값 배열에서 '' 처리와 {} 처리 부분. 기본 변수표현과 쿼리에서 표현 두군데 확인해서 수정해야된다
*이때 주의 js쪽 코드이거나 fwrite 나 변수이름을 변수로 하는 경우 등의 표현 주의
*주로 date()함수쪽

&new 등

 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
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
글 보관함