Леший Posted May 4, 2010 Report Share Posted May 4, 2010 Ir viena DOS aplikācija (*.com), kura, principā, izvada vienu teksta rindu uz ekrāna. Mēģinu to palaist caur cgi-bin - izmet 500 Internal server error. errror.log > Access is denied. : couldn't create child process: 720005. Cik sapratu, iekš .htassecc ir jāierakstā AddHandler *** .com bet ko tieši ir jāierakstā? Quote Link to comment Share on other sites More sharing options...
bubu Posted May 4, 2010 Report Share Posted May 4, 2010 Gadījumā Apache nedarbini zem Windows Vista/7? Jo zem tiem 16-bitu aplikācijas palaist nevar. Vēl varētu būt tāda lieta, ka procesi, kurus laiž Apache, tiek palaisti ar tādu WinAPI funkcionalitāti, kas atļauj laist tikai 32/64-bitu softu, nevis aizvēsturisku 16-bitu. Tāpēc arī tas nepalaižās. Šim workarounds būtu uztaisīt mazu 32-bitu exe wraperīti, kas palaiž to com failu kā savu child procesu. Quote Link to comment Share on other sites More sharing options...
Леший Posted May 4, 2010 Author Report Share Posted May 4, 2010 bubu, zem winXP. Pats fails strādā, palaižot gan no cmd, gan vienkārši. Quote Link to comment Share on other sites More sharing options...
marrtins Posted May 4, 2010 Report Share Posted May 4, 2010 Man šķiet, kā jau bubu teica, ka nāksies taisīt wraperi - izsaukt to com no exe. Sen atpakaļ spēlējoties ar dažādiem cgi backendiem, atminos, ka kaut-kādi executabļi apacim nepatika (šķiet, ka vajadzēja win32 exe? Bet nu tas bija sen, un detaļas jau vairs neatminos). Vēl var paskatīties (mazums kas, varbūt tomēr?) vai tas com vispār padod Content-type: headeri un \n\n? Quote Link to comment Share on other sites More sharing options...
Леший Posted May 4, 2010 Author Report Share Posted May 4, 2010 Nu izprovēju visu, pārkompilēju source, kā win32 console application - tagad error logā ir Premature end of script headers httpd.conf: <Directory "F:/AppServ/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all Options +ExecCGI AddHandler cgi-script .exe </Directory> Pati aplikācija: entry start include 'win32a.inc' section '.data' data readable writeable hello_msg db 'Content-Type: text/html\n\n' db 0 section '.code' code readable executable start: ccall [printf],hello_msg stdcall [ExitProcess],0 section '.idata' import data readable library kernel,'kernel32.dll',\ msvcrt,'msvcrt.dll' import kernel,\ ExitProcess,'ExitProcess' import msvcrt,\ printf,'printf',\ getchar,'_fgetchar' Aplikācija strādā. Kādam ir idejas? P. S. Vēl atradu iekš error.log: PHP Warning: PHP Startup: Unable to load dynamic library 'F:/AppServ\\php5\\ext\\php_exif.dll' - The specified module could not be found.\r\n in Unknown on line 0 Tas ierakstās uzreiz pēc httpd palaišanas. Quote Link to comment Share on other sites More sharing options...
briedis Posted May 4, 2010 Report Share Posted May 4, 2010 PHP Warning: PHP Startup: Unable to load dynamic library 'F:/AppServ\\php5\\ext\\php_exif.dll' - The specified module could not be found.\r\n in Unknown on line 0 Nav konfilkts ar back-front slešiem? Quote Link to comment Share on other sites More sharing options...
Леший Posted May 4, 2010 Author Report Share Posted May 4, 2010 To koku ģenerē pats Apache, meklējot extensions. Pats extension ir ierakstīts iekš php.ini: extension=php_exif.dll Ceļš uz ext ir definēts turpat: extension_dir = "F:/AppServ\php5\ext" Samainīju pirmo slash pret \ - tāds pats error. Ar citiem extensions viss kārtībā, un fails faktiski eksistē. Quote Link to comment Share on other sites More sharing options...
marrtins Posted May 4, 2010 Report Share Posted May 4, 2010 (edited) Vai \n\n reāli pārtop par new-line? Pasties ar kādu hexview no komandrindas app.exe > log Tas php_exif.dll dikti ir vajadzīgs? Gan jau ka neatrod kādu dēli.. extension_dir = "F:\\AppServ\\php5\\ext" vai extension_dir = "F:/AppServ/php5/ext" Vēl ienāca prātā \n\n vietā pamēģini \r\n\r\n Edited May 4, 2010 by marrtins Quote Link to comment Share on other sites More sharing options...
Леший Posted May 4, 2010 Author Report Share Posted May 4, 2010 marrtins, tu tak esi ģenijs! Nez kāpēc es domāju, ka browserim pašam ir jāsaprot, ka \n ir new line, neskatījos, ka tie \n arī tiek izvadīti konsolē :) Beigu variants: hello_msg db 'Content-Type: text/html', 0x0A, 0x0A db '<h1>It workZ!</h1>' db 0 Windas kernelis tos 0x0A pats konvertē uz 0x0D, 0x0A. Rezultātā sanāk new line. Paldies! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.