Search the FirstSpirit Knowledge Base
Hallo,
ich möchte ein Projekt per FTP veröffentlichen. Die eingegebenen Server- und Nutzerdaten sind korrekt und der FTP User hat auch Schreibrechte im entsprechenden Verzeichnis.
Wenn ich dann auf "Konfiguration testen" mache bekomme ich jedoch Fehlermeldungen.
Ich verstehe nicht wieso veruscht wird das Verzeichnis /pfad/des/ftp_users zu erstellen?! Dieses existiert doch bereits und dort hinein soll nur deployt werden...
INFO 09.02.2012 07:48:33.298 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): dummy session created (ID=946441470999281568, user=ScheduleManager)
INFO 09.02.2012 07:48:33.360 (de.espirit.firstspirit.io.FtpFileSystemOperations): cannot enter block transfer mode - continue in stream mode
INFO 09.02.2012 07:48:33.394 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): close dummy session (ID=946441470999281568, user=ScheduleManager)
FATAL 09.02.2012 07:48:33.395 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): test task failed - java.lang.IllegalStateException: cannot create file system layer
...
Caused by: de.espirit.common.util.FactoryException: cannot create ftp file system layer - java.io.IOException: cannot create dir /pfad/des/ftp_users
...
Caused by: java.io.IOException: cannot create dir /pfad/des/ftp_users
Ich verstehe nicht wieso veruscht wird das Verzeichnis /pfad/des/ftp_users zu erstellen?! Dieses existiert doch bereits und dort hinein soll nur deployt werden...
Um welche FirstSpirit-Version handelt es sich? Und welchen FTP-Server? Wahrscheinliche Ursache ist, das das Directory-Listing nicht verstanden wird. Bitte mal ein Listing und den kompletten Trace der Fehlermeldung posten...
Es handelt sich um firstSpirit 4.2.454.47473 und als FTP wird ProFTPD Version 1.3.3c eingesetzt.
Da ich bis jetzt immer noch nicht weiß wie ich den erweiterten Editor nutzen kann hier leider ein unformatierter Trace...
INFO 09.02.2012 11:37:11.730 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): dummy session created (ID=1606386799548163893, user=ScheduleManager)
INFO 09.02.2012 11:37:14.827 (de.espirit.firstspirit.io.FtpFileSystemOperations): cannot enter block transfer mode - continue in stream mode
INFO 09.02.2012 11:37:14.857 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): close dummy session (ID=1606386799548163893, user=ScheduleManager)
FATAL 09.02.2012 11:37:14.858 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): test task failed - java.lang.IllegalStateException: cannot create file system layer
java.lang.IllegalStateException: cannot create file system layer
at de.espirit.firstspirit.admin.FtpTargetImpl.createFileSystem(FtpTargetImpl.java:305)
at de.espirit.firstspirit.server.scheduler.DeployTaskExecutor.init(DeployTaskExecutor.java:321)
at de.espirit.firstspirit.server.scheduler.DeployTaskExecutor.test(DeployTaskExecutor.java:252)
at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl.test(ScheduleManagerImpl.java:955)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:62)
at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:91)
at de.espirit.firstspirit.server.io.handler.ManagerCall.handle(ManagerCall.java:67)
at de.espirit.firstspirit.server.io.ManagerCallWorker.run(ManagerCallWorker.java:108)
at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:553)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:520)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:36)
Caused by: de.espirit.common.util.FactoryException: cannot create ftp file system layer - java.io.IOException: cannot create dir /pfad/des/ftp_users
at de.espirit.firstspirit.admin.FtpFileSystemFactory.create(FtpFileSystemFactory.java:84)
at de.espirit.firstspirit.admin.FtpFileSystemFactory.create(FtpFileSystemFactory.java:24)
at de.espirit.firstspirit.admin.FtpTargetImpl.createFileSystem(FtpTargetImpl.java:303)
... 23 more
Caused by: java.io.IOException: cannot create dir /pfad/des/ftp_users
at de.espirit.firstspirit.io.FtpFileSystemOperations.<init>(FtpFileSystemOperations.java:90)
at de.espirit.firstspirit.admin.FtpFileSystemFactory.create(FtpFileSystemFactory.java:82)
... 25 more
INFO 09.02.2012 11:37:14.858 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): finished test schedule task 'Deployment' - 1 fatal error(s), 0 error(s), 0 warning(s)
Am Trace ist ersichtlich, das das CWD Kommando fehlschlägt. Bist du sicher, das das Verzeichnis exisitert und der Benutzer dort Lese-/Schreibrechte hat? Wenn ja, dann wäre wie gesagt ein exemplarisches Directory-Listing hilfreich.
Ausserdem kann man über den Eintrag "log4j.logger.de.espirit.firstspirit.io.FtpFileSystemOperations=TRACE" in der Logging-Konfiguration kurzfristig erweiterte Logging-Meldungen bekommen, um den Fehler weiter einzugrenzen.
Ich habe jetzt das erweiterte Logging aktiviert:
INFO 09.02.2012 12:38:45.189 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): dummy session created (ID=4044696688139648581, user=ScheduleManager)
TRACE 09.02.2012 12:38:45.304 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MODE MODE B
WARN 09.02.2012 12:38:45.313 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 504 'MODE B' unsupported transfer mode
INFO 09.02.2012 12:38:45.314 (de.espirit.firstspirit.io.FtpFileSystemOperations): cannot enter block transfer mode - continue in stream mode
TRACE 09.02.2012 12:38:45.315 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: PWD PWD
TRACE 09.02.2012 12:38:45.325 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 257 "/" is the current directory
TRACE 09.02.2012 12:38:45.326 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MKD MKD /var
WARN 09.02.2012 12:38:45.337 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var: File exists
TRACE 09.02.2012 12:38:45.337 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MKD MKD /var/www
WARN 09.02.2012 12:38:45.347 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var/www: Permission denied
TRACE 09.02.2012 12:38:45.347 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MKD MKD /var/www/vhosts
WARN 09.02.2012 12:38:45.358 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var/www/vhosts: No such file or directory
TRACE 09.02.2012 12:38:45.359 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MKD MKD /var/www/vhosts/domain
WARN 09.02.2012 12:38:45.369 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var/www/vhosts/domain: No such file or directory
TRACE 09.02.2012 12:38:45.370 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MKD MKD /var/www/vhosts/domain/httpdocs
WARN 09.02.2012 12:38:45.381 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var/www/vhosts/domain/httpdocs: No such file or directory
TRACE 09.02.2012 12:38:45.382 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: CWD CWD /var/www/vhosts/domain/httpdocs
WARN 09.02.2012 12:38:45.392 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var/www/vhosts/domain/httpdocs: No such file or directory
Mich wundern die ganzen MKD Commands. Würde ein CWD in das angegebene Verzeichnis nicht völlig ausreichen?
Ok, jetzt funktioniert es!
Der FTP user wird beim Login schon ins verzeichnis /var/www/vhosts/domain.de umgeleitet. Somit muss als Remote-Verzeichnis nur noch /httpdocs eingetragen werden.
Aber vielen Dank für die Denkansätze und somit die Lösung des Problems!