PHP 7.4 및 PHP 8.0는 CloudLinux OS에서 액세스할 수 없습니다 : 504 Gateway Time-out
[증상]
-
Plesk를 열거나 Plesk에서 데이터베이스를 내보내기/가져오기 시 다음 오류 메시지가 발생하며, 작업이 실패합니다
ERROR: Plesk\Exception\Database
DB query failed: SQLSTATE[HY000]: General error: 1021 Disk full (/var/tmp/#sql_3b95_1); waiting for someone to free some space..., <...>
Server Error
500 Plesk\Exception\Database
DB query failed: SQLSTATE[HY000]: General error: 1 Can't create/write to file '/var/tmp/#sql_9d1_0.MAI' (Errcode: 28), <...>
Server Error
500
Zend_Db_Adapter_Exception
SQLSTATE[HY000][2002] No such file or directory
This page isn’t working
203.0.113.2 is currently unable to handle this request.
HTTP ERROR 500
- 웹 브라우저에서 다음 오류 메시지와 함께 MySQL 데이터베이스가 있는 웹 사이트에 액세스할 수 없습니다.
Error establishing a database connection
- MySQL 서비스가 "No space left on device" 오류와 함께 시작되지 않습니다.
# systemctl status mariadb.service
...
systemd[1]: Starting MariaDB database server...
systemd[1]: mariadb.service failed to run 'start-pre' task: No space left on device
systemd[1]: Failed to start MariaDB database server.
systemd[1]: mariadb.service failed.
- 혹은 /var/log/mariadb/mariadb.log 경로에서 다음 오류 메시지가 나타납니다.
[ERROR] InnoDB: Could not set the file size of './ibtmp1'. Probably out of disk space
[원인]
- 루트 파티션(혹은 분리된 경우의 tmp 파티션)에서 여유 디스크 공간이 없어, MySQL 서비스는 임시 temporary 파일을 생성할 수 없는 경우,
# df -h /var/lib/mysql /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 50G 50G 20K 100% /
- 사용 가능한 디스크 공간이 충분하지만 사용 가능한 inode가 충분치 않는 경우,
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
tmpfs 483902 1 483901 1% /dev/shm
/dev/sda3 3276800 3276800 0 100% /
[해결방법]
- 먼저 서비스를 다시 재개 하려면 일부 공간을 확보해야 합니다.
1. SSH 를 통해 루트로 Plesk 서버에 연결 합니다.
2. 14 일이 지난 임시 파일 삭제
# find /tmp -type f -mtime +14 -exec rm {} \;
# find /var/tmp -type f -mtime +14 -exec rm {} \;
Plesk 임시 파일:
# rm -rf /usr/local/psa/PMM/tmp/* /usr/local/psa/tmp/*
3. 다음 명령을 사용하여 크기를 확인하고 패키지 캐시(이전에 다운로드한 패키지의 캐시)를 정리합니다.
# du -sh /var/cache/apt/
# sudo apt-get clean
Cent OS의 경우 :
# yum clean all
4. 아직도 디스크 공간이 여전히 100%로 표시 되면 가장 오래된 Plesk 백업 파일을 제거할 수 있습니다. 먼저 아래 명령을 복사/붙여넣기하여 백업 파일 목록을 가져옵니다.
# /usr/local/psa/admin/bin/pmm-ras --get-dump-list --type=server | grep 'message' | grep -v [0-9]_[0-9]
<message>backup_info_2010230005.xml: </message>
<message>backup_info_2010300005.xml: </message>
여기서, 백업이 하나만 있는 경우 제거하지 않는 것이 좋습니다. 여러 개 있으면 출력의 첫 번째 것이 가장 오래된 것입니다. 이름을 사용하여 제거하십시오.
# /usr/local/psa/admin/bin/pmm-ras --verbose --debug --delete-dump --dump-specification=backup_info_2010230005.xml --session-path=/var/log/plesk/PMM
5. 만약 2단계와 3단계에서 200MB보다 큰 파일을 찾는 데 도움이 되지 않는다면,
# find / -type f -size +200M -exec du -h {} + 2>/dev/null | sort -r -h
248M /var/log/plesk-php74-fpm/error.log
218M /var/lib/mysql/ibdata1
위의 예에서 error.log와 같은 로그 파일이 있을 경우 정리할 수도 있습니다.
# echo > /var/log/plesk-php74-fpm/error.log
# service plesk-php74-fpm restart
6. 서비스 재 기동 :
# service psa restart
7. MySQL과 Plesk가 다시 실행되면 공간사용에 대해 알 수 있는 가장 좋은 방법은 Diskpace Usage Viewer를 사용하는 것입니다.