請教一個cgi_header: unable to find LFLF問題

火星人 @ 2014-03-04 , reply:0
←手機掃碼閱讀

請教一個cgi_header: unable to find LFLF問題

我在三星的S3C2410上移植了boa web server,我用c編了一個cgi程序,在調試的時候,伺服器端經常出現「cgi_header: unable to find LFLF」錯誤,一查cgi_header函數,應該是因為沒有輸出MIME頭給web server時才會出現這種問題,可是我在cgi程序的開頭輸出了這樣的語句了「printf("Contenttype:text/plain\n\n")」我改成「printf("Contenttype:text/plain\r\n\r\n")」也不行,我再檢查一下cgi程序,程序也有執行許可權,不知道還會是什麼問題導致無法正常執行cgi程序。
特此發帖請問一下各位大蝦是什麼原因,有哪位大蝦能系統的總結一下,不勝感謝!
《解決方案》

瀏覽器顯示的錯誤

瀏覽器顯示的錯誤是
502 Bad Gateway
The CGI was not CGI/1.1 compliant.
《解決方案》

"Contenttype:text/plain\r\n\r\n"

書寫錯誤, 寫成: Content-type:text/html\n\n
這個是必須的
《解決方案》

我改了也不行
按理說text/plain 也是可以的阿,它是直接在瀏覽器上輸出文本,只不過不是html格式輸出而已
《解決方案》

我發現如果用SHELL腳本輸出MIME頭就可以了,為啥用C編的cgi,輸出的MIME頭就不管用呢,不知道有沒有同胞碰到我這種類似的問題
《解決方案》

我也遇到同樣的問題

我也是用的S3C2410的板子,同樣是BOA伺服器,CGI程序中有printf("Content-type: text/html\n\n"),但是仍然是輸出 cgi_header: unable to find LFLF
,相當的鬱悶,不知道你怎麼解決的,希望你能看到並回復我,我實在不知道怎麼辦了:em16:
《解決方案》

我用的是s3c4510b的板子,boa版本是0.94.13,在跑cgi的時候也碰到相同的問題,不過原因是出在req->post_data_fd上,在cgi.c的ini_cgi()中,在進行fork()之後,父行程會將req->post_data_fd關閉必設為零,在別的系統中這不會影響到子行程,不過不知道為什麼在uclinux下就會出問題,你試試把
      if (req->method == M_POST) {
            close(req->post_data_fd); /* child closed it too */
            req->post_data_fd = 0;
        }
裡的req->post_data_fd = 0;註解掉看看
《解決方案》

這個問題最後是怎麼解決的?有達人解決了指教以下,謝謝
《解決方案》

更改一下.cg文件的屬性 chmod 777 name.cgi 試試
《解決方案》

本帖最後由 daniel_kohler 於 2011-03-02 13:19 編輯

回復 1# rolflau

    先看看你的mime的配置文件裡面有沒有text/plain,
    printf("Content-type: text/html\n\n");
    printf("\r\n");




[火星人 via ] 請教一個cgi_header: unable to find LFLF問題已經有437次圍觀

http://www.coctec.com/docs/service/show-post-14465.html