web-dev-qa-db-ja.com

v4.8.0への更新後のphpMyAdminのエラー:$ cfg ['TempDir'](./tmp/)にアクセスできません

phpMyAdminはv4.7.9で正常に機能しました。今すぐv4.8.0に更新した後(古いphpmyadminフォルダーを新しいフォルダーに置き換えて)、phpMyAdminでこのメッセージが表示されます。

$ cfg ['TempDir'](./tmp/)にアクセスできません。 phpMyAdminはテンプレートをキャッシュできず、このために遅くなります。

次のようなフォルダー./tmp/を追加しました:/usr/share/tmp

phpMyAdminはオンです:/usr/share/phpmyadmin

これは何も変わりませんでした。

誰がこのエラーを知っていますか?私に何ができる?

33
David

解決策は、次のようなtmpというフォルダーを作成することでした:/usr/share/phpmyadmin/tmp

また、ウェブサーバー(Apacheなど)を実行しているユーザー(またはグループ)が、新しく作成されたtmpフォルダーへの書き込みアクセス権を持っていることを確認してください。そのため、そのユーザーの所有権を変更するか、すべてのユーザーに書き込みアクセス権を追加します。後者は実際にはお勧めできません。

48
David

簡単な修正は、phpmyadmin dirにtmp dirを作成し、パーミッションを777に設定することです

mkdir tmp && chmod 777 tmp

それから

config.inc.phpファイルを更新し、その行を追加します

$cfg['TempDir'] = 'tmp';
15
user889030

Ubuntu 18.04でも、パッケージリポジトリ(v4.6.6)のphpMyAdminバージョンを最新バージョン(4.8.0)に置き換えたときに同じ問題が発生しました。あなたがUbuntuで実行されているかどうかはわかりませんが、私の応答は、似たようなものに遭遇したあなた(または他の人)に役立つでしょう。

新しいバージョンを/usr/share/phpmyadmin/の標準の場所に配置しましたが、UbuntuのPMAのパッケージインストールでは、いくつかの構成設定が他の場所に配置されます(/etc/phpmyadmin/および/var/lib/phpmyadmin/を参照)。 /etc/phpmyadmin/Apache.confでこの設定を見つけました:

php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp

そして、そのディレクトリが作成され、適切な許可が与えられていることを確認してください。パッケージのインストール設定にできるだけ近づけたいので、/usr/share/phpmyadmin/libraries/vendor_config.phpでこの変更を行い、そのフォルダーを直接ポイントしました。

//define('TEMP_DIR', './tmp/');
define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');

この設定は/usr/share/phpmyadmin/libraries/config.default.php(編集することは想定されていません)によって選択され、$cfg['TempDir']を設定します。

11
wevrem

私の場合、私は追加しました

$cfg['TempDir'] = '/usr/share/phpmyadmin/temp';

phpmyadminフォルダー内のconfig.inc.phpファイル

それが誰かを助けることを願っています

PhpMyAdminインストールのベースディレクトリにtmpフォルダー(たとえば、/usr/share/phpmyadmin/tmp)を作成し、PHPが実行されているユーザーが書き込み可能であることを確認します。

5
jormaster3k

Webサーバーユーザーが所有し、制限する一時ディレクトリを作成します。 phpMyAdmin webroot内にnot配置します。 (この例では、WebサーバーはApacheとして実行されます):

mkdir -p /var/tmp/phpMyAdmin
chown Apache:apache /var/tmp/phpMyAdmin
chmod 700 /var/tmp/phpMyAdmin

次に、phpMyAdminのconfig.inc.php内にTempDirを設定します。

$cfg['TempDir'] = '/var/tmp/phpMyAdmin';

/usr/share/phpmyadmin/tmpを作成することを示唆する回答はすべて、悪いセキュリティ慣行を推奨しています。これは一般的に一時ディレクトリに当てはまり、明示的に述べられています 公式のphpMyAdminドキュメントで

セキュリティ上の理由から、すべてのディレクトリはWebサーバーによって公開されたツリーの外部にある必要があります。

4
rsanden

phpMyAdminドキュメント: から

$cfg['TempDir']
    Type:   string
    Default value:  './tmp/'

一時ファイルを保存できるディレクトリの名前。現在、いくつかの目的に使用されています。

ページの読み込みを高速化するテンプレートキャッシュ。 ESRI Shapefilesのインポート。「6.30インポート:ESRI Shapefilesをインポートするにはどうすればよいですか?」を参照してください。

アップロードされたファイルのopen_basedirの制限を回避するには、「1.11インポートタブからファイルをアップロードするときに「open_basedirの制限」が表示される」を参照してください。

このディレクトリへのアクセスに必要なユーザーはウェブサーバーを実行しているユーザーのみであるため、このディレクトリにはできるだけ厳しいアクセス許可が必要です。ルート権限がある場合は、このユーザーをこのディレクトリの所有者にし、このディレクトリからのみアクセスできるようにします。

chown www-data:www-data tmp
chmod 700 tmp

ディレクトリの所有者を変更できない場合は、ACLを使用して同様のセットアップを実現できます。

