6

I'm attempting to migrate a Joomla 3.7.1 website onto a new server - and have (mostly) successfully done so using a traditional AkeebaBackup migration.

The source site/server is running PHP 5.6.30 with EasyApache 3, and the destination site/server is running PHP 7.1 with EasyApache 4.

The most obvious problem I'm seeing on the destination site is that within EXTENSIONS > MANAGE > WARNINGS, the message "The PHP temporary folder is not set." appears - and I cannot understand why, because;

  • My temporary folder path has been defined in GLOBAL CONFIGURATION > SERVER > PATH TO TEMP FOLDER (and this is correctly reflected within the configuration.php file.
  • The temporary folder path has also been defined in the Joomla root's php.ini file.
  • If I run phpinfo using a Joomla article, or a custom .php file in the site's root, the upload_tmp_dir value correctly returns my defined folder path.
  • My temporary folder does exist and has the correct permissions (0755) - identical to those on my fully-working source site.

However ...

  • If I look at phpinfo via Joomla's own SYSTEM > SYSTEM INFORMATION > PHP INFORMATION, the upload_tmp_dir value states 'no value', in complete contradiction to the phpinfo results run elsewhere (as mentioned above).

So my question, quite simply, is how do I fix the message "The PHP temporary folder is not set." - and why is Joomla's own phpinfo not finding the upload_tmp_dir when everything else is? The source site does not have this problem.

The other notable difference that I should mention is that since the switch from EasyApache 3 to EasyApache 4, I'm no longer using suPHP_ConfigPath in order to define my custom php.ini file (as I am on the source site) - and am instead using the 'MultiPHP INI Editor' within cPanel. Because upload_tmp_dir is not one of the included parameters, I've added it via Editor Mode.

Thanks in advance for any thoughts.

1
  • 1
    I have a GoGeek account with SiteGround (shared hosting) and I get this warning on all my sites. I've had no issues due to the warnings, but they are annoying, so I looked into addressing them - but to no avail. This seems to be an issue on shared hosting environments which do not give you access to the php.ini file, so I guess I have to live with the warning messages. For a good help article on this matter, see bobcares.com/blog/joomla-error/2
    – NivF007
    Mar 3, 2018 at 0:48

3 Answers 3

3

Likely Joomla will work without issues even with the php's tmp directory not being set. However, if you get issues, or simply want to get rid of this warning in you Joomla Admin, then you have to define in your php configuration the upload-tmp-dir directive.

Note that setting up the hosting/server environment is not exactly a Joomla question. There is nothing inside Joomla to help you define this core php.ini directive, and also do note that setting up Joomla's tmp directory is a different thing than setting up php upload_tmp_dir.

Now regarding your issue and with all these in mind and the info you have provided, it's hard to say what's wrong in your setup.

Certainly if you get that upload_tmp_dir is not set, then this is how it is - at least for the backend. I am sure that if you contact your hosting provider/system administrator, they will resolve this in just a few minutes. Otherwise you might get some clue if you look at Joomla's System Info (phpinfo) page for which php.ini files are getting loaded in the backend and review those settings there.

Ah - and usually you have to restart apache, after making any changes to php.ini files.

1
  • Hi there - thanks for taking the time to respond. The tricky thing here, though, is that the symptoms are only visible within Joomla - not the directory in which Joomla is installed - just Joomla. The solution may well not be a change to Joomla, but outside of Joomla's back end the specified upload_tmp_dir IS being recognised. Joomla's backend phpinfo calls the wrong php.ini, but if I run phpinfo from a Joomla article or a completely separate .php file (in Joomla's root directory), the correct php.ini file is called. Apache (and the server in general) has been rebooted.
    – Hobbes
    May 22, 2017 at 19:22
2

Step 1: Just upload the upgrade package to the server via ftp or extract in cpanel file manager.

Step 2: You will see an error after installation in the administration site only. Go to Extensions, Manage, Database and press "FIX" Button.

0

Setting upload_tmp_dir in php.ini or .htaccess does not seem to work.

The only way I have been able to silence this warning message in Joomla is setting upload_tmp_dir via cPanel -> Select PHP Version -> Options -> upload_tmp_dir.

The default value of ~/public_html/tmp that some hosts use for upload_tmp_dir does not seem to work but setting the value to a specific folder e.g. /home/accountname/tmp does seem to work.

The Select PHP Version tool in cPanel is available on servers with EasyApache 3 and CloudLinux.

EasyApache 4 cPanel replaced the Select PHP Version tool with MultiPHP Manager which does not seem to have any equivalent option to set upload_tmp_dir.

Apparently the Select PHP Version tool can be enabled to work alongside MultiPHP Manager but most hosts only offer one or the other.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.