zqqq / phpdesktop

Automatically exported from code.google.com/p/phpdesktop
0 stars 0 forks source link

Problem with path - Error 500: Internal Server Error Cannot spawn CGI process #68

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
I'm having some problems on accounts where the windows user account name has 
spaces.

I get "Error 500: Internal Server Error Cannot spawn CGI process".

I found this link related to my problem:
https://groups.google.com/forum/#!topic/mongoose-users/TgsuZKi1sDI

Any suggestion how to fix this?

Original issue reported on code.google.com by RicardoF...@gmail.com on 24 Jan 2014 at 3:12

GoogleCodeExporter commented 9 years ago
What version of phpdesktop?

Can you paste the path that caused the problem?

The issue with spaces in path was fixed in the latest release, see the release 
notes on the wiki pages.

There is still problem with long paths causing Error 500, see Issue 63 "Very 
long path causes error when spawning CGI process".

There is also problem with special characters in path, see Issue 33 "Error when 
folder path contains special characters (ą, ć)".

Original comment by czarek.t...@gmail.com on 24 Jan 2014 at 3:19

GoogleCodeExporter commented 9 years ago
I had the same problem while developing DBMAX (that relies on mongoose as well) 
and it sorted out to be the use of the single backward slash in paths.

The same happens with PHPdesktop's config.json:

"cgi_interpreter": "rt\bin\mspserver.exe", raises the error below:

11:02:37.687 WARNING: spawn_process: CreateProcess(C:\DBDESK\rtinmspserver.exe 
C:\DBDESK\main\apps\index.msp): 123 

while

"cgi_interpreter": "rt\\bin\\mspserver.exe", 

works just fine.

Original comment by hfu...@gmail.com on 24 Jan 2014 at 8:08

GoogleCodeExporter commented 9 years ago
Thanks Gianluca for the feedback. But I don't think this is the issue here, 
because the default path in settings.json is "php/php-cgi.exe", so using 
forward slashes.

I guess the problem is either a long path or unicode characters in path. I have 
fixed long paths in Issue 63. The "cmdline" variable in mongoose.c was declared 
to be 256 characters and that was not enough.

Still there is the problem with unicode characters in path. I've debugged it 
further, fixed mongoose to accept unicode characters, but still there a fix 
needed to php-cgi.exe, because it calls zend_resolve_path(), thus it tries to 
resolve a unicode path and it fails, because php is build in ANSI mode and 
cannot support unicode paths. I will probably have to provide a custom 
"php-cgi.exe" executable with fix applied.

Original comment by czarek.t...@gmail.com on 24 Jan 2014 at 8:25

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I am using PHP Desktop Chrome 31.3 with PHP 5.4.24 minified.
The Path has something like C:\Programs\FirstName Falcão\

I think the problem was with the space or probably the "ã" in "Falcão".
I changed the installation path to the shared app data and it does not depends 
on account username anymore.

Thank you for the fast replys.

Original comment by RicardoF...@gmail.com on 24 Jan 2014 at 9:11

GoogleCodeExporter commented 9 years ago
It is sad but PHP does not support unicode paths. There is nothing that can be 
done about that. The php/ and the www/ directory cannot be in a path that 
contains unicode characters. PHP 6 was supposed to fix unicode issues, but it 
was abandoned and never released. What we only need is unicode paths support, 
not full unicode support in the language. I've been stumbled across many php 
bug reports, with demand for unicode paths support, but they are ignored. Some 
even provided patches, but these were also ignored. Some promises from php core 
developers that in next 5.6 release it would be finally fixed, but I've 
downloaded today php 5.6.0-alpha1 and the unicode path issue is still not 
fixed. 

I'm really disappointed with the state of the unicode situation in php. It is 
quite a major issue when deploying applications on a Desktop. On the 
KnowledgeBase wiki page in section "Deployment issues" I have explained that 
"Program Files" directory is not writable due to UAC security features, thus 
your application should be installed to the User local directory 
(`c:\Users\USER\AppData\Local\APPNAME`) to resolve permissions issue. But now 
with the unicode path issue, this is not a good solution. The USER directory 
may contain unicode characters. The only solution I see now is to either 
install app to the `c:\Users\Public` directory. Or install it to the Program 
Files directory while giving application administrative priveleges by embedding 
a "requireAdministrator" xml manifest into the executable.

Original comment by czarek.t...@gmail.com on 25 Jan 2014 at 1:21

GoogleCodeExporter commented 9 years ago
I have created a topic on the forum where we can discuss this issue further:
https://groups.google.com/d/topic/phpdesktop/HzDCtMMyHbo/discussion

Original comment by czarek.t...@gmail.com on 25 Jan 2014 at 1:56