Q&A

라이믹스 설치 에러

2018.12.20 02:29
2,026
0
CMS/프레임워크 XE 1.x
개발 언어 PHP 7.0

20181220_110029.png

라이믹스 설치가 끝나고 나면 뿜는 에러입니다.

기존 XE 자료가 들어있는 DB를 선택하고 테이블 접두사를 xe로 하면 설치 진행이 되지 않고 제자리로 돌아옵니다.

접두사를 rx 등으로 바꾸거나 새로운 DB를 생성해서 설치하면 위의 화면같은 에러를 뿜어냅니다.

 

저게 무슨 코드지요??

카르마 Lv. 4
imageprocess, 통합검색확장모듈
아빠팬더곰은 영원한 초보

댓글 17

  • 2018.12.20 02:44 #1131550
    json_decode를 해보면 "오류 메시지를 표시하지 않도록 설정되어 있습니다. 서버의 에러 로그에서 자세한 내용을 확인해 주십시오." 라고 하네요.

    php.ini에서 display_errors = On으로 변경하여 에러 메시지를 표시하도록 하거나, 에러 로그를 보시면 답이 나올 것 같습니다. 라이믹스 설치에 필요한 PHP 확장모듈이 설치되어 있지 않거나 뭐 그런 거겠지요.

    이미 XE가 설치되어 있는 DB에 동일한 접두사로 설치하려고 하면 안 되는 것이 당연합니다. 이미 XE가 설치되어 있다면 마치 새 버전 업데이트하듯 라이믹스를 덮어씌우는 것이 곧 설치입니다.
  • 2018.12.20 02:55 #1131559
    isplay_errors = On 으로 변경해서 설치하니 이번에는

    {"error":-1,"message":"Error #0 "Call to undefined method BaseObject::isConnected()" in modules\/install\/install.controller.php on line 207"}

    해당 코드는
    // Check DB.
    $oDB = DB::getInstance();
    if (!$oDB->isConnected())
    {
    return $oDB->getError();
    }
    입니다.
    DB 연결이 안되다는

    확인해보니까
    ./files/config 폴더는 생기는데
    db.config.php 화일 생성이 안되네요.
    퍼미션 문제는 아닌데... 뭐지???
  • 2018.12.20 02:57 #1131563

    DB 접속 정보가 틀리거나, 지원하지 않는 DB type을 선택하면 일어나는 현상입니다.

     

    라이믹스는 db.config.php 파일을 사용하지 않습니다. 설치가 완료되면 자동으로 생성되기는 합니다만, 그 파일을 직접 인클루드하는 일부 서드파티 자료를 배려하는 것 뿐이므로 해당 파일을 수정해도 효과는 없습니다.

  • 2018.12.20 03:03 #1131572
    5.5.60-MariaDB 입니다.

    설정시 mysql 한가지 DB 밖에 나타나지 않으니 선택이 잘못될 리는 없고
    DB 접속정보도 틀릴리는 없고
    XE에서 mysqli_innodb 로 잘 이용하고 있습니다.
  • 2018.12.20 03:12 #1131579
    $ mysql -u soonj -p
    Enter password:
    Welcome to the MariaDB monitor. Commands end with ; or \g.
    Your MariaDB connection id is 95552
    Server version: 10.1.37-MariaDB MariaDB Server
  • 2018.12.20 03:18 #1131584
    files 폴더를 지우고 다시 설치를 시도해 보세요. 처음에 XE와 같은 접두사로 설치하시려다가 안 되어서 뭔가 애매한 상태로 남아있을 수도 있습니다.
  • 2018.12.20 03:27 #1131588

    마찬가지입니다.

    DB도 drop하고 새로 만들었습니다.

     

    [soonj@localhost rhymix]$ sudo rm files/ -rf
    [soonj@localhost rhymix]$ ls -l
    합계 148
    -rw-r--r--  1 soonj users 11577 12월 20 08:53 CONTRIBUTING.md
    -rw-r--r--  1 soonj users   116 12월 20 08:53 COPYRIGHT
    -rw-r--r--  1 soonj users  1858 12월 20 08:53 Gruntfile.js
    -rw-r--r--  1 soonj users 18092 12월 20 08:53 LICENSE
    -rw-r--r--  1 soonj users  9193 12월 20 08:53 README.md
    drwxr-xr-x 10 soonj users  4096 12월 20 08:53 addons
    drwxr-xr-x 22 soonj users  4096 12월 20 08:53 classes
    -rw-r--r--  1 soonj users   404 12월 20 08:53 codeception.dist.yml
    drwxr-xr-x 12 soonj users  4096 12월 20 12:16 common
    -rw-r--r--  1 soonj users  1277 12월 20 08:53 composer.json
    -rw-r--r--  1 soonj users 36202 12월 20 08:53 composer.lock
    drwxr-xr-x  2 soonj users  4096 12월 20 12:15 config
    -rw-r--r--  1 soonj users  2048 12월 20 08:53 index.php
    drwxr-xr-x  8 soonj users  4096 12월 20 09:45 layouts
    drwxr-xr-x  5 soonj users  4096 12월 20 08:53 m.layouts
    drwxr-xr-x 33 soonj users  4096 12월 20 08:53 modules
    drwxr-xr-x  6 soonj users  4096 12월 20 08:53 tests
    drwxr-xr-x  5 soonj users  4096 12월 20 08:53 tools
    drwxr-xr-x 21 soonj users  4096 12월 20 08:53 vendor
    drwxr-xr-x  8 soonj users  4096 12월 20 08:53 widgets
    drwxr-xr-x  3 soonj users  4096 12월 20 08:53 widgetstyles
    [soonj@localhost rhymix]$ mkdir files
    [soonj@localhost rhymix]$ chmod 707 files/
    [soonj@localhost rhymix]$ ls files/ -l
    합계 0
    [soonj@localhost rhymix]$

    20181220_122654.png

  • 2018.12.20 07:51 #1131721
    install.controller.php 207줄 직전에 $oDB 변수를 찍어보고, classes/db/DB.class.php에서 getInstance()가 BaseObject를 반환하는 시점에도 체크포인트를 좀 넣어보셔야겠어요...
  • 2018.12.20 13:34 #1131791

    라이믹스와의 첫만남이 좀 거시기하네요.

    설치도 안되었는데 디버그부터 하고 있으니...ㅎㅎ

     

    ./config/config.user.inc.php는 분명 만들었는데 ./files/_debug_message.php가 아예 생기지도 않습니다. 내가 뭘 잘못했나 여러번 체크하다고  콘솔을 열어보니 500에러가 찍히네요.

     

    20181220_222721.png당초 git clone으로 받은 화일인데 몇번이고 지우고 복사해도 마찬가지라 혹씨나 하는 마음에 zip 화일을 다운받아서 다시 해봐도 마찬가지입니다.

  • 2018.12.20 13:49 #1131802

    설치가 완료되기 전에는 디버그 파일이 생성되지 않습니다. 일단 설치가 되면 훨씬 다양한 디버그 기능을 선택하여 사용하실 수 있는데, 설치가 안 되고 있으니.. ㅜㅜ 소스에서 직접 error_log()나 var_dump() 등을 사용하여 변수를 찍어봐야겠네요.

    500 에러가 뜨는 원인은 위의 문제와 같을 겁니다. 어떤 이유에서인지 DB 접속에 실패하여 정상적인 $oDB가 생성되지 않고 있습니다.

    XE와 라이믹스 모두 Travis CI와 연동하여, git 커밋이 발생할 때마다 자동으로 설치 테스트가 이루어지고 있습니다. 최근에 이 테스트가 실패한 기록은 없으니, 뭔가 서버 환경이 맞지 않는 게 있는 모양입니다. 만약 여기에 나와 있는 설치 조건을 모두 충족하는데도 설치가 되지 않는다면 저희가 파악하지 못한 의존성이 또 있는지도 모르겠네요.

  • 2018.12.21 04:19 #1132048

    오늘은 시간이 좀 나서 중간중간 디버그를 몇개 찍어봤습니다.

    먼저 에러가 생기는  modules/install/install.controller.php on line 207 직전의 $oDB

    O:10:"BaseObject":4:{s:5:"error";i:-1;s:7:"message";s:40:"DB 설정이 되어 있지 않습니다.";s:9:"variables";a:0:{}s:14:"httpStatusCode";i:200;}

     

    classes/db/DB.class.php에서 function getInstance()에 전달이 안됩니다.

    O:2:"DB":16:{s:12:"*master_db";N;s:11:"*slave_db";N;s:9:"*result";N;s:8:"*errno";i:0;s:9:"*errstr";s:0:"";s:8:"*query";s:0:"";s:13:"*connection";s:0:"";s:15:"*elapsed_time";i:0;s:23:"*elapsed_dbclass_time";i:0;s:22:"*transaction_started";b:0;s:15:"*is_connected";b:0;s:13:"*cache_file";s:55:"/home/http/htdocs/soonj.net/rhymix/files/cache/queries/";s:7:"db_type";N;s:10:"db_version";s:0:"";s:23:"use_prepared_statements";N;s:25:"*transactionNestedLevel";i:0;}

     

    다시  modules/install/install.controller.php

    107번 라인의 $config

    a:22:{s:14:"config_version";s:3:"2.0";s:2:"db";a:1:{s:6:"master";a:9:{s:4:"type";s:5:"mysql";s:4:"host";s:9:"localhost";s:4:"port";i:3306;s:4:"user";N;s:4:"pass";N;s:8:"database";N;s:6:"prefix";N;s:7:"charset";N;s:6:"engine";N;}}s:5:"cache";a:1:{s:15:"truncate_method";s:6:"delete";}s:3:"ftp";a:7:{s:4:"host";s:9:"localhost";s:4:"port";i:21;s:4:"path";N;s:4:"user";N;s:4:"pass";N;s:4:"pasv";b:1;s:4:"sftp";b:0;}s:6:"crypto";a:3:{s:14:"encryption_key";N;s:18:"authentication_key";N;s:11:"session_key";N;}s:6:"locale";a:5:{s:12:"default_lang";s:2:"ko";s:12:"enabled_lang";a:1:{i:0;s:2:"ko";}s:16:"auto_select_lang";b:0;s:16:"default_timezone";s:10:"Asia/Seoul";s:17:"internal_timezone";i:32400;}s:3:"url";a:5:{s:7:"default";N;s:26:"unregistered_domain_action";s:12:"redirect_301";s:9:"http_port";N;s:10:"https_port";N;s:3:"ssl";s:4:"none";}s:7:"session";a:9:{s:5:"delay";b:0;s:6:"use_db";b:0;s:8:"use_keys";b:0;s:7:"use_ssl";b:0;s:15:"use_ssl_cookies";b:0;s:6:"domain";N;s:4:"path";N;s:8:"lifetime";i:0;s:7:"refresh";i:300;}s:4:"file";a:2:{s:16:"folder_structure";i:2;s:5:"umask";s:4:"0022";}s:4:"mail";a:1:{s:4:"type";s:12:"mailfunction";}s:4:"view";a:5:{s:14:"manager_layout";s:6:"module";s:14:"minify_scripts";s:6:"common";s:14:"concat_scripts";s:4:"none";s:11:"server_push";b:0;s:8:"use_gzip";b:0;}s:5:"admin";a:2:{s:5:"allow";a:0:{}s:4:"deny";a:0:{}}s:4:"lock";a:4:{s:6:"locked";b:0;s:5:"title";s:11:"Maintenance";s:7:"message";s:0:"";s:5:"allow";a:0:{}}s:5:"debug";a:11:{s:7:"enabled";b:1;s:16:"log_slow_queries";i:0;s:17:"log_slow_triggers";i:0;s:16:"log_slow_widgets";i:0;s:24:"log_slow_remote_requests";i:0;s:12:"log_filename";N;s:12:"display_type";a:1:{i:0;s:7:"comment";}s:15:"display_content";a:0:{}s:10:"display_to";s:5:"admin";s:15:"write_error_log";s:5:"fatal";s:5:"allow";a:0:{}}s:3:"seo";a:8:{s:10:"main_title";s:0:"";s:13:"subpage_title";s:0:"";s:14:"document_title";s:0:"";s:10:"og_enabled";b:0;s:22:"og_extract_description";b:0;s:17:"og_extract_images";b:0;s:19:"og_extract_hashtags";b:0;s:17:"og_use_timestamps";b:0;}s:11:"mediafilter";a:3:{s:6:"iframe";a:0:{}s:6:"object";a:0:{}s:7:"classes";a:0:{}}s:8:"security";a:2:{s:16:"check_csrf_token";b:0;s:8:"nofollow";b:0;}s:6:"mobile";a:3:{s:7:"enabled";b:1;s:7:"tablets";b:0;s:8:"viewport";s:56:"width=device-width, initial-scale=1.0, user-scalable=yes";}s:23:"use_prepared_statements";b:1;s:11:"use_rewrite";b:1;s:7:"use_sso";b:0;s:5:"other";a:0:{}

    type, host, port  값은 보이는데 user, pass는 안보이네요.

     

    다시  modules/install/install.controller.php 144번 라인의 $config

    a:22:{s:14:"config_version";s:3:"2.0";s:2:"db";a:1:{s:6:"master";a:9:{s:4:"type";s:0:"";s:4:"host";N;s:4:"port";N;s:4:"user";N;s:4:"pass";N;s:8:"database";N;s:6:"prefix";N;s:7:"charset";N;s:6:"engine";N;}}s:5:"cache";a:1:{s:15:"truncate_method";s:6:"delete";}s:3:"ftp";a:7:{s:4:"host";s:9:"localhost";s:4:"port";i:21;s:4:"path";N;s:4:"user";N;s:4:"pass";N;s:4:"pasv";b:1;s:4:"sftp";b:0;}s:6:"crypto";a:3:{s:14:"encryption_key";N;s:18:"authentication_key";N;s:11:"session_key";N;}s:6:"locale";a:5:{s:12:"default_lang";s:2:"ko";s:12:"enabled_lang";a:1:{i:0;s:2:"ko";}s:16:"auto_select_lang";b:0;s:16:"default_timezone";s:10:"Asia/Seoul";s:17:"internal_timezone";i:32400;}s:3:"url";a:5:{s:7:"default";N;s:26:"unregistered_domain_action";s:12:"redirect_301";s:9:"http_port";N;s:10:"https_port";N;s:3:"ssl";s:4:"none";}s:7:"session";a:9:{s:5:"delay";b:0;s:6:"use_db";b:0;s:8:"use_keys";b:0;s:7:"use_ssl";b:0;s:15:"use_ssl_cookies";b:0;s:6:"domain";N;s:4:"path";N;s:8:"lifetime";i:0;s:7:"refresh";i:300;}s:4:"file";a:2:{s:16:"folder_structure";i:2;s:5:"umask";s:4:"0022";}s:4:"mail";a:1:{s:4:"type";s:12:"mailfunction";}s:4:"view";a:5:{s:14:"manager_layout";s:6:"module";s:14:"minify_scripts";s:6:"common";s:14:"concat_scripts";s:4:"none";s:11:"server_push";b:0;s:8:"use_gzip";b:0;}s:5:"admin";a:2:{s:5:"allow";a:0:{}s:4:"deny";a:0:{}}s:4:"lock";a:4:{s:6:"locked";b:0;s:5:"title";s:11:"Maintenance";s:7:"message";s:0:"";s:5:"allow";a:0:{}}s:5:"debug";a:11:{s:7:"enabled";b:1;s:16:"log_slow_queries";i:0;s:17:"log_slow_triggers";i:0;s:16:"log_slow_widgets";i:0;s:24:"log_slow_remote_requests";i:0;s:12:"log_filename";N;s:12:"display_type";a:1:{i:0;s:7:"comment";}s:15:"display_content";a:0:{}s:10:"display_to";s:5:"admin";s:15:"write_error_log";s:5:"fatal";s:5:"allow";a:0:{}}s:3:"seo";a:8:{s:10:"main_title";s:0:"";s:13:"subpage_title";s:0:"";s:14:"document_title";s:0:"";s:10:"og_enabled";b:0;s:22:"og_extract_description";b:0;s:17:"og_extract_images";b:0;s:19:"og_extract_hashtags";b:0;s:17:"og_use_timestamps";b:0;}s:11:"mediafilter";a:3:{s:6:"iframe";a:0:{}s:6:"object";a:0:{}s:7:"classes";a:0:{}}s:8:"security";a:2:{s:16:"check_csrf_token";b:0;s:8:"nofollow";b:0;}s:6:"mobile";a:3:{s:7:"enabled";b:1;s:7:"tablets";b:0;s:8:"viewport";s:56:"width=device-width, initial-scale=1.0, user-scalable=yes";}s:23:"use_prepared_statements";b:1;s:11:"use_rewrite";b:0;s:7:"use_sso";b:0;s:5:"other";a:0:{}

    기 설정되어있던 type, host, port 값 마저 없어져버렸습니다.

  • 2018.12.21 04:23 #1132053

    참고로 XE는 설치하는데 문제가 없습니다.

     설치 환경은 이렇습니다.

     

    20181221_132157.png

    $ php -m
    [PHP Modules]
    bz2
    calendar
    Core
    ctype
    curl
    date
    dom
    exif
    fileinfo
    filter
    ftp
    gd
    gettext
    gmp
    hash
    iconv
    imagick
    intl
    json
    libxml
    mbstring
    mcrypt
    mysqli
    odbc
    openssl
    pcntl
    pcre
    PDO
    pdo_dblib
    pdo_mysql
    PDO_ODBC
    pdo_pgsql
    pdo_sqlite
    pgsql
    Phar
    posix
    readline
    Reflection
    session
    shmop
    SimpleXML
    sockets
    SPL
    sqlite3
    standard
    sysvmsg
    sysvsem
    sysvshm
    tokenizer
    wddx
    xml
    xmlreader
    xmlrpc
    xmlwriter
    xsl
    zip
    zlib

  • 2018.12.23 06:58 #1133159
    라이믹스 설치 에러 정보 감사드립니다.
    저도 평소에 문제없이 사용하던 환경에서 최신버전 라이믹스 설치 에러가 발생하였습니다.

    말씀하신대로 install페이지에서 넘어온 config값이 사라지는게 문제이고
    이는 크롬에서만 발생하고 IE에서는 발생하지 않았습니다.

    시간이 없어서 크롬 확장프로그램 등 다른 외부적인 요인은 확인해보지 못했습니다.
  • 2018.12.24 05:55 #1133707

    확장프로그램 탓은 아닌 것같습니다. 확장프로그램을 몽땅 삭제하고 해도 같은 증상입니다.

     

    IE에서 똑같은 현상입니다.

    500에러

    20181224_145453.png

  • 2019.01.03 12:02 #1140423
    네 그러네요.
    이제 생각해보니 사이트 세션이나 쿠키가 잘못 오작동하는 것 같기도 하네요.
    지금 재현할 수 있는 서버가 없어서 더이상 확인은 못했습니다.
  • 2019.01.03 12:06 #1140435
    예 맞습니다. 서버의 세션 설정에 문제가 있었습니다.
    apache 설정에서 user, group을 nobody로 변경한 것이 화근이었습니다.
    /var/lib/php/session 권한을 nobody로 변경하고 끝났다고 생각했었는데 어느 순간 apache로 돌아가더군요.
    apache와 noody 사이에서 잠시 오락가락했었습니다.
  • 2018.12.21 05:41 #1132117

    참고로 그 전단계인 procDBConfig()에서는 정상적으로 동작합니다.

    O:7:"DBMySQL":22:{s:6:"prefix";s:3:"rx_";s:14:"comment_syntax";s:8:"/* %s */";s:7:"charset";s:4:"utf8";s:11:"column_type";a:8:{s:9:"bignumber";s:6:"bigint";s:6:"number";s:6:"bigint";s:7:"varchar";s:7:"varchar";s:4:"char";s:4:"char";s:4:"text";s:4:"text";s:7:"bigtext";s:8:"longtext";s:4:"date";s:11:"varchar(14)";s:5:"float";s:5:"float";}s:9:"last_stmt";N;s:6:"params";a:0:{}s:12:"*master_db";a:9:{s:4:"type";s:5:"mysql";s:4:"host";s:9:"localhost";s:4:"port";s:4:"3306";s:4:"user";s:5:"soonj";s:4:"pass";s:6:"xxxx";s:8:"database";s:6:"rhymix";s:6:"prefix";s:3:"rx_";s:8:"resource";O:6:"mysqli":19:{s:13:"affected_rows";N;s:11:"client_info";N;s:14:"client_version";N;s:13:"connect_errno";N;s:13:"connect_error";N;s:5:"errno";N;s:5:"error";N;s:10:"error_list";N;s:11:"field_count";N;s:9:"host_info";N;s:4:"info";N;s:9:"insert_id";N;s:11:"server_info";N;s:14:"server_version";N;s:4:"stat";N;s:8:"sqlstate";N;s:16:"protocol_version";N;s:9:"thread_id";N;s:13:"warning_count";N;}s:12:"is_connected";b:1;}s:11:"*slave_db";a:1:{i:0;a:7:{s:4:"type";s:5:"mysql";s:4:"host";s:9:"localhost";s:4:"port";s:4:"3306";s:4:"user";s:5:"soonj";s:4:"pass";s:6:"expert";s:8:"database";s:6:"rhymix";s:6:"prefix";s:3:"rx_";}}s:9:"*result";N;s:8:"*errno";i:0;s:9:"*errstr";s:0:"";s:8:"*query";s:0:"";s:13:"*connection";s:18:"master (localhost)";s:15:"*elapsed_time";i:0;s:23:"*elapsed_dbclass_time";i:0;s:22:"*transaction_started";b:0;s:15:"*is_connected";b:0;s:13:"*cache_file";s:20:"files/cache/queries/";s:7:"db_type";s:5:"mysql";s:10:"db_version";s:15:"10.1.37-MariaDB";s:23:"use_prepared_statements";N;s:25:"*transactionNestedLevel";i:0;}