phpMyAdmin
はv4.7.9で正常に機能しました。今すぐv4.8.0に更新した後(古いphpmyadmin
フォルダーを新しいフォルダーに置き換えて)、phpMyAdminでこのメッセージが表示されます。
$ cfg ['TempDir'](./tmp/)にアクセスできません。 phpMyAdminはテンプレートをキャッシュできず、このために遅くなります。
次のようなフォルダー./tmp/
を追加しました:/usr/share/tmp
phpMyAdminはオンです:/usr/share/phpmyadmin
これは何も変わりませんでした。
誰がこのエラーを知っていますか?私に何ができる?
解決策は、次のようなtmp
というフォルダーを作成することでした:/usr/share/phpmyadmin/tmp
。
また、ウェブサーバー(Apacheなど)を実行しているユーザー(またはグループ)が、新しく作成されたtmpフォルダーへの書き込みアクセス権を持っていることを確認してください。そのため、そのユーザーの所有権を変更するか、すべてのユーザーに書き込みアクセス権を追加します。後者は実際にはお勧めできません。
簡単な修正は、phpmyadmin dirにtmp dirを作成し、パーミッションを777に設定することです
mkdir tmp && chmod 777 tmp
それから
config.inc.phpファイルを更新し、その行を追加します
$cfg['TempDir'] = 'tmp';
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']
を設定します。
私の場合、私は追加しました
$cfg['TempDir'] = '/usr/share/phpmyadmin/temp';
に
phpmyadminフォルダー内のconfig.inc.phpファイル
それが誰かを助けることを願っています
PhpMyAdminインストールのベースディレクトリにtmp
フォルダー(たとえば、/usr/share/phpmyadmin/tmp
)を作成し、PHPが実行されているユーザーが書き込み可能であることを確認します。
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サーバーによって公開されたツリーの外部にある必要があります。
$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を作成できますが、システム上の他のユーザーがこのディレクトリでデータを読み書きするリスクが生じる可能性があります。
私の場合、ubuntu 18.04を使用していたときにこのエラーが発生しました。必要なのは、インストールディレクトリ(ubuntu-opt/lampp/phpmyadmin)に移動し、適切なすべての読み取り/書き込み権限を持つフォルダtmpを作成することです。
Ubuntuの場合は、次の手順に従ってください
1. cmd-で次のコマンドを入力してPMAインストールディレクトリに移動します
cd opt/lampp/phpmyadmin
2.次に、次のコマンドを入力します
Sudo mkdir tmp && chmod 777 tmp
これで完了です。私はそれが役立つことを願っています。
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のサインアウトとサインイン
私の場合[MacOs ElCapitán/ portuguese]、メッセージは次のとおりでした。
The $cfg['TempDir'] (./temp/) is not accessible
Xamppfiles/phpmyadmin/config.inc.phpにある私のソリューション:
$cfg['TempDir'] = './temp/'; to $cfg['TempDir'] = '../temp/';
つまり、パスにポイントを追加しただけです...作業は問題ありません。
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';
の構成ファイルに追加します
乾杯:)
vendor_config.php
ファイルをdefine('TEMP_DIR', '/tmp/');
ではなくdefine('TEMP_DIR', './tmp/');
に変更しました
これはうまくいくようです。
「temp」ディレクトリで同様の問題が発生しました。解決策は、「twig」ディレクトリの所有者とグループ(「temp」内)を「Apache」(所有者とグループの両方)に変更することでした
同じエラーメッセージが表示されました。 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でやったことです。
phpmyadminフォルダーに移動して、このコードを入力します
$ cfg ['TempDir'] = './tmp/';
tmpフォルダーが存在するかどうかをphpmyadminにチェックし、存在しない場合はtmpフォルダーを作成し、読み取りおよび適切なアクセス許可を与えます。
私の回答は、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/