질문/조언질답게시판
Extra Form
PHP PHP 7.2
CMS XpressEngine

기존 php5를 사용하던 autoset9(아마)에서 오토셋10으로 변경했습니다.

php는 7.x대 버전이고요.

<?php if(!defined("__XE__")) exit();
$db_info = (object)array (
  'master_db' => 
  array (
    'db_type' => 'mysql',
    'db_port' => '3306',
    'db_hostname' => 'localhost',
    'db_userid' => 'root',
    'db_password' => 'autoset',
    'db_database' => 'eond',
    'db_table_prefix' => 'xe_',
  ),
  'slave_db' => 
  array (
    0 => 
    array (
      'db_type' => 'mysql',
      'db_port' => '3306',
      'db_hostname' => 'localhost',
      'db_userid' => 'root',
      'db_password' => 'autoset',
      'db_database' => 'eond',
      'db_table_prefix' => 'xe_',
    ),
  ),
  'default_url' => 'http://localhost/',
  'use_rewrite' => 'N',
  'time_zone' => '+0900',
  'use_prepared_statements' => 'Y',
  'qmail_compatibility' => 'Y',
  'use_db_session' => 'Y',
  'use_ssl' => 'none',
  'use_sso' => 'N',
  'use_cdn' => 'Y',
  'use_html5' => 'N',
  'use_mobile_view' => 'Y',
  'admin_ip_list' => NULL,
  'sitelock_whitelist' => 
  array (
    0 => '127.0.0.1',
  ),
);

원래 db.config.php파일은 이런데

xe 최신버전에껄 가져오니 이렇더군요.

<?php if(!defined("__XE__")) exit();
$db_info = (object)array (
   'master_db' =>
      array (
         'db_type' => 'mysql',
         'db_port' => '3306',
         'db_hostname' => '127.0.0.1',
         'db_userid' => 'root',
         'db_password' => 'autoset',
         'db_database' => 'eond',
         'db_table_prefix' => 'xe_',
      ),
   'slave_db' =>
      array (
         0 =>
            array (
               'db_type' => 'mysql',
               'db_port' => '3306',
               'db_hostname' => '127.0.0.1',
               'db_userid' => 'root',
               'db_password' => 'autoset',
               'db_database' => 'eond',
               'db_table_prefix' => 'xe_',
            ),
      ),
   'default_url' => 'http://localhost/eond/',
   'use_mobile_view' => 'Y',
   'use_rewrite' => 'Y',
   'time_zone' => '+0900',
   'use_prepared_statements' => 'Y',
   'qmail_compatibility' => 'N',
   'use_db_session' => 'N',
   'use_ssl' => 'none',
   'sitelock_whitelist' =>
      array (
         0 => '127.0.0.1',
      ),
   'use_sso' => 'N',
   'use_html5' => 'N',
   'admin_ip_list' => NULL,
);

여기서도 오류가 뜨길래, class/db/dbmysql.class.php 파일에서

mysql_을 모두 mysqli_로 수정하니 사이트는 정상적으로 뜹니다만..

백지로 뜹니다.

레이아웃 설정 모두 안한거처럼요.

admin으로 들어가도 로그인페이지가 안뜹니다.

어떤걸 확인해야할까요.

 

db.config.php에서 mysql을 mysqli로 수정하면 db정보를 확인하라는 xe안내메시지가 뜨고요. ㅠ

 

  • profile

    오토셋에는 MySQL(MariaDB)도 포함되어 있으니, DB가 재설치되었다면 기존의 DB 아이디/비번이 먹히지 않거나 아예 DB 내용이 다 날아갔을 수도 있습니다. 사이트가 돌아가고 있는 서버를 재설치하는 작업에는 상당한 리스크가 있지요...

    PHP 7에서 작동하지 않는 서드파티 자료가 있을지도 모릅니다. 오토셋 최신 버전은 PHP 7.2가 포함되어 있는데, 아직 BaseObject 대응이 되지 않은 자료가 널렸거든요. 이건 서버의 에러 로그를 확인해 보면 됩니다. 직접 운영하시는 서버라면 로그파일과 친해지셔야 해요. 문제가 있으면 XE타운 접속하기도 전에 우선 로그파일부터 뒤져보는 습관을 들이시기 바랍니다.^^

     

    mysql을 mysqli로 수정하는 것은 문제의 원인이 아니라 해결책의 일환입니다. PHP 7이라면 이건 당연히 수정해야 하는 것이고, 이것 때문에 안 되는 것도 아니고, 어떤 이유로도 다시는 mysql로 돌아갈 필요가 없습니다.

  • profile profile

    1. 에러는 다 고쳤습니다.
    error.log를 보고 mysql을 mysqli로 수정하던가 해서요.
    그런데 수정한게 xe코어란 말이죠 ;ㅁ;
    classes/db/DBMysql.class.php
    2. 접속은 되는데, 뭔가 설정 같은게 다 없는 상태로 되어있어요. 빈 공백 화면만 떠요.
    admin으로 로긴해서 확인해보려는데,
    http://localhost/eond/index.php?act=dispXimemberLoginForm&mid=index
    ximember 모듈로 설정되어있는거 같은데 이건 설치는 되어있고..그 뒤로 해결책을 모르겠네요..

    3. ximember 모듈을 삭제하면 로그인 폼까지는 뜨는데 로그인이 정상적으로 안되고, 아무런 메세지도 없네요;

    4. DB를 확인해보니, 해당 디비 자체가 없군요. -_-!;

    말씀하신대로 새로 설치하면서 디비가 리셋?되었나 그런거같네요.

    다시 디비 복원해보면 될듯 합니다.

    감사합니다.

  • profile profile
    디비 복원하신 후에 ./files/cache 캐시폴더를 강제로 삭제해 주세요. 디비가 없던 시절(?)에 빈 데이터를 캐싱해 놓아서 계속 문제가 되기도 합니다. (물론 삭제만 하고 재생성을 안 하면 곤란하니까, 관리자 화면 접속에 성공하시면 제일 먼저 캐시파일 재생성을 눌러주세요^^)
  • profile
    죄송한데 게시글과 관련 없는 다른 요청입니다.
    https://eond.com/logo

    여기 저희 사이트용 로고가 등록되어 있는데 삭제 부탁합니다. 제가 요청한 기억도 없는 것 같습니다.

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