$cfg['TempDir'] (/var/lib/phpmyadmin/tmp 1) is not accessible.

Discussion in 'Installation/Configuration' started by neumann, Feb 10, 2023.

  1. schwim

    schwim Member HowtoForge Supporter

    Code:
    root@system:/var/lib/phpmyadmin# ls -la
    total 12
    drwxr-x---  3 ispapps www-data 4096 Mar  8 19:33 .
    drwxr-xr-x 53 root    root     4096 Mar 19 09:34 ..
    drwxr-x---  2 ispapps www-data 4096 Mar  8 19:33 tmp
    root@system:/var/lib/phpmyadmin#
    It seems to be present and with proper permissions.
     
  2. pyte

    pyte Well-Known Member HowtoForge Supporter

    This is working for me:
    Code:
    chmod -R 755 /var/lib/phpmyadmin/tmp
    Give it a shot and report if that changes anything
     
  3. schwim

    schwim Member HowtoForge Supporter

    Thanks for the idea but the issue persists after altering the permission.
     
  4. pyte

    pyte Well-Known Member HowtoForge Supporter

    Can you please post the config and the explicit error message?
     
  5. schwim

    schwim Member HowtoForge Supporter

    Error:
    nano /usr/share/phpmyadmin/config.inc.php

    Code:
    ?php
    /**
     * phpMyAdmin sample configuration, you can use it as base for
     * manual configuration. For easier setup you can use setup/
     *
     * All directives are explained in documentation in the doc/ folder
     * or at <https://docs.phpmyadmin.net/>.
     */
    
    declare(strict_types=1);
    
    /**
     * This is needed for cookie based authentication to encrypt the cookie.
     * Needs to be a 32-bytes long string of random bytes. See FAQ 2.10.
     */
    $cfg['blowfish_secret'] = 'redacted';
    
    /**
     * Servers configuration
     */
    $i = 0;
    
    /**
     * First server
     */
    $i++;
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    $cfg['Servers'][$i]['host'] = 'localhost';
    $cfg['Servers'][$i]['compress'] = false;
    $cfg['Servers'][$i]['AllowNoPassword'] = false;
    
    /**
     * phpMyAdmin configuration storage settings.
     */
    
    /* User used to manipulate with storage */
    $cfg['Servers'][$i]['controlhost'] = 'localhost';
    $cfg['Servers'][$i]['controlport'] = '';
    $cfg['Servers'][$i]['controluser'] = 'pma';
    $cfg['Servers'][$i]['controlpass'] = 'r5H6orU9gzRytWk';
    
    /* Storage database and tables */
    $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
    $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
    $cfg['Servers'][$i]['relation'] = 'pma__relation';
    $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
    $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
    $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
    $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
    $cfg['Servers'][$i]['history'] = 'pma__history';
    $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
    $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
    $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
    $cfg['Servers'][$i]['recent'] = 'pma__recent';
    $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
    $cfg['Servers'][$i]['users'] = 'pma__users';
    $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
    $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
    $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
    $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
    $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
    $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
    
    /**
     * End of servers configuration
     */
    /**
     * Directories for saving/loading files from server
     */
    $cfg['UploadDir'] = '/var/lib/phpmyadmin/tmp';
    $cfg['SaveDir'] = '/var/lib/phpmyadmin/tmp';
    
    /**
     * Whether to display icons or text or both icons and text in table row
     * action segment. Value can be either of 'icons', 'text' or 'both'.
     * default = 'both'
     */
    //$cfg['RowActionType'] = 'icons';
    
    /**
     * Defines whether a user should be displayed a "show all (records)"
     * button in browse mode or not.
     * default = false
     */
    //$cfg['ShowAll'] = true;
    
    /**
     * Number of rows displayed when browsing a result set. If the result
     * set contains more rows, "Previous" and "Next".
     * Possible values: 25, 50, 100, 250, 500
     * default = 25
     */
    //$cfg['MaxRows'] = 50;
    
    /**
     * Disallow editing of binary fields
     * valid values are:
     *   false    allow editing
    *   'blob'   allow editing except for BLOB fields
     *   'noblob' disallow editing except for BLOB fields
     *   'all'    disallow editing
     * default = 'blob'
     */
    //$cfg['ProtectBinary'] = false;
    
    /**
     * Default language to use, if not browser-defined or user-defined
     * (you find all languages in the locale folder)
     * uncomment the desired line:
     * default = 'en'
     */
    //$cfg['DefaultLang'] = 'en';
    //$cfg['DefaultLang'] = 'de';
    
    /**
     * How many columns should be used for table display of a database?
     * (a value larger than 1 results in some information being hidden)
     * default = 1
     */
    //$cfg['PropertiesNumColumns'] = 2;
    
    /**
     * Set to true if you want DB-based query history.If false, this utilizes
     * JS-routines to display query history (lost by window close)
     *
     * This requires configuration storage enabled, see above.
     * default = false
     */
    //$cfg['QueryHistoryDB'] = true;
    
    /**
     * When using DB-based query history, how many entries should be kept?
     * default = 25
     */
    //$cfg['QueryHistoryMax'] = 100;
    
    /**
     * Whether or not to query the user before sending the error report to
     * the phpMyAdmin team when a JavaScript error occurs
     *
     * Available options
     * ('ask' | 'always' | 'never')
     * default = 'ask'
     */
    //$cfg['SendErrorReports'] = 'always';
    
    /**
     * 'URLQueryEncryption' defines whether phpMyAdmin will encrypt sensitive data >
     * 'URLQueryEncryptionSecretKey' is a 32 bytes long secret key used to encrypt/>
     */
    //$cfg['URLQueryEncryption'] = true;
    //$cfg['URLQueryEncryptionSecretKey'] = '';
    
    /**
     * You can find more configuration options in the documentation
     * in the doc/ folder or at <https://docs.phpmyadmin.net/>.
     */
    
    $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
    
     
  6. Alex Mamatuik

    Alex Mamatuik Member

    @schwim very interesting! my configuration file - /etc/phpMyAdmin/config.inc.php - has no any temporary directory at all, just $cfg['UploadDir'] & $cfg['SaveDir'].
    And why do you prefer $cfg['Servers'][$i]['auth_type'] = 'cookie'; instead of 'http'; ?
     
  7. ahrasis

    ahrasis Well-Known Member HowtoForge Supporter

    Shouldn't the PMA /var/lib/phpmyadmin
    folder and its files belongs to www-data:www-data? At least that is how we set it up following Debian 10 PST.
     
  8. neumann

    neumann Member

    No I haven't solved the issue. And now I have installed yet another server with the exact same issue.
    Which brings me to the conclusion that is has to be an error with the git install script.
     
  9. GhostRider

    GhostRider New Member

    First of all, these rights should not be there. "ispapps"
    Here's my first way of doing it with my big arms in gruff mode.
    Change
    Code:
    $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
    to
    Code:
    $cfg['TempDir'] = '/tmp';
    Secondly, in a more consensual way, we will have to change the rights and put them back in their place!

    Code:
    cd /var/lib/phpmyadmin/
    chown www-data:www-data tmp
    rm -r tmp/twig
    Now I need some chocolate milk, I love chocolate.
    Please send me some in PM!
    [​IMG]
    Sorry for the translation, it's google
     
    ahrasis, alcaweb and Appie Thrasher like this.
  10. Appie Thrasher

    Appie Thrasher Member HowtoForge Supporter

    Yep same here get this error with fresh automated install of ISPConfig.
    directory is in position and changing it to 755 did not do the trick.
    So is the install script corrupt?
     
  11. till

    till Super Moderator Staff Member ISPConfig Developer

    Did you read the whole thread incl. post #29, which suggests a different solution than chmod 755 that worked for the poster?
     
  12. till

    till Super Moderator Staff Member ISPConfig Developer

    And another reason for getting such an error can be that you use a wrong URL to access phpmyadmin, it must be accessed like this:

    https://serverhostname.tld:8081/phpmyadmin

    E.g. by using a different domain than server hostname or leaving out port 8081 in the URL can cause problems with the access to phpmyadmin and its folder permissions.
     
  13. Appie Thrasher

    Appie Thrasher Member HowtoForge Supporter

    Hi Till,
    Thanks for this very quick response...
    I did see and red that post, but tbh I did not see a msg saying that was (a) the solution. And now I am of course willing to give it a try..
    I did look in php.ini (/etc/php/7.4/fpm/php.ini) for that entry but I dont see it: were is the file to edit the tmp setting located?

    And yes I used my url and 8080 to log in, but changing to 8081 did not resolve this for me..

    Thanks Appie
     
  14. Appie Thrasher

    Appie Thrasher Member HowtoForge Supporter

    Indeed post #29 did the trick for me also..
    Thanks
     
    ahrasis and till like this.
  15. roysk

    roysk New Member

    i followed the perfect server automated installation for debian 12 and i had the same warning.
    It seems that the autoupdate script of phpmyadmin changes the ownership of /var/lib/phpmyadmin folder although initially they are set correctly (www-data:www-data) from the autoinstaller of the guide.
    I only changed the permissions back to www-data for the whole /var/lib/phpmyadmin folder without changing $cfg['TempDir'] and the warning dissapeared.
     
    Last edited: Nov 2, 2023
    ahrasis and pyte like this.
  16. alcaweb

    alcaweb New Member

    Work for me, thanks!
     
    Th0m and ahrasis like this.
  17. churbz

    churbz New Member

    I've experienced similar errors regarding both the /tmp and BlowFish problems. The extra " 1" was not present in my situation. Server details: Ubuntu 22.04, phpMyAdmin 5.2.1, php 8.1.29. This particular server was built a while ago using the automated server installation process (early stages of the automation script).

    I remember in the past that I used the phpMyAdmin update script to either check for and/or update phpMyAdmin.

    My assumption is that something went wrong using the phpMyAdmin update script at that time. Further research of the actual automated installation script reinforced my approach. My reconnaissance was to locate the config.sample.inc.php and config.inc.php using the commands:

    Code:
    find / -iname config.sample.inc.php
    and
    find / -iname config.inc.php
    
    Yielded the snipped terse output:
    Code:
    /usr/share/phpmyadmin/config.sample.inc.php
    /usr/share/phpmyadmin-bak-5.2.1-240109062512/config.sample.inc.php
    /usr/share/phpmyadmin-bak-5.2.1-240325062501/config.sample.inc.php
    /usr/share/phpmyadmin-bak-5.2.1-240420062501/config.sample.inc.php
    /usr/share/phpmyadmin-bak-5.2.1-240220062501/config.sample.inc.php
    and
    /usr/share/phpmyadmin-bak-5.2.1-240109062512/config.inc.php
    
    So as to not reinvent the wheel, I simply copied the "-bak-5.2.1" config.inc.php to the correct location:
    Code:
    cp /usr/share/phpmyadmin-bak-5.2.1-240420062501/config.inc.php /usr/share/phpmyadmin/config.inc.php
    
    After a server reboot, I was still left with the TempDir issue where I needed to manually correct the ownership after deleting any content/folders in the "tmp" directoy:
    Code:
    cd /var/lib/phpmyadmin/
    chown www-data:www-data tmp
    
    Another server reboot and the errors are gone.
     
    ahrasis likes this.

Share This Page