Q&A

CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 7.4

정확하지는 않지만 비동기 작업 정상 작동 중 최근 서버에서 몇가지 작업 ( apcu 설치, root 권한 크론탭 작업, 라이믹스 업데이트 외..)의 영향때문인지 작동이 되질 않는 문제로 문의드립니다.

 

1. 환경 정보

rhymix_version : 2.1.25
php : 7.4.33 (64-bit)
server : nginx/1.18.0
basedir : /var/www/html/
owner : www-data (33:33)
user : www-data (33:33)

 

d2b986acb73260bd3a9c951ec6a94dbe.png

 

2. 현재 상태

  1) 비동기 작업 사용 체크 해제 시 > 메일 테스트 > 메일 발송 내역 정상 기록  및 실제 메일 수신 됨
  2) 비동기 작업 사용 체크  > 메일 테스트 > 테스트에 성공하였습니다....> 메일 발송 내역 기록이 되지 않고 메일 수신 확인이 되지 않음

 

3. 설정사항

  1) ssh 접속 > sudo crontab -e -u www-data 아래 내용 적용 된 상태 

111.jpg

* * * * * /usr/bin/php /var/www/html/index.php common.cron >> /var/log/nginx/queue.log 2>&1
 

  2) * root 권한으로 작성된 크론탭에는 다른 모듈에서 실행하는 작업을 모두 삭제한 상태입니다.  

 

4. queue.log 에는 아래와 같은 유형의 로그가 기록되어 있습니다.
PHP Exception: Error #0 "Undefined constant PDO::MYSQL_ATTR_USE_BUFFERED_QUERY" in modules/module/module.model.php on line 81 (via common/framework/DB.php on line 130)
#0 /var/www/html/common/framework/DB.php(110): Rhymix\Framework\DB->connect()
#1 /var/www/html/common/framework/DB.php(78): Rhymix\Framework\DB->__construct()
#2 /var/www/html/common/legacy.php(197): Rhymix\Framework\DB::getInstance()
#3 /var/www/html/modules/module/module.model.php(81): executeQuery()
#4 /var/www/html/modules/module/module.model.php(207): ModuleModel::getDefaultDomainInfo()
#5 /var/www/html/classes/context/Context.class.php(233): ModuleModel::getDefaultMid()
#6 /var/www/html/index.php(52): Context::init()
PHP Exception: Error #0 "Undefined constant PDO::MYSQL_ATTR_USE_BUFFERED_QUERY" in modules/module/module.model.php on line 81 (via common/framework/DB.php on line 130)
#0 /var/www/html/common/framework/DB.php(110): Rhymix\Framework\DB->connect()
#1 /var/www/html/common/framework/DB.php(78): Rhymix\Framework\DB->__construct()
#2 /var/www/html/common/legacy.php(197): Rhymix\Framework\DB::getInstance()
#3 /var/www/html/modules/module/module.model.php(81): executeQuery()
#4 /var/www/html/modules/module/module.model.php(207): ModuleModel::getDefaultDomainInfo()
#5 /var/www/html/classes/context/Context.class.php(233): ModuleModel::getDefaultMid()
#6 /var/www/html/index.php(52): Context::init()

 

5. sudo systemctl status cron

111.jpg


이외에 더 필요한 사항 있으시면 말씀 부탁드리겠습니다.

마트몬 Lv. 8

