I test phpmyadmin 5.0.4 and 5.1.0.RC1 on ubuntu server 20.04, and I'm geeting the following error:
Warning in ./libraries/classes/Config.php#1285
mkdir(): Permission denied
Backtrace
./libraries/classes/Config.php#1285: mkdir(
string '/usr/share/phpmyadmin//var/lib/phpmyadmin/tmp/twig',
integer 504,
boolean true,
)
./libraries/classes/Template.php#57: PhpMyAdmin\Config->getTempDir(string 'twig')
./libraries/classes/Theme.php#101: PhpMyAdmin\Template->__construct()
./libraries/classes/Theme.php#174: PhpMyAdmin\Theme->__construct()
./libraries/classes/ThemeManager.php#307: PhpMyAdmin\Theme::load(
string './themes/pmahomme',
string '/usr/share/phpmyadmin/./themes/pmahomme/',
)
./libraries/classes/ThemeManager.php#79: PhpMyAdmin\ThemeManager->loadThemes()
./libraries/classes/ThemeManager.php#121: PhpMyAdmin\ThemeManager->__construct()
./libraries/classes/ThemeManager.php#385: PhpMyAdmin\ThemeManager::getInstance()
./libraries/common.inc.php#232: PhpMyAdmin\ThemeManager::initializeTheme()
./index.php#15: require_once(./libraries/common.inc.php)
I've try to change owner of my./libraries/classes/Config.php and /var/lib/phpmyadmin/tmp/twig (created this folder "twig" too) by www-data (original "root"), but error wasn't resolved.
my vendor config is:
<?php
/**
* File for vendor customization, you can change here paths or some behaviour,
* which vendors such as Linux distributions might want to change.
*
* For changing this file you should know what you are doing. For this reason
* options here are not part of normal configuration.
*/
declare(strict_types=1);
// phpcs:disable PSR1.Files.SideEffects
if (! defined('PHPMYADMIN')) {
exit;
}
// phpcs:enable
/**
* Path to vendor autoload file. Useful when you want to
* have have vendor dependencies somewhere else.
*/
define('AUTOLOAD_FILE', ROOT_PATH . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php');
/**
* Directory where cache files are stored.
*/
define('TEMP_DIR', ROOT_PATH . '/var/lib/phpmyadmin/tmp/' . DIRECTORY_SEPARATOR);
/**
* Path to changelog file, can be gzip compressed. Useful when you want to
* have documentation somewhere else, eg. /usr/share/doc.
*/
define('CHANGELOG_FILE', ROOT_PATH . 'ChangeLog');
/**
* Path to license file. Useful when you want to have documentation somewhere
* else, eg. /usr/share/doc.
*/
define('LICENSE_FILE', ROOT_PATH . 'LICENSE');
/**
* Directory where SQL scripts to create/upgrade configuration storage reside.
*/
define('SQL_DIR', ROOT_PATH . 'sql' . DIRECTORY_SEPARATOR);
/**
* Directory where configuration files are stored.
* It is not used directly in code, just a convenient
* define used further in this file.
*/
define('CONFIG_DIR', '/etc/phpmyadmin/');
/**
* Filename of a configuration file.
*/
define('CONFIG_FILE', CONFIG_DIR . 'config.inc.php');
/**
* Filename of custom header file.
*/
define('CUSTOM_HEADER_FILE', CONFIG_DIR . 'config.header.inc.php');
/**
* Filename of custom footer file.
*/
define('CUSTOM_FOOTER_FILE', CONFIG_DIR . 'config.footer.inc.php');
/**
* Default value for check for version upgrades.
*/
define('VERSION_CHECK_DEFAULT', true);
/**
* Path to files with compiled locales (*.mo)
*/
define('LOCALE_PATH', ROOT_PATH . 'locale' . DIRECTORY_SEPARATOR);
/**
* Define the cache directory for routing cache an other cache files
*/
define('CACHE_DIR', ROOT_PATH . 'libraries' . DIRECTORY_SEPARATOR . 'cache' . DIRECTORY_SEPARATOR);
and i work with php8.0.
Thx for your backs !
Enable template caching. Edit /usr/share/webapps/phpMyAdmin/config.inc.php
to add the line:
$cfg['TempDir'] = '/tmp/phpmyadmin';
Source: https://wiki.archlinux.org/index.php/PhpMyAdmin#Enabling_template_caching
Had same issue. Solved it by:
Open vendor_config.php
:
sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php
Press CTRL + W and search for TEMP_DIR
Change line to:
define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');
Press CTRL + W and search for CONFIG_DIR
Change line to:
define('CONFIG_DIR', '/etc/phpmyadmin/');
Save file and exit. (Press CTRL + X . Press Y and then press ENTER )
Select the installed version: https://www.phpmyadmin.net/files/
Extract and replace the /libraries/classes/Config.php
file with existing one.
Thanks & Regards.
This is an addendum to Saurabh's answer. I had to manually create the temporary directory structure, and add an additional directory titled "twig". So you may need to create:
/var/lib/phpmyadmin/tmp/twig
After following their instructions and creating the temp dirs then everything worked fine.
In case this is not solved, it's most likely because apache user is not the default www-data
.
When you install phpmyadmin
, /var/lib/phpmyadmin/tmp
is owned by www-data
by default.
Thus, if you changed apache default user, it can't write in this dir.
Fix is rather easy:
chown -R "apache-user:apache-group" /var/lib/phpmyadmin/*
chmod -R g+s /var/lib/phpmyadmin/tmp/
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.