Support

Akeeba Backup for Joomla!

#29418 SplFileInfo::isDir() Backup error

Posted in ‘Akeeba Backup for Joomla! 4 & 5’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

Joomla! version
n/a
PHP version
n/a
Akeeba Backup version
n/a

Latest post by theadgroup on Monday, 26 March 2018 17:24 CDT

theadgroup
Please look at the bottom of this page (under Support Policy Summary) for our support policy summary, containing important information regarding our working hours and our support policy. Thank you!

EXTREMELY IMPORTANT: Please attach a ZIP file containing your Akeeba Backup log file in order for us to help you with any backup or restoration issue. If the file is over 2Mb, please upload it on your server and post a link to it.

Description of my issue:

Recently I've started getting backup errors with all of my websites that are hosted with the same company. I am aware that this is an issue caused by the hosting but was hoping to get help configuring Akeeba to work correctly.

There is a file in the root directory of my hosting accounts that's a shortcut file. Because of this file, every time I do a backup I get an error message.

SplFileInfo::isDir(): open_basedir restriction in effect. File(/websites/ba/ballaratleaguesclub.com.au/mysqladmin) is not within the allowed path(s): (/phptmp:/tmp:/clientdata/php/lib:/usr/local/php:/usr/local/php/pear-5-6:/clientdata/php/pear-5-6:/websites/ba/ballaratleaguesclub.com.au)

I've tried excluding this file from the backup but nothing is working and I really need to instal some updates on my website.

I do have another website that is fully up to date (both Joomla and Akeeba) and it's getting the same error message.

Can you please advise me what I need to do in order to get my backups working?

Thanks!

nicholas
Akeeba Staff
Manager
You will need to contact your host about this. It's impossible to deal on our end.

Exclusions in Akeeba Backup are either file or directory exclusions. When we are listing the contents of a directory we are given a list of entry names. We have to determine if an entry is a directory or a file before applying the exclusions.

The problem is that your host has a glaringly obvious misconfiguration which leads to PHP erroring out as soon as we query the nature of that entry (hey PHP, tell us, is this a file or a directory?).

The misconfiguration is that your host linked the mysqladmin folder into your web root. This means that they do not understand how their web server, Apache, actually works! You don't need to create symlinks to give access to an application stored outside the web root. You can have an Alias / AliasMatch directive which does. In fact, Apache [url=https://httpd.apache.org/docs/2.4/urlmapping.html#outside]has an entire documentation page about this.

The only way to prevent this issue without the host's intervention requires raising our minimum version requirement to PHP 7. Under PHP 7 this fatal error is actually an exception of the ErrorException type which can be caught, reported, and sidestepped. The problem is that the ErrorException class only exists since PHP 7.0. If we try to catch exceptions of the ErrorException type on PHP 5 it will cause a fatal error. That is, the code to catch a potential fatal error will always cause a fatal error. Therefore we cannot fix this issue until June 2019 when we will drop support for PHP 5 from our software. I hope that now you understand one of the hundreds of reasons why we are asking our users to upgrade their version of PHP as soon as possible. There are issues, mostly edge cases, which cannot be dealt with when we are chained to old versions of PHP which don't provide the necessary tools to address these issues.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

theadgroup
Thanks Nicholas,

I can also agree that the hosting company doesn't have much of a clue about what they are doing.

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!