chmod 700 tmp
setfacl -m "g:www-data:rwx" tmp
setfacl -d -m "g:www-data:rwx" tmp

上記のいずれも機能しない場合は、ディレクトリchmod 777を作成できますが、システム上の他のユーザーがこのディレクトリでデータを読み書きするリスクが生じる可能性があります。

3
Geraldo Freitas

私の場合、ubuntu 18.04を使用していたときにこのエラーが発生しました。必要なのは、インストールディレクトリ(ubuntu-opt/lampp/phpmyadmin)に移動し、適切なすべての読み取り/書き込み権限を持つフォルダtmpを作成することです。

Ubuntuの場合は、次の手順に従ってください

1. cmd-で次のコマンドを入力してPMAインストールディレクトリに移動します

cd opt/lampp/phpmyadmin

2.次に、次のコマンドを入力します

Sudo mkdir tmp && chmod 777 tmp

これで完了です。私はそれが役立つことを願っています。

2

1)tmpフォルダーを作成します

mkdir /usr/share/phpmyadmin/tmp

2)PHPユーザーを見つける

<?php echo `whoami`; ?>

3)tmpフォルダーの所有権をステップ2で見つかったphpユーザーに変更します

Sudo chown -R step2phpuser:step2phpuser /usr/share/phpmyadmin/tmp

4)phpmyadminのサインアウトとサインイン

2
Kareem

私の場合[MacOs ElCapitán/ portuguese]、メッセージは次のとおりでした。

The $cfg['TempDir'] (./temp/) is not accessible

Xamppfiles/phpmyadmin/config.inc.phpにある私のソリューション:

$cfg['TempDir'] = './temp/'; to $cfg['TempDir'] = '../temp/';

つまり、パスにポイントを追加しただけです...作業は問題ありません。

1
Carlos Freire

ArchおよびManjaroユーザーの場合:

/etc/webapps/phpmyadmin/-mkdir /etc/webapps/phpmyadmin/tmpにフォルダーtmpを作成します

許可を777に設定-chmod 777 /etc/webapps/phpmyadmin/tmp

この行を/etc/webapps/phpmyadmin/config.inc.php-$cfg['TempDir'] = '/tmp';の構成ファイルに追加します

乾杯:)

1
Albin

vendor_config.phpファイルをdefine('TEMP_DIR', '/tmp/');ではなくdefine('TEMP_DIR', './tmp/');に変更しました

これはうまくいくようです。

1
smack7s

「temp」ディレクトリで同様の問題が発生しました。解決策は、「twig」ディレクトリの所有者とグループ(「temp」内)を「Apache」(所有者とグループの両方)に変更することでした

1
Ari

同じエラーメッセージが表示されました。 lamppでUbuntu16.04を使用しています。 「phpmyadmin」ディレクトリに移動する必要があります。私の場合は「/ opt/lampp/phpmyadmin /」で、新しい「tmp」フォルダを作成します。ターミナルウィンドウを開き、次の操作を行います。

cd YOUR_PATH_TO_PHPMYADMIN
Sudo mkdir tmp

ここで、「tmp」フォルダーのグループを変更して、phpユーザーにアクセスを許可する必要があります。それを見つけるために、localhostディレクトリ内にphpファイルを作成できます。私の場合は「htdocs」です。

Sudo touch user.php
Sudo nano user.php

Nanoエディター内で、次のように入力します。

<?php echo `whoami`; ?>

次に、CTRL + OおよびCTRL + Xを押して保存して終了します。ブラウザーを開き、アドレスバーに入力します

localhost/user.php

Phpユーザーが表示されます。

その後、ターミナルに移動して、phpmyadminディレクトリ内に最近作成した「tmp」ディレクトリに移動し、次のように入力します。

Sudo chgrp YOUR_PHP_USER tmp -R

そして、「tmp」ディレクトリへのアクセス権を変更します。

Sudo chmod 775 tmp -R

どのファイルにも777許可を与えないことをお勧めします。

私はそれが役立つことを願っています!

Phpmyadminファイルのルートにtmpフォルダーを作成します

それに加えて、そのフォルダへのすべてのアクセス許可も提供する必要があります。それは私がWindowsでやったことです。

1
Pishang Ujeniya

phpmyadminフォルダーに移動して、このコードを入力します

$ cfg ['TempDir'] = './tmp/';

tmpフォルダーが存在するかどうかをphpmyadminにチェックし、存在しない場合はtmpフォルダーを作成し、読み取りおよび適切なアクセス許可を与えます。

0
pawan kumar

私の回答は、centos 7 Sentoraユーザーに送られます。以下に示すように、SentoraのphpMyadminの下にtmpフォルダーを作成する必要があります

cd /etc/sentora/panel/etc/apps/phpmyadmin/
Sudo mkdir tmp

フォルダーを作成したら、Apacheにtmpフォルダーへのアクセス許可を付与していることを確認してください

chown -R Apache /etc/sentora/panel/etc/apps/phpmyadmin/tmp/

0
gumisirizab1