
방금 phplist를 새로 설치했는데, 브라우저에서 phplist에 액세스하려고 하면 상태 코드가 있는 빈 페이지가 나타납니다."500 Internal Server Error"
저는 CentOS 7을 실행 중이고 Phplist는 Php v5.6.33이 포함된 Apache v2.4.6에서 제공됩니다.
내 Apache의 에서 쿼리를 볼 수 있지만 access_log
error_log에는 항목이 없습니다. vhost 구성 파일과 .htaccess
파일은 모두 괜찮은 것 같습니다.
새로 설치한 후 phplist에서 500 오류가 발생하는 이유를 디버그하도록 도와주세요.
답변1
몇 시간 동안 phplist 코드를 살펴본 후 서버에 libsodium을 설치하여 이 문제를 해결했습니다.
우선, 나는 기본적으로 phplist가막다오류가 로그에 기록되지 않습니다. 이것은 어디에도 문서화되어 있지 않으므로 문서 페이지에 오류 메시지를 다시 활성화하여 로그 파일에 기록하는 방법을 문서화하도록 요청하는 메모를 남겼습니다(아래 링크).
따라서 phplist가 로그 파일의 오류를 억제하는 것을 방지하려면 in 및 as error_reporting(0)
로 변경하는 것이 좋습니다.error_reporting(1)
'lists/admin/init.php'
'lists/admin/index.php'
여기에 설명했습니다.
그런 다음 phplist에 포함된 라이브러리 의 일부인 파일에 error_log
의해 Apache 파일에 다음 예외가 발생하는 것을 볼 수 있었습니다 .'lists/admin/inc/random_compat/random.php'
random_compat
[Thu Aug 23 00:06:29.560157 2018] [:error] [pid 17617] [client 127.0.0.1:51262] PHP Fatal error: Uncaught exception 'Exception' with message 'There is no suitable CSPRNG installed on your system' in /var/www/html/phplist.opensourceecology.org/public_html/lists/admin/inc/random_compat/random.php:204\nStack trace:\n#0 /var/www/html/phplist.opensourceecology.org/public_html/lists/admin/defaultconfig.php(3): random_bytes(10)\n#1 /var/www/html/phplist.opensourceecology.org/public_html/lists/admin/index.php(103): require_once('/var/www/html/p...')\n#2 {main}\n thrown in /var/www/html/phplist.opensourceecology.org/public_html/lists/admin/inc/random_compat/random.php on line 204
관리자의 공식 답변(github의 random_compat 저장소 이슈 #99를 참조하세요.)는 단순히 in '/dev/urandom'
에 추가하는 것입니다 . 개인적으로 가장 현명한 선택은 아닌 것 같았습니다..open_basedir
'/etc/php.ini'
대안으로 libsodium을 설치하기로 결정했습니다. CentOS 7에서는 패키지 를 설치 'php-pecl-libsodium'
하고 Apache 웹 서버를 다시 시작하는 것을 의미합니다.
yum install php-pecl-libsodium
httpd -t && service httpd restart
이 오류에 대한 자세한 내용은 다음 제목의 내 글을 참조하세요.random_compat로 인한 phplist 500 오류 수정.
답변2
나는 몇 달 전부터 이 오류로 인해 어려움을 겪고 있었고 phplist 이전 버전을 설치해야 했습니다.
방금 새로운 버전의 PHP(제 경우에는 php-5.2로 작업했지만 Centos 7은 php-5.4와 함께 제공됨)에 "date.timezone"이라는 새 매개변수(괜찮습니다... 제게는 새로운 매개변수)가 있다는 것을 발견했습니다. 내 "/etc/php.ini"는 이제 다음을 갖습니다:
date.timezone = "미국/과야킬"
유효한 시간대 이름은 다음에서 확인할 수 있습니다.
http://php.net/manual/es/timezones.php
안부 인사와 행운을 빕니다!