내 우분투 14.04에 php5-fpm, nginx, mysql, phpmyadmin이 설치되어 있습니다. 모든 것이 좋았습니다. PHP를 php7.0으로 업데이트했을 때 mbstring을 설치하려면 phpmyadmin이 필요했습니다. 설치했는데 잘 작동하네요. 그러나 phpmyadmin의 내보내기 페이지에는 빈 페이지가 표시됩니다.
이 오류는 nginx 오류 로그 파일에 기록됩니다.
2016/08/09 16:20:31 [error] 1494#0: *35 FastCGI sent in stderr: "PHP message: PHP Fatal error: Cannot 'break' 2 levels in /usr/share/phpmyadmin/export.php on line 864" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "POST /phpmyadmin/export.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "localhost", referrer: "http://localhost/phpmyadmin/index.php?token=584932884866cc16a2444d67eb7927d0&phpMyAdmin=4aro5gojhjuli0svkuctbrlot0450dar"
답변1
phpmyadmin/export.php의 864행을 수정하여 문제를 해결했습니다.
break 2;
By:
break;
제공되는 솔루션발렌트다음에서답변:
걱정하지 마십시오. 이는 phpMyAdmin 팀의 코드 실수입니다. 두 개의 중첩 루프가 아닌 하나의 루프에 있습니다. 이것이 바로 "2를 중단"할 수 없는 이유입니다(2는 중첩 루프 안에 있음을 의미하기 때문입니다). PHP7이 이전 버전보다 엄격하기 때문에 오류가 나타납니다. 그건 그렇고, 이것은 다른 패키지(PHPExcel, 최신 버전의 phpMyAdmin 등)를 수정할 수 있습니다. 대부분의 경우 개발자는 중첩 루프를 삭제하고 이 코드 줄을 업데이트하는 것을 잊어버렸습니다.
답변2
나에게 그것은 604번째 줄에 있었고 작동했다. 매우 감사합니다
if ($GLOBALS[$what . '_structure_or_data'] == 'structure' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') {
if (!PMA_exportStructure($db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, 'triggers', $export_type)) {
break;
}