Bug #59088
closedPathUtility::stripPathSitePrefix() fails with symlinked TYPO3-dirs
0%
Description
- TYPO3 is installed in /var/www/html/www1
- But the (other) vhost that gets called by the browser is /var/www/html/somefoobar, which is a symlink to /var/www/html/www1
(a separate website but on the same TYPO3-installation)
- In an extension a call like siteRelPath('extensionmanager') will return /var/www/html/somefoobar/typo3/sysext/extensionmanager/
- while PATH_site used in PathUtility::stripPathSitePrefix() equals to /var/www/html/www1/
Thus the returned path from siteRelPath will be 'oobar/typo3/sysext/extensionmanager/' leading to an error.
Updated by Philipp Gampe over 10 years ago
- Category set to Miscellaneous
- Status changed from New to Accepted
- Priority changed from Should have to Must have
- Complexity set to medium
I guess we need to use relative paths or take PATH_site into account while calculating the cache identifier.
Updated by form4 GmbH & Co. KG over 10 years ago
You can reproduce this in TYPO3 6.2.3 with a setup like this:
page = PAGE
page {
10 = TEXT
10.value = Hello1
includeCSS {
file1 = EXT:myext/screen.css
}
}
the two hosts: extdev.domain.de, extdev-multi.domain.de
Copy this in the other root page,too and then make sure you have two domains (one as a folder and the other with a symlink to the same folder).
Example:
/www/extdev
/www/extdev-multi (symlink to /www/extdev)
- Delete Cache in Install-Tool
- Call the domain extdev-multi.domain.de - and you see the screen.css is included.
- Call the domain extdev.domain.de - and there is no screen-css included.
The function \TYPO3\CMS\Core\Utility\PathUtility::stripPathSitePrefix(self::extPath($key) creates a relative path with the current PATH_site constant and a cached package path value with a substring. After clearing the cache - in the first step - TYPO3 produces a path depending on the host of extdev-multi.domain.de: with PATH_site = /www/extdev-multi.
This leads to cached package path like this: /www/extdev-multi/htdocs/typo3conf/ext/myext/
Calling extdev.domain.de stripPathSitePrefix() the value of PATH_site is now: /www/extdev/.
Now we have a cached package path with extdev-multi but the substring happens with the string length of /www/extdev/.
The expected relative path would be: "typo3conf/ext/myext/screen.css"
but the actual result is now: "htdocs/typ3conf/ext/myext/screen.css"
Updated by Helmut Hummel over 10 years ago
- Status changed from Accepted to Closed
closing as duplicate
Updated by Helmut Hummel over 10 years ago
Please test: https://review.typo3.org/31565