httpd編譯出錯xml
Ⅰ 求助,編譯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 獲取商業支持
Ⅱ Linux編譯安裝apache httpd2.4 make報錯
缺少pcre-8.41.tar.gz包,找一個pcre和你httpd對應得版本安裝
./configure --prefix=/usr/local/pcre
make && make install
安裝好了之後,加上參數--with-pcre=/usr/local/pcre 如下所示
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
Ⅲ red hat linux5 編譯安裝apache出錯了
./configure 後不要加參數也可以啊 默認的路徑是/usr/local/apache2 ,具體的 你可以通過./configure --help查看下,我覺得--enable-so有問題
Ⅳ LINUX下安裝LAMP,在安裝apache的時候,出錯,錯誤提示如下
建議你make clean再試試。
libtool: install: error: cannot install `libaprutil-1.la' to a directory not ending in /usr/local/apache2--sysconfdir=/etc/httpd/lib
這個錯誤--sysconfdir=/etc/httpd/lib ..實際參數是/etc/httpd
Ⅳ android編譯錯誤: styles.xml: no resource found that matches the given name 'xxx'.
item name="xxx" 其中這個xxx可不是自己隨便亂取的名字,舉個例子:<item name="android:windowNoTitle">true</item> 這個android:windowNoTitle就是表示是否顯示標題,一般都是用android自帶的,當然也可以自定義,自定義的xxx必須要用這個東西才行,LZ報的錯表示沒有這個資源,LZ再好好檢查一下吧
Ⅵ [Android] 開發報錯之string.xml編譯報錯
好久沒寫了,因為在過去的一段時間發生了很多事情悄念大,以後會在用故事寫出來。這段時間度過了一段頹廢自暴自棄的日子。經過我朋友的開導和安慰,漸漸的想明白了很多事,生活會慢慢好起來!
話不多說我們上報錯截圖:
定位到拋錯的地方我們發現原來是這邊出錯:
這其實是android開發中,在資源文件 values 文件中報特殊字元沒有被轉義的錯誤。
我們需要給它加轉義字元進行轉義(即在特殊字元前加上我們常用啟豎的反高猜斜杠 「 \ 」 )。
這樣我們就順利編譯通過。
Ⅶ 反編譯時提示如下錯誤怎麼解決
1、反編譯=回編譯後分別是
smali目錄 回編譯為 classes.dex 文件
res目錄 回編譯為 resources.arsc 文件
2、回編譯順序
在回編譯時,會先檢查「源」即resources
當你漢化文件,修改出錯了(缺少一個符號也不行),
那麼回編譯會自動跳過編譯res文件夾,直接回編譯smali 。
所以,如果沒有對smali(classes.dex)漢化,那麼建議大家刪掉這個文件夾,
這要會大大加快回編譯速度。1、反編譯=回編譯後分別是
smali目錄 回編譯為 classes.dex 文件
res目錄 回編譯為 resources.arsc 文件
2、回編譯順序
在回編譯時,會先檢查「源」即resources
當你漢化文件,修改出錯了(缺少一個符號也不行),
那麼回編譯會自動跳過編譯res文件夾,直接回編譯smali 。
所以,如果沒有對smali(classes.dex)漢化,那麼建議大家刪掉這個文件夾,
這要會大大加快回編譯速度。
3、出錯問題1
在漢化時,往往會不小心刪掉一些符號,如 "<" ">"符號等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
這些小小的錯誤都會導致回編時譯檢查出錯。
所以漢化時,注意對校,然後再回編譯。
建議使用一些高級的文本編輯器,支持語法高亮視圖的。
4、出錯問題2
最近發現有些APK文件 反編譯後,就算不漢化直接回編譯,都會出錯。
有可能的原因1,反編譯後XML文件語法中@符號 前面多了"\" (\@ ),
用文本編輯工具 直接替換【\@】為【@】,應該可以解決。
建議使用最新版本的反編譯工具。
5、建議大家使用新版本的APKTool工具,
當然如果新的有問題也可以試試舊的一、系統文件漢化再次強調
1、漢化Settings.apk(系統設置)、MMS.apk(信息)、Phone.apk(電話)、
等等系統文件,一定要先 安裝構架,具體看另個文件
<關於APKTool工具反編譯Settings.apk問題>。
2、系統文件漢化完後不需要簽名,直接替換漢化後的文件,就可以了。
主要是,系統文件放在系統目錄,無需再次讀取簽名獲得許可權,已經是高級了。
二、打包說明
1、通常漢化完回編譯後,會自動生成所有APK內的文件,或者自動生成*.APK文件。
但是建議大家不要直接使用該文件,進了使用替換法,替換掉你漢化後的文件,
如:resources.arsc,如果修改過的圖片,等等…
2、很多人對於APK文件 解壓縮或壓縮 都用「WinRAR」或「好壓」,這里不推薦。
希望大家安裝7-Zip這個壓縮工具,對於zip格式的支持是最好的。而且很方便,
不需要重新關聯apk 直接右鍵打開就行了。替換直接拖拉進去,就OK了一、回編譯出錯問題
(1.提示 strings.xml 最後一行錯誤,檢查是否</string>符號錯誤;
在漢化時,往往會不小心刪掉一些符號,如 "<" ">"符號等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
(2.提示 strings.xml 最頂部含中文代碼首行錯誤,編碼格式不對,轉換成 UTF-8;
(3.提示 public.xml 出錯,檢查改動過的 arrays.xml 是否代碼有錯誤的地方;