PHP 7.2로 바꾼 이후

일정 시점이 지나면 아래 오류가 뜨면서 댓글이 달린 글의 페이지가 이상하게 출력되고, 몇몇 위젯이 비정상적으로 출력되는데 혹시 뭐가 문제일까요?

 

특이점으로는 이 오류가 일어날 때 phpmyadmin에서는 session 오류가 일어납니다.

 

서버에서 rm -rf /tmp 했을 때 정상이 됩니다.

 

근데 그런 상황일 떄 tmp 폴더 용량은 10% 미만 사용 중입니다;

 

2018/10/01 13:30:26 [error] 41505#41505: *1350267 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to a member function toBool() on null in /home/사용자명/www/modules/document/document.item.php:761
Stack trace:
#0 /home/사용자명/www/files/cache/template_compiled/9dcc428268933bceebff1ff4c312460c.compiled.php(7): documentItem->getComments()
#1 /home/사용자명/www/classes/template/TemplateHandler.class.php(385): include('/home/사용자명...')
#2 /home/사용자명/www/classes/template/TemplateHandler.class.php(176): TemplateHandler->_fetch('file:///home/my...')
#3 /home/사용자명/www/files/cache/template_compiled/dbefca0ef95673c209b9edbfc4ce16b0.compiled.php(253): TemplateHandler->compile('modules/board/m...', 'comment.html')
#4 /home/사용자명/www/classes/template/TemplateHandler.class.php(385): include('/home/사용자명...')
#5 /home/사용자명/www/classes/template/TemplateHandler.class.php(176): TemplateHandler->_fetch('file:///home/my...')
#6 /home/사용자명/www/files/cache/template_compiled/f7391698a5f5bc011cb5a1c26f7cdbb2.compiled.php(42): TemplateHand" while reading response header from upstream, client: 117.111.2.246, server: 주소.net, request: "GET /index.php?mid=sc&m=1&page=2&document_srl=23389027 HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "주소.net", referrer: "https://주소.net/"
 

  • profile
    혹시 tmp가 저장되는 부분에 용량이 초과되지 않았는지 점검해보시겠어요?

    만약 세션에서 용량초과로 인해서 더 이상 생성못할경우 생기는 문제가 되지 않을까 해서요..

    물론 저는 전문가가 아니라 정확하지 않지만 그 부분이 유력해 보여서요 (중간에 tmp 삭제시 정상작동 하신다고 하셨기에..)
  • profile ?
    답변주셔서 감사합니다.
    df 명령어로 용량 확인을 해보면 아래와 같은 상태기는 하였는데
    backup 폴더를 제외하고 세션 저장되는 tmp 폴더를 비롯한 다른 폴더 등은 다 정상 같습니다 ㅠ
    저도 tmp 폴더를 날리면 정상이 되는 점 때문에 용량 초과를 제일 먼저 의심했었는데
    df 명령어로 보면 또 정상입니다

    Filesystem Size Used Avail Use% Mounted on
    udev 32G 0 32G 0% /dev
    tmpfs 6.3G 33M 6.3G 1% /run
    /dev/nvme0n1p3 460G 86G 351G 20% /
    tmpfs 32G 0 32G 0% /dev/shm
    tmpfs 5.0M 0 5.0M 0% /run/lock
    tmpfs 32G 0 32G 0% /sys/fs/cgroup
    /dev/nvme0n1p1 922M 549M 311M 64% /boot
    /dev/nvme1n1p1 184G 108G 108G 100% /backup
    /dev/nvme1n1p2 286G 11G 262G 4% /db
    /dev/loop0 9.8G 159M 9.1G 2% /tmp
    tmpfs 6.3G 0 6.3G 0% /run/user/1000
  • profile ?
    특이점으로는 ls -l 했을 때
    tmp 폴더가 이렇게 잡히긴 하네요

    drwxrwxrwt 2 root root 37855232 Oct 1 16:09 tmp
  • ? profile
    아니면 일시적으로 권한이 root으로 변경되었거나요..

    root으로 변경될만한 특이점이 있는지 잘 살펴보세요..

    세팅해두신 정확한 방법을 모르기때문에 정확히 뭐다 할 그건 아니지만 상황에 따라 nginx 사용하시면 nginx 를 사용하시는 것의 권한그룹에 따라 바꾸시는걸로 시도하시면 될거같기도해요.

    xe/files/cache 등등 이 곳에서 생성되는 파일들과 동일하게 사용자 그룹을 변경할 수 있도록 해보세요...ㅎㅎ
  • profile

    /tmp의 퍼미션은 저게 맞습니다.

    용량은 많이 남아도 세션 등 작은 파일이 너무 많이 쌓이면 inode 갯수가 부족해서 오류가 날 수 있습니다.

    df -i 명령으로 inode 갯수를 확인해 보세요.

  • profile ?

    새벽 시간대 문제 없을 때 이미 tmp 폴더는 inode 30% 사용 중이고 문제 생겼을 때는 확인은 못 해봤지만 rm -rf /tmp 했을 때 해결되는 거 보면 이게 문제 같습니다 구글링해서 해결 방법 찾아야겠네요 항상 기진곰 님 덕분에 문제를 해결합니다 정말 감사합니다 다음에 서버 이전할 때는 기진곰 님께 그냥 속 편하게 맡겨야겠습니다