댓글 6

  • 8시간 전 #1910804

    터미널에서 /usr/bin/php -v 해보세요. PHP 7.4.33이 맞나요?

  • 7시간 전 #1910816

    답변감사합니다.
    php 7.4.33 ( 서버환경에서도 php : 7.4.33 로 표시 )이구요  usr/bin/php -v 로 입력하면 아래와 같이 출력됩니다.


    root@naseller:~# /usr/bin/php -v
    PHP 8.4.8 (cli) (built: Jun  9 2025 13:49:53) (NTS)
    Copyright (c) The PHP Group
    Zend Engine v4.4.8, Copyright (c) Zend Technologies
        with Zend OPcache v8.4.8, Copyright (c), by Zend Technologies


    혹시 apcu 설치 과정 과 연관되어 문제가 될 만한 부분이 있을까요?
     

    sudo apt update
    sudo apt install php-apcu

    로 설치 후 다시 아래 명령어로 설치 했습니다.


    sudo apt update
    sudo apt install php7.4-apcu
    # 심볼릭 링크 생성으로 활성화
    sudo ln -s /etc/php/7.4/mods-available/apcu.ini /etc/php/7.4/fpm/conf.d/20-apcu.ini
    sudo ln -s /etc/php/7.4/mods-available/apcu.ini /etc/php/7.4/cli/conf.d/20-apcu.ini
    sudo systemctl restart php7.4-fpm

    --------------------------------
    혹시 아래 부분이 참고가 되실지 몰라 추가로 기재합니다.

    root@naseller:~# grep -r "fastcgi_pass" /etc/nginx/
    /etc/nginx/sites-available/default:        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    root@naseller:~# ps aux | grep php-fpm
    root     2393706  0.0  1.4 350600 28264 ?        Ss   Jun29   0:03 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
    www-data 2393707  0.0  2.8 429652 57836 ?        S    Jun29   0:29 php-fpm: pool www
    www-data 2393708  0.0  2.8 429852 58220 ?        S    Jun29   0:30 php-fpm: pool www
    www-data 2402443  0.0  2.8 429640 57000 ?        S    09:10   0:10 php-fpm: pool www
    root     2404966  0.0  0.1   6480  2184 pts/0    S+   12:24   0:00 grep --color=auto php-fpm
     

  • 6시간 전 #1910825

    루트 권한으로 update-alternatives --config php

    7.4 옆에 있는 일련번호를 입력하고 엔터 치세요.

     

    OS에서 제공하는 기본 버전보다 오래된 버전의 PHP를 추가로 설치하여 사용하는 서버라면, 웹에서 nginx와 연동되는 PHP 버전과 터미널에서 기본 선택되는 PHP 버전이 서로 다를 수 있습니다. 현재 터미널에서는 8.4가 기본이네요. 확장모듈은 PHP 버전마다 다르게 설치되기 때문에, 잘못된 버전을 선택하면 apcu는 고사하고 기본적인 mysql 연동 기능조차 설치되어 있지 않은 빈 껍데기가 나올 수도 있습니다.

     

    P.S. 확장모듈 설치 후 심볼릭 링크 생성하라고 알려주는 정신나간 AI는 누군가요? GPT? Gemini? ㅡ.ㅡ

  • 6시간 전 #1910838

    감사합니다. 알려주신대로 하니 비동기작업 ( 이메일 ) 정상 작동 됩니다.

    클로드 ( https://claude.ai/  ) 라는 ai인데요. 아래 내용입니다.   뭔가 다른 조치를 취해야 할지 혹시 조언 좀 받을 수 있을까요? ^^;; 

     

    APCu(APCu User Cache)는 PHP의 메모리 기반 캐시 시스템으로, Rhymix의 성능을 크게 향상시킬 수 있습니다. 현재 환경에서 APCu를 설치하고 설정하는 방법을 단계별로 안내해드리겠습니다.
    1. APCu 설치
    Ubuntu/Debian 환경에서 설치

    sudo apt update
    sudo apt install php7.4-apcu


    2. PHP 설정 파일 수정
    php.ini 또는 별도 설정 파일 생성
    sudo nano /etc/php/7.4/mods-available/apcu.ini
    APCu 설정 내용
    ini; APCu 확장 활성화
    extension=apcu.so

    ; APCu 기본 설정
    apc.enabled=1
    apc.shm_size=128M
    apc.ttl=7200
    apc.user_ttl=7200
    apc.gc_ttl=3600
    apc.entries_hint=4096
    apc.slam_defense=1
    apc.enable_cli=0

    ; Rhymix 최적화 설정
    apc.serializer=php
    apc.coredump_unmap=0
    apc.preload_path=""
    설정 파일 활성화 (Ubuntu/Debian)


    bash# 심볼릭 링크 생성으로 활성화
    sudo ln -s /etc/php/7.4/mods-available/apcu.ini /etc/php/7.4/fpm/conf.d/20-apcu.ini
    sudo ln -s /etc/php/7.4/mods-available/apcu.ini /etc/php/7.4/cli/conf.d/20-apcu.ini

     

    3. PHP-FPM 및 Nginx 재시작

    sudo systemctl restart php7.4-fpm

     

    # Nginx 재시작
    sudo systemctl restart nginx

  • 5시간 전 #1910844

    심볼릭 링크 생성과 nginx 재시작은 불필요한 과정입니다. 한다고 딱히 손해볼 것은 없지만, 이 녀석이 우분투에 PHP 확장모듈 설치하는 방법을 제대로 이해하지 못하고 있다는 뜻이죠. ㅎㅎ

  • 5시간 전 #1910860

    매번 도움 말씀 감사합니다. :)