編譯報錯302
是因為你的類中沒有main方法,main方法是一個啟用方法,沒有的話java是無法這樣運行的
B. 在ubuntu上面編譯hello world報錯
你沒有用英文的輸入法啊,估計是用了中文輸入法吧,或者你是在windows下復制過來,或者你是從網頁上復制過來。
換英文輸入法重新寫一個試試。不要復制粘貼
C. 求助,編譯apache伺服器出問題
隨著網路技術的普及、應用和Web技術的不斷完善,Web服務已經成為互聯網上重要的服務形式之一。原有的客戶端/伺服器模式正在逐漸被瀏覽器/伺服器模式所取代。本文將重點Apache 伺服器的故障排除的技巧。
一、檢查配置文件的錯誤
Apache伺服器的設置文件位於/etc/httpd/conf/目錄下,傳統上使用三個配置文件httpd.conf,access.conf和srm.conf,來配置Apache伺服器的行為。在新版本的Apache中,所有的設置都被放在了httpd.conf中,因此只需要調整這個文件中的設置。其中99% Apache伺服器錯誤是配置文件有誤。
1 使用apachectl configtest命令
如果配置文件有錯誤,可以使用apachectl configtest命令,apachectl configtest命令可以檢查出所有語法錯誤和邏輯錯誤。
實例1
下面是一個配置文件樣例片斷:
Locatio
erver
tatu
SetHandler server
tatu
Order deny,allow
Deny from all
Allow from
192.168
149
</
Locatio
如果黑體部分的錯誤寫成了「<Location /server-status」少寫了一個 >。
apachectl configtest命令會檢查到這個問題,輸出如下:
apachectl configtest
Syntax error on line
918
of
etc
httpd
conf
httpd.conf:
Locatio
directive missing closing
2 使用服務管理工具
如果配置文件有錯誤,也可以使用GUI工具來查看。下面是實例1在GUI工具「服務配置「中的體現,如圖1 。
圖1 使用GUI工具檢查錯誤
二、 學會使用錯誤日誌 錯誤日誌是最重要的日誌文件,其文件名和位置取決於ErrorLog指令。Apache httpd將在這個文件中存放診斷信息和處理請求中出現的錯誤,由於這里經常包含了出錯細節以及如何解決,如果伺服器啟動或運行中有問題,首先就應該查看這個錯誤日誌。錯誤日誌是你的朋友。任何錯誤都會在錯誤日誌中有所記載,所以你應該首先查看它。如果你的網站空間提供者不允許訪問錯誤日誌,那麼你應該考慮換一個空間提供者。學會閱讀錯誤日誌,可以快速找出問題並快速解決。 1 錯誤日誌格式 Apache 默認的錯誤日誌配置如下: ErrorLog logs/error_log LogLevel warn 配置錯誤日誌相對簡單,只要說明日誌文件的存放路徑和日誌記錄等級即可。格式為: 日期和時間 錯誤等級 錯誤消息 2 日誌記錄等級 下面著重說說日誌記錄等級,包括八個級別。 1 級英文名稱emerg ,出現緊急情況使得該系統不可用,如系統宕機等 2 級alert 英文名稱,需要立即引起注意的情況 3 級 英文名稱crit ,危險情況的警告 4級 英文名稱error ,除了emerg 、alert、crit 的其他錯誤 5級英文名稱 warn。 警告信息 6級英文名稱 notice ,需要引起注意的情況,但不如error、warn 重要 7級英文名稱 info ,值得報告的一般消息 8級英文名稱 debug, 由運行於debug 模式的程序所產生的消息 錯誤日誌文件舉例 錯誤日誌的格式相對靈活,並可以附加文字描述。某些信息會出現在絕大多數記錄中,一個典型的例子是: [Wed Oct 11 14:32:52 2007] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test 其中,第一項是錯誤發生的日期和時間;第二項是錯誤的嚴重性,LogLevel指令使只有高於指定嚴重性級別的錯誤才會被記錄;第三項是導致錯誤的IP地址;此後是信息本身,在此例中,伺服器拒絕了這個客戶的訪問。伺服器在記錄被訪問文件時,用的是文件系統路徑,而不是Web路徑。錯誤日誌中會包含類似上述例子的多種類型的信息。此外,CGI腳本中任何輸出到stderr的信息會作為調試信息原封不動地記錄到錯誤日誌中。用戶可以增加或刪除錯誤日誌的項。但是對某些特殊請求,在訪問日誌(access log)中也會有相應的記錄,比如上述例子在訪問日誌中也會有相應的記錄,其狀態碼是403,因為訪問日誌也可以定製,所以可以從訪問日誌中得到錯誤事件的更多信息。 了解錯誤代碼和錯誤提示 l 常用的錯誤響應代碼如下: 301 :告知用戶請求的URL 已經永久的移動到新的URL,用戶可以記住新的URL,以便日後直接使用新的URL 進行訪問。 302 :告知用戶請求的URL 臨時的移動到新的URL,用戶無需記住新的URL,如果省略錯誤響應代碼,默認就是此值。 303 :告知用戶頁面已經被替換,用戶應該記住新的URL。 401 :授權失敗,即密碼錯誤。 403 :Access denied 存取錯誤,即不可以讀取該文件。 404 :File not found 找不到文件。 410 :告知用戶請求的頁面已經不再存在,使用此代碼時不應該使用重定向的URL 參數。 500 :伺服器內部錯誤,可能是Web伺服器本身存在問題,也可能是編寫的程序出錯。 l 錯誤消息提示說明 「Invalid argument: core_output_filter: writing data to the network」 消息 Apache在可能的平台上使用系統調用sendfile來加速響應的發送。不幸的是,在某些系統上,Apache會在編譯時檢測sendfile的存在,即使它不能正常工作。這經常發生在使用網路或其他非標准文件系統時。這個問題的表現症狀包括上述信息出現在錯誤日誌里及對於非零長度文件請求發送零長度的響應。一般這個問題只發生在靜態文件上,因為動態文件通常用不到sendfile 。要修正這個問題,可用EnableSendfile指令關閉伺服器所有部分對sendfile的使用即可。同時參看EnableMMAP指令,對相似的問題有幫助。 「Premature end of script headers」 消息 大多數導致這個錯誤的CGI腳本問題將會向瀏覽器發送一個"Internal Server Error"錯誤信息。 「Permission denied」 消息 error_log中的"Permission denied"錯誤伴隨一個發送到客戶端的"Forbidden"信息通常表明違反了文件系統的許可權,而不是Apache HTTP的配置文件出了錯誤。檢查並確認用於運行子進程的User和Group有訪問導致問題的文件的足夠許可權。同時檢查一下導致問題的文件所在的目錄及其所有父目錄是否具有執行(搜索)許可權(也就是 chmod +x)。最近發行的 Fedora Core 和其它Linux發行版使用了SELinux進行額外的訪問控制,違反這些限制也會導致"Permission denied"消息。 "POST Method Not Allowed"消息 這說明Apache沒有被正確配置以執行CGI程序,重新閱讀配置Apache看看遺漏了什麼。 "Internal Server Error"消息 查閱Apache錯誤日誌,可以找到CGI程序產生的出錯消息"Premature end of script headers"。對此,需要檢查下列各項,以找出不能產生正確HTTP頭的原因。
1 檢查錯誤日誌!
Apache伺服器在遇到問題時會盡力做到對你有所幫助。在許多情況下,它會通過在錯誤日誌中寫入一條或多條消息來提供一些細節。有時這已經足夠讓你自己診斷和解決問題了(比如文件許可權或類似的問題)。錯誤日誌的默認位置在/usr/local/apache2/logs/error_log ,但是最後還是看看配置文件中的ErrorLog指令以確認錯誤日誌在你伺服器上的確切位置。
2 再一次檢查語法
Apache 配置文件是httpd.conf 長度通常在80-990行,幾乎99%Apache 故障是語法錯誤引起的。可以手工檢查/etc/httpd/conf/httpd.conf,也可以通過瀏覽器輸入:
http://192.168.1.12/server-info?config
獲取當前配置文件,如圖3 。
圖3 當前Apache伺服器配置文件
說明:此時系統會自動添加行號。
3 察看Apache的FAQ!
最新版本的Apache常見問題列表總是可以從Apache主站點得到,
4 察看Apache bug資料庫
大多數報告給Apache項目組的問題都記錄在bug資料庫中。在你添加一個新bug之前,請務必檢查已有的報告(打開的和關閉的)。如果你發現你的問題已經被報告了,請不要添加一個"我也是"那樣的報告。如果原始報告還沒有關閉,我們建議你經常周期性地來看看它。你也可以考慮與最初的提交者接觸,因為有可能會在郵件交流中發現沒有記錄在資料庫中的問題。
5 在某個用戶論壇中提問
Apache擁有一個活躍的、願意共享知識的用戶社區。參與這個社區通常是獲得解答的最快最好的辦法。
Apache用戶郵件列表:
6 提交問題報告到bug資料庫
如果做了以上幾個合適的步驟而沒有得到解答,那麼請務必讓httpd的開發者了解這個問題,到這里(
)提交bug報告。
7 獲取商業支持
