우분투 업그레이드 후 phpmyadmin symlinks 오류


15

내 우분투 서버를 13.04로 업그레이드 한 후 더 이상 phpmyadmin에 연결할 수 없습니다. 브라우저는 500 (내부 서버 오류)을보고하고 error.log에 다음과 같이 표시됩니다.

PHP 치명적 오류 : require_once () : 370 행의 /usr/share/phpmyadmin/libraries/select_lang.lib.php에서 './libraries/php-gettext/gettext.inc'(include_path='. ')를 여는 데 실패했습니다.

다른 PHP 소프트웨어는 머신에서 잘 작동하며 mysql 자체도 작동합니다. dist-upgrade 전에 Phpmyadmin이 올바르게 설치되어 제대로 작동했습니다. 나도 그랬지만 sudo aptitude reinstall phpmyadmin도움이되지 않았습니다.

phpmyadmin의 버전 번호는 4 : 3.5.8.1-1입니다.

어떤 아이디어라도, 여기서 무엇이 잘못 될 수 있습니까?

/ 편집 : 지금까지 여기에서 심볼릭 링크가 작동하지 않는 것으로 나타났습니다.

mcnesium@fluse:/usr/share/phpmyadmin/libraries/php-gettext$ ls -l
total 0
lrwxrwxrwx 1 root root 36 Apr 25 03:38 gettext.inc -> ../../../php/php-gettext/gettext.inc
lrwxrwxrwx 1 root root 36 Apr 25 03:38 gettext.php -> ../../../php/php-gettext/gettext.php
lrwxrwxrwx 1 root root 36 Apr 25 03:38 streams.php -> ../../../php/php-gettext/streams.php

폴더를 백업 php-gettext하고 cp -r을 심볼릭 링크로 연결했습니다. 이제 작동합니다. 실제로 이것은 심볼릭 링크 문제인 것 같습니다.

이것은 나의 시작이다 /etc/phpmyadmin/apache.conf

# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php

따라서 바로 심볼릭 링크를 따라야합니다. 우분투 업그레이드 전에 모든 것이 잘 작동했습니다. 심볼릭 링크의 문제는 무엇입니까?


아래에서 권한을 확인하십시오 /usr/share/php/php-gettext. SELinux / AppArmor를 사용하고 있습니까?
dawud

답변:


7

나를 위해 다음 솔루션으로 문제를 해결했습니다.

내 웹 사이트 conf 파일에는 다음 섹션이 있습니다.

<IfModule mod_php5.c>
    AddType application/x-httpd-php .php

    php_flag magic_quotes_gpc Off
    php_flag track_vars On
    php_flag register_globals Off
    php_admin_flag allow_url_fopen Off
    php_value include_path .
    php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
    php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/
</IfModule>

Ubuntu 13.04 설치 이후에 한 유일한 변경 사항은 open_basedir에 / usr / share / php / php-gettext /를 포함시키는 것입니다.


23

타인을 위해:

sudo apt-get install php-gettext

답이 될 수 있습니다 (특히 php7에서는 이것이 기본적으로 포함되지 않은 것 같습니다. 아마도 배 확장이기 때문에).


Ubuntu 16.04를 새로 설치 한 후 오류가 발생했습니다. 15.10을 16.04로 업그레이드 한 후에 작동했지만 다른 문제로 인해 새로 설치해야했습니다. php-gettext패키지를 명시 적으로 설치 하고에 추가 Require all granted하면 phpmyadmin.conf다시 작동하게됩니다.
bovender

1
이것이 실제 답변입니다!
tika

감사합니다. 나는 그것을 생각하지 않았다; 이것은 php-mbstringphpmyadmin이 php7과 함께 나를 위해 올바르게 작동하도록 요구했습니다
jhaagsma

1
PHP-에 gettext는 phpMyAdmin이 패키지의 의존성 때문에 그것은 이상한 : packages.ubuntu.com/xenial/phpmyadmin 나는 확실히이 있지 않은 이유 아니에요 그래서.
샘 윌슨

LAMP에게 문제의 일부입니다 아마 첫째, 다음에 phpMyAdmin을 설치
twicejr

5

당신이 경우에 open_basedir포함 /usr/share/php/php-gettext/(내 경우처럼) 이미하고 이전 답변 작업에 얻을 수없는 다음을 수행하십시오

sudo rm /usr/share/phpmyadmin/libraries/php-gettext/*

심볼릭 링크를 제거합니다

sudo ln /usr/share/php/php-gettext/* /usr/share/phpmyadmin/libraries/php-gettext

하드 링크를 만듭니다

phpmyadmin이 다시 작동합니다. 13.04 년에 왜 깨졌고, apache.conf가해야한다고 말하면서 심볼릭 링크는 따르지 않습니다.


고마워요. open_basedir 행에는 이미 php-gettext 디렉토리가 포함되어 있으므로 해당 링크를 다시 설치해야했습니다.
Karma Fusebox

0

phpmyadmin이 하위 도메인에서 서비스하기 위해 사용자 정의 vhost 파일을 사용하고 있기 때문에 in 을 비활성화 (접두사 #)해야 Alias /phpmyadmin /usr/share/phpmyadmin했습니다 /etc/apache2/conf-available/phpmyadmin.conf. 추가 Alias로 어떤 이유로 작동하지 않았습니다.


0

phpMyAdmin이 Nginx 서버에서 실행되는 경우 키에 php.ini경로 /usr/share/php/php-php-gettext를 추가해야합니다 open_basedir.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.