Bug #39855

[Windows / VM] FLOW3 symlink error during TYPO3 Phoenix FLOW3 compile

Added by Frank Gerards almost 9 years ago. Updated almost 8 years ago.

Status:
Closed
Priority:
-- undefined --
Assignee:
Category:
-
Target version:
-
Start date:
2012-08-16
Due date:
% Done:

0%

Estimated time:
PHP Version:
5.3
Has patch:
No
Complexity:

Description

Hi,

I use a Debian VM under Windows 7 to develop websites using ZendStudio under Windows. The sources are located in Windows and the document root of the vm apache webserver points to the shared windows path. This is done via VirtualBox Addons. As a result, this is a read-only file system and symlinks are not supported.

Badly, FLOW3/Phoenix report this error. I assume that quite an amount of professional, enterprise-oriented companies develop live-server-near with VMs and under Windows. So this error stops all tries of installing FLOW3 under this circumstances. To my opinion, there has to be a work-around because you cannot be sure, that symlinks work under each environment FLOW3 will be set up. How could this be solved ?

The complete warning is:

Warning: symlink() [<a href='function.symlink'>function.symlink</a>]: Read-only file system in /media/sf_local_dev/phoenix/Data/Temporary/Development/Cache/Code/FLOW3_Object_Classes/TYPO3_FLOW3_Resource_Publishing_FileSystemPublishingTarget_Original.php line 116
21 TYPO3\FLOW3\Error\ErrorHandler::handleError(2, "symlink() [&lt;a href='function.symlink'&gt;function.symlink&lt;/a&gt;]: Read-only file system", "/media/sf_local_dev/phoenix/Data/Temporary/Develop…Publishing_FileSystemPublishingTarget_Original.php", 116, array)

20 symlink("/media/sf_local_dev/phoenix/Packages/Application/Aloha/Resources/Public", "/media/sf_local_dev/phoenix/Web/_Resources/Static/Packages/Aloha")

19 TYPO3\FLOW3\Resource\Publishing\FileSystemPublishingTarget_Original::publishStaticResources("/media/sf_local_dev/phoenix/Packages/Application/Aloha/Resources/Public/", "Packages/Aloha/")

18 TYPO3\FLOW3\Resource\Publishing\ResourcePublisher_Original::publishStaticResources("/media/sf_local_dev/phoenix/Packages/Application/Aloha/Resources/Public/", "Packages/Aloha/")

17 TYPO3\FLOW3\Resource\ResourceManager_Original::publishPublicPackageResources(array)

16 TYPO3\FLOW3\Core\Booting\Scripts::initializeResources(TYPO3\FLOW3\Core\Bootstrap)

15 call_user_func(array, TYPO3\FLOW3\Core\Bootstrap)

14 TYPO3\FLOW3\Core\Booting\Step::__invoke(TYPO3\FLOW3\Core\Bootstrap)

13 TYPO3\FLOW3\Core\Booting\Sequence::invokeStep(TYPO3\FLOW3\Core\Booting\Step, TYPO3\FLOW3\Core\Bootstrap)

12 TYPO3\FLOW3\Core\Booting\Sequence::invokeStep(TYPO3\FLOW3\Core\Booting\Step, TYPO3\FLOW3\Core\Bootstrap)

11 TYPO3\FLOW3\Core\Booting\Sequence::invokeStep(TYPO3\FLOW3\Core\Booting\Step, TYPO3\FLOW3\Core\Bootstrap)

10 TYPO3\FLOW3\Core\Booting\Sequence::invokeStep(TYPO3\FLOW3\Core\Booting\Step, TYPO3\FLOW3\Core\Bootstrap)

9 TYPO3\FLOW3\Core\Booting\Sequence::invokeStep(TYPO3\FLOW3\Core\Booting\Step, TYPO3\FLOW3\Core\Bootstrap)

8 TYPO3\FLOW3\Core\Booting\Sequence::invokeStep(TYPO3\FLOW3\Core\Booting\Step, TYPO3\FLOW3\Core\Bootstrap)

7 TYPO3\FLOW3\Core\Booting\Sequence::invokeStep(TYPO3\FLOW3\Core\Booting\Step, TYPO3\FLOW3\Core\Bootstrap)

6 TYPO3\FLOW3\Core\Booting\Sequence::invokeStep(TYPO3\FLOW3\Core\Booting\Step, TYPO3\FLOW3\Core\Bootstrap)

5 TYPO3\FLOW3\Core\Booting\Sequence::invokeStep(TYPO3\FLOW3\Core\Booting\Step, TYPO3\FLOW3\Core\Bootstrap)

4 TYPO3\FLOW3\Core\Booting\Sequence::invoke(TYPO3\FLOW3\Core\Bootstrap)

3 TYPO3\FLOW3\Http\RequestHandler::boot()

2 TYPO3\Setup\Core\RequestHandler::handleRequest()

1 TYPO3\FLOW3\Core\Bootstrap::run()

Please include more helpful information!

#1

Updated by Frank Gerards almost 9 years ago

UPDATE: ok, there is already a "workaround": You have to switch the resource:publishing:mirrorMode to "copy" in Configuration/Settings.yaml in the TYPO3.FLOW3 package.
Maybe this should be part of a configuration step in the TYPO3 Phoenix Setup/Install wizard, because otherwise Phoenix would only be installable on filesystems supporting linux symlink features..

#2

Updated by Bastian Waidelich almost 9 years ago

Frank Gerards wrote:

UPDATE: ok, there is already a "workaround"

IIRC this is not possible anymore. Please see Adrians comment on #39647

#3

Updated by Frank Gerards almost 9 years ago

This means lot of devs would have to rethink their local dev-system completely (in our company at least 8 ppl) :(.
Is this symlink behaviour only relevant for first compile of FLOW3 or will this error get thrown in later cases during running Phoenix ?

If the first is the case, I will try to compile FLOW3 from windows using flow3.bat and then access that files from VM

#4

Updated by Adrian Föder almost 9 years ago

  • Status changed from New to Needs Feedback
  • Priority changed from Must have to -- undefined --
  • Complexity deleted (medium)

ah Bastian you already mentioned; just wanted to step in ;)

Frank, I would not rely on that pre-build because you might step in additional problems with that lack of permission.

Basically the problem is not on FLOW3 side but on Windows side, if you can say that; the UAC is designed that way.
In general I can tell you the following: make sure that the calling process has elevated Windows rights; ie run the required instance as Administrator, if that is possible. Also Windows' System account has sufficient priviliges.

Do I get this right: you directly access the NTFS file system via your VM? If you were able to create a dedicated storage for your VM, you should also run fine.

#5

Updated by Frank Gerards almost 9 years ago

hi,

I run a VirtualBox VM (linux guest system) with VirtualBox Addons and a shared folder.
This is mounted under /media/... and the VM has read/write access to the files. The vhostsf then reads/writes this from the choosen folder on the windows system.

Background is we are using ZendStudio Windows and wanted a local-dev environment as close as possible to our stage/production servers, which run debian. We tried the other way round (all files lie on the linux VM in a samba-shared folder and ZendStudio accesses its windows share) with Samba, but that dramatically lacks performance with SVN and stuff.

What we loose is the symlink functionality, which FLOW3 seems to use also.
Now I tried that "copy" mode and will try to install FLOW3 from windows command-line using flow3.bat.

What do you mean dedicated storage for VM ? The guest system ofc has a virtual harddrive, but as I described there is a performance issue using Samba. Up until now all devs were very happy with that local setup as we decreased rolling-out configuration problems to a minimum and all could use and version with SVN/ZendStudio etc. .

So what you basically say is: FLOW3 must have the possibility to use symlinks and cannot be compiled/operated in such a mixed-in environment ?

#6

Updated by Adrian Föder almost 9 years ago

I cannot say if it

cannot be compiled/operated in such a mixed-in environment

and I still say that this is not FLOW3's fault. I agree it's a cracky nut and a bit cumbersome on Windows, but I fight the argumentation that a Web application must be able to create symlinks, and an Administrator has to take care that this is possible.

What I meant with

dedicated storage for VM

is a specific dedicated "drive" you create, having a filesystem the OS is "comfortable with".

My way to work with VMs is to have a completely isolated VM that fetches its sources from the remote Git repository to work on and test.

And for developing under Windows, I have a plain Apache and MySql installed directly under Windows; Apache runs as System: no Symlink problem; and Cli I run elevated -> no problem.

So: check if you can run your VM elevated, this will solve your Symlink creation problem.

#7

Updated by Frank Gerards almost 9 years ago

well, the problem is not the VM but the IDE. The IDE has to have its files on the windows system to be fast.
If it was all under windows, I have no right problem because we all have admin-status on local machines.

I agree it is a special case, but I dont find your suggestion matching our requirements - no offence, just maybe my bad english ;).
"Elevated" means running the VM and stuff on a dedicated physical hard-drive with ext2/3 and having a driver that can access this linux hdd from windows on a low-level ?

#8

Updated by Adrian Föder almost 9 years ago

nope I meant "elevated" regarding the permission level the application is running in; usually that's "Administrator". So basically, if you get that darkened screen that asks you to whether to execute a specific program, that's asking to run "elevated".

#9

Updated by Karsten Dambekalns almost 9 years ago

  • Subject changed from FLOW3 symlink error during TYPO3 Phoenix FLOW3 compile to [Windows / VM] FLOW3 symlink error during TYPO3 Phoenix FLOW3 compile
  • Category deleted (- Error Handler Report -)
  • Assignee set to Adrian Föder
#10

Updated by Adrian Föder over 8 years ago

  • Assignee changed from Adrian Föder to Frank Gerards
#11

Updated by Karsten Dambekalns almost 8 years ago

  • Status changed from Needs Feedback to Closed

Also available in: Atom PDF