Ubuntuのアップグレード後のphpmyadmin symlinksエラー


15

Ubuntuサーバーを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自体も同様に動作します。Phpmyadminは正しくインストールされ、dist-upgradeの前に正常に動作しました。私もやった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'dしました。これは実際にはシンボリックリンクの問題のようです。

これは私の始まりです /etc/phpmyadmin/apache.conf

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

そのため、すぐにシンボリックリンクをたどることになっています。Ubuntuのアップグレードの前にすべてがうまくいきました。シンボリックリンクの問題は何ですか?


の下の権限を確認し/usr/share/php/php-gettextます。SELinux / AppArmorを使用していますか?
ダウド

回答:


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の場合、これはデフォルトでは含まれていないようです。おそらく、それがPear拡張機能であるためです)。


Ubuntu 16.04の新規インストールを実行した後、エラーが発生しました。15.10を16.04にアップグレードした後は機能しましたが、他の問題のために新規インストールを行う必要がありました。明示的にインストールphp-gettextパッケージを(して追加することRequire all grantedにしてphpmyadmin.conf)、それが再び動作しました。
ボベンダー

1
これが実際の答えです!
ティカ

それをありがとう。私はそれを考えていませんでした。これは、php-mbstringphpmyadminをphp7で正しく動作させるために必要でした
jhaagsma

1
PHP-gettextのはphpMyAdminのパッケージの依存性であるので、それは、奇妙だ:packages.ubuntu.com/xenial/phpmyadminそれは既に存在しませんなぜ私はわからないようにします。
サムウィルソン

phpMyAdminは、その後、最初にLAMPをインストールし、多分それが問題の一部である
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ディレクトリがすでに含まれているため、これらのリンクを再インストールする必要がありました。
カルマFusebox 14

0

サブドメインで提供するためにphpmyadminのカスタムvhostファイルを使用しているため#Alias /phpmyadmin /usr/share/phpmyadminin を無効にする必要がありました(接頭辞)/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.