질문/조언팁/리소스 공유

서버이전을 한 20번 이상 해보고 해드리면서 얻은 팁들입니다.

에러가 나면 십중팔구가 이런 문제들이라 글 남겨봅니다. 

 

1. php 연동 확인

php 연동이 되지 않는 경우가 간혹 있습니다.

phpinfo.php 파일을 하나 만들어서 연동이 정상적으로 되는지 확인해보세요.

 

<?php
phpinfo();
?>

 

phpinfo창이 뜨지 않고 파일로 다운받아진다? 그럼 연동이 제대로 되지 않고 있는 겁니다.

 

 

2. php 버전 확인

이전 호스팅이나 서버에서는 php5.6~php7.1 를 사용하다가 새로 옮긴 서버에 php버전이 7.2거나 7.3이면 당연히 오류가 발생하겠죠.

 

php7.2 이상부터는 return new Object를 모조리 return new BaseObject로 변경해주셔야 합니다.

위젯, 애드온, 모듈 포함해서 싹다요.

 

XE/Rhymix가 설치된 경로로 이동해서 아래 명령어를 실행시켜주세요. /var/www/html이라면 cd /var/www/html

 

find ./ -name "*.php" -exec sed -i 's/return\snew\sObject/return new BaseObject/g' {} \;

find ./ -name "*.php" -exec sed -i 's/extends\sObject/extends BaseObject/g' {} \;

 

 

*추가

$var = new Object(); 형식도 $var = new BaseObject(); 형식으로 변경해주셔야 합니다.

 

3. files 권한 확인

딴건 다 되는데 XE접속하면 404에러가 뜬다? 그럼 거의 90%가 이거때문일 확률이 높습니다.

files 권한이 777이여야하는데 이전하고 권한을 바꾸지 않은 경우입니다.

XE/Rhymix가 설치된 경로로 들어가서

 

chmod -R 777 files/

 

실행시켜주시면 됩니다.

 

chmode 777 files 만 하면 안되요. 그 하위폴더까지 777로 쭉 바꿔야 합니다.

 

 

4. DB config 파일을 수정 안한 경우

이전하고 데이터베이스 계정과 비밀번호가 바뀌였을수도 있는데 수정을 안하시는...;

XE의 경우 XE가 설치된 경로/files/config/db.config.php에서 DB정보를 입력해주시고

Rhymix의 경우 RX가 설치된 경로/files/config/config.php에서 DB정보를 수정해주시면 됩니다.

정확하게 입력했는데도 안된다? 그럼 php와 DB가 연동되는지 먼저 확인해봐야겠죠.

dbconnect.php파일 하나 만드시고

 

- mysql일 경우

<?php

$hostname = "127.0.0.1";
$username = "DB계정";
$password = "비밀번호";
$dbname = "DB이름"; // 없으면 하나 만드세요.

$connected = mysql_connect($hostname, $username, $password) or die("연동 실패");
$result = mysql_select_db($dbname, $connected);

if ($result) {
  echo("연동 성공");
} else {
  echo("연동 실패");
}

mysql_close($connected);

?>

 

-mysqli일 경우

<?php

$hostname = "127.0.0.1";
$username = "DB계정";
$password = "비밀번호";
$dbname = "DB이름"; // 없으면 하나 만드세요.

$connected = mysqli_connect($hostname, $username, $password) or die("연동 실패");
$result = mysqli_select_db($dbname, $connected);

if ($result) {
  echo("연동 성공");
} else {
  echo("연동 실패");
}

mysqli_close($connected);

?>

 

 

 

끄읕

글쓴이 도토리묵

profile
https://skim0726.github.io
  • profile

    2. $var = new Object(); 이렇게 쓰는 서드파티 자료도 가끔 있더군요.

    3. 네, 이거 중요하죠... files 아래에 있는 수많은 서브폴더와 파일들까지 모두 퍼미션을 변경해야 하는데, files만 달랑 변경하시는 분들이 은근히 많더라구요. 아마 XE를 처음 설치할 때는 files만 퍼미션을 변경해 주면 되니까 이전할 때도 똑같이 하시는 것 같습니다. 서브폴더와 파일이 많으면 FTP 프로그램으로는 일괄 변경하기가 어렵기도 하고요. 물론 서버 세팅 및 이전을 해주시는 분이 아예 처음부터 퍼미션 문제가 발생하지 않도록 FTP 계정과 PHP 실행 권한을 동일하게 맞춰주시면 더욱 좋습니다^^

    4. 예제 코드는 mysqli를 사용하도록 해주시면 좋겠습니다. 요즘 새로 세팅하는 서버는 대부분 mysql 함수를 사용할 수 없는 PHP 7.x 버전대일 테니까요.

  • profile profile
    오옹 감사합니다
  • profile profile
    2. 코어에서 그렇게 사용하는 코드들이 여럿 더러 존재하더라고요 그래서 그런듯......
  • profile
    스크랩해뒀습니다 ^^/
  • profile profile
    충성충성^^7
  • ?
    제일 좋은건 suexec 환경에서 php를 돌리는것이죠. 그러면은 퍼미션을 777로 줄 필요가 없습니다.

서버에 요청 중입니다. 잠시만 기다려 주십시오...