亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Verzeichnis suchen
首頁(yè) 版本說(shuō)明 從1.3升級(jí)到2.0 編譯時(shí)配置的改變 運(yùn)行時(shí)配置的改變 雜項(xiàng)變化 第三方模塊 從 2.0 升級(jí)到 2.2 編譯時(shí)配置的改變 運(yùn)行時(shí)配置的改變 雜項(xiàng)變化 第三方模塊 Apache 2.1/2.2 版本的新特性 核心增強(qiáng) 模塊增強(qiáng) 程序增強(qiáng) 針對(duì)模塊開發(fā)者的變化 Apache 2.0 版本的新特性 核心的增強(qiáng) 模塊的增強(qiáng) Apache許可證 參考手冊(cè) 編譯與安裝 針對(duì)心急者的概述 要求 下載 解壓 配置源代碼樹 編譯 安裝 配置 測(cè)試 升級(jí) 啟動(dòng) Apache是怎樣啟動(dòng)的 啟動(dòng)時(shí)發(fā)生錯(cuò)誤 隨系統(tǒng)啟動(dòng)時(shí)啟動(dòng) 額外信息 停止與重新啟動(dòng) 簡(jiǎn)介 立即停止 優(yōu)雅重啟 立即重啟 優(yōu)雅停止 附錄:信號(hào)和競(jìng)爭(zhēng)條件 運(yùn)行時(shí)配置指令 主配置文件 配置文件的語(yǔ)法 模塊 指令的作用域 .htaccess文件 配置段 配置段(容器)的類型 文件系統(tǒng)和網(wǎng)絡(luò)空間 虛擬主機(jī) 代理 允許使用哪些指令? 配置段的合并 內(nèi)容緩沖 簡(jiǎn)介 緩沖概述 安全方面的考慮 文件句柄緩沖 內(nèi)存緩沖 磁盤緩沖 服務(wù)器全局配置 服務(wù)器標(biāo)識(shí) 文件定位 限制資源的使用 日志文件 安全警告 錯(cuò)誤日志 訪問(wèn)日志 日志滾動(dòng) 管道日志 虛擬主機(jī) 其他日志文件 從URL到文件系統(tǒng)的映射 相關(guān)模塊和指令 DocumentRoot DocumentRoot以外的文件 用戶目錄 URL重定向 反向代理 重寫引擎 File Not Found 安全方面的提示 保持不斷更新和升級(jí) ServerRoot目錄的權(quán)限 服務(wù)器端包含 關(guān)于CGI 未指定為腳本的CGI 指定為腳本的CGI 其他動(dòng)態(tài)內(nèi)容的來(lái)源 系統(tǒng)設(shè)置的保護(hù) 默認(rèn)配置下服務(wù)器文件的保護(hù) 觀察日志文件 動(dòng)態(tài)共享對(duì)象(DSO) 實(shí)現(xiàn) 用法概要 背景知識(shí) 優(yōu)點(diǎn)和缺點(diǎn) 內(nèi)容協(xié)商 關(guān)于內(nèi)容協(xié)商 Apache中的內(nèi)容協(xié)商 協(xié)商的方法 打亂品質(zhì)值 透明內(nèi)容協(xié)商的擴(kuò)展 超鏈和名稱轉(zhuǎn)換說(shuō)明 緩沖說(shuō)明 更多信息 自定義錯(cuò)誤響應(yīng) 行為 配置 自定義錯(cuò)誤響應(yīng)與重定向 地址和端口綁定 概述 針對(duì)IPv6的特殊考慮 怎樣與虛擬主機(jī)協(xié)同工作 多路處理模塊(MPM) 簡(jiǎn)介 選擇一個(gè)MPM 默認(rèn)的MPM 環(huán)境變量 設(shè)置環(huán)境變量 使用環(huán)境變量 用于特殊目的的環(huán)境變量 示例 處理器的使用 什么是處理器? 例子 程序員注意事項(xiàng) 過(guò)濾器 Apache2中的過(guò)濾器 智能過(guò)慮 使用過(guò)濾器 CGI腳本的Suexec執(zhí)行 開始之前 suEXEC的安全模型 配置和安裝suEXEC 啟用和禁用suEXEC 使用suEXEC 調(diào)試suEXEC 謹(jǐn)防Jabberwock:警告和舉例 性能調(diào)整 硬件和操作系統(tǒng) 運(yùn)行時(shí)的配置 編譯時(shí)的配置 附錄:蹤跡的詳細(xì)分析 URL重寫指南 mod_rewrite簡(jiǎn)介 實(shí)踐方案 URL的規(guī)劃 內(nèi)容的處理 對(duì)訪問(wèn)的限制 其他 虛擬主機(jī)文檔 總述 虛擬主機(jī)支持 配置指令 基于主機(jī)名的虛擬主機(jī) 基于域名的虛擬主機(jī)和基于IP的虛擬主機(jī)比較 使用基于域名的虛擬主機(jī) 與舊版瀏覽器的兼容性 基于IP地址的虛擬主機(jī) 系統(tǒng)需求 如何配置Apache 設(shè)置多個(gè)守護(hù)進(jìn)程 配置擁有多個(gè)虛擬主機(jī)的單一守護(hù)進(jìn)程 動(dòng)態(tài)配置大量虛擬主機(jī) 動(dòng)機(jī) 概述 簡(jiǎn)單的動(dòng)態(tài)虛擬主機(jī) 一個(gè)實(shí)際的個(gè)人主頁(yè)系統(tǒng) 在同一個(gè)服務(wù)器上架設(shè)多個(gè)主機(jī)的虛擬系統(tǒng) 更為有效的基于IP地址的虛擬主機(jī) 使用老版本的Apache 使用mod_rewrite實(shí)現(xiàn)簡(jiǎn)單的動(dòng)態(tài)虛擬主機(jī) 使用mod_rewrite的個(gè)人主頁(yè)系統(tǒng) 使用獨(dú)立的虛擬主機(jī)配置文件 虛擬主機(jī)的普通配置示例 在一個(gè)IP地址上運(yùn)行多個(gè)基于域名的web站點(diǎn) 在多于一個(gè)IP的情況下使用基于域名的虛擬主機(jī) 在不同的IP的地址(比如一個(gè)內(nèi)部和一個(gè)外部地址)上提供相同的內(nèi)容 在不同的端口上運(yùn)行不同的站點(diǎn) 建立基于IP的虛擬主機(jī) 混用基于端口和基于IP的虛擬主機(jī) 混用基于域名和基于IP的虛擬主機(jī) 將虛擬主機(jī)和代理模塊一起使用 使用默認(rèn)虛擬主機(jī) 將一個(gè)基于域名的虛擬主機(jī)移植為一個(gè)基于IP的虛擬主機(jī) 使用ServerPath指令 深入討論虛擬主機(jī)的匹配 解析配置文件 虛擬主機(jī)匹配 小技巧 文件描述符限制 關(guān)于DNS和Apache 一個(gè)簡(jiǎn)單示例 拒絕服務(wù) "主服務(wù)器"地址 避免這些問(wèn)題的小技巧 附錄:進(jìn)一步的提示 常見(jiàn)問(wèn)題 概述 SSL/TLS 加密 概述 文檔 mod_ssl 緒論 密碼技術(shù) 證書 安全套接字層(SSL) 參考 兼容性 配置指令 環(huán)境變量 自定義日志功能 如何... 加密方案和強(qiáng)制性高等級(jí)安全 客戶認(rèn)證和訪問(wèn)控制 常見(jiàn)問(wèn)題解答 About The Module Installation Configuration Certificates The SSL Protocol mod_ssl Support 如何.../指南 概述 認(rèn)證 相關(guān)模塊和指令 簡(jiǎn)介 先決條件 啟用認(rèn)證 允許多人訪問(wèn) 可能存在的問(wèn)題 其他認(rèn)證方法 更多信息 CGI動(dòng)態(tài)頁(yè)面 簡(jiǎn)介 配置Apache以允許CGI 編寫CGI程序 程序還是不能運(yùn)行! 幕后是怎樣操作的? CGI模塊/庫(kù) 更多信息 服務(wù)器端包含 簡(jiǎn)介 什么是SSI? 配置服務(wù)器以允許SSI 基本SSI指令 附加的例子 我還能設(shè)置其它什么? 執(zhí)行命令 高級(jí)SSI技術(shù) 總結(jié) .htaccess文件 .htaccess文件 工作原理和使用方法 (不)使用.htaccess文件的場(chǎng)合 指令的生效 認(rèn)證舉例 服務(wù)器端包含(SSI)舉例 CGI舉例 疑難解答 用戶網(wǎng)站目錄 用戶網(wǎng)站目錄 用UserDir設(shè)置文件路徑 限定哪些用戶可以使用此功能 啟用對(duì)每個(gè)用戶都有效的cgi目錄 允許用戶改變配置 對(duì)特定平臺(tái)的說(shuō)明 概述 Microsoft Windows 其他平臺(tái) 在Microsoft Windows中使用Apache 對(duì)操作系統(tǒng)的要求 下載 Apache for Windows 安裝 Apache for Windows 配置 Apache for Windows 以服務(wù)方式運(yùn)行 Apache for Windows 作為控制臺(tái)程序運(yùn)行Apache 測(cè)試安裝 編譯Windows下的Apache 系統(tǒng)要求 命令行編譯 Developer Studio集成開發(fā)環(huán)境的工作區(qū)編譯 項(xiàng)目組件 在Novell NetWare平臺(tái)上使用Apache Requirements Downloading Apache for NetWare Installing Apache for NetWare Running Apache for NetWare Configuring Apache for NetWare Compiling Apache for NetWare 在HP-UX中運(yùn)行Apache The Apache EBCDIC Port Overview of the Apache EBCDIC Port Design Goals Technical Solution Porting Notes Document Storage Notes Apache Modules' Status Third Party Modules' Status 服務(wù)器與支持程序 概述 httpd 語(yǔ)法 選項(xiàng) ab 語(yǔ)法 選項(xiàng) Bugs apachectl 語(yǔ)法 選項(xiàng) apxs 語(yǔ)法 選項(xiàng) 舉例 configure 語(yǔ)法 選項(xiàng) 環(huán)境變量 dbmmanage 語(yǔ)法 選項(xiàng) Bugs htcacheclean 語(yǔ)法 選項(xiàng) 返回值 htdbm 語(yǔ)法 選項(xiàng) Bugs 返回值 舉例 安全方面的考慮 限制 htdigest 語(yǔ)法 選項(xiàng) htpasswd 語(yǔ)法 選項(xiàng) 返回值 舉例 安全方面的考慮 限制 logresolve 語(yǔ)法 選項(xiàng) rotatelogs 語(yǔ)法 選項(xiàng) Portability suexec 語(yǔ)法 選項(xiàng) 其他程序 log_server_status split-logfile 雜項(xiàng)文檔 概述 相關(guān)標(biāo)準(zhǔn) HTTP推薦標(biāo)準(zhǔn) HTML推薦標(biāo)準(zhǔn) 認(rèn)證 語(yǔ)言/國(guó)家代碼 Apache 模塊 描述模塊的術(shù)語(yǔ) 說(shuō)明 狀態(tài) 源代碼文件 模塊標(biāo)識(shí)符 兼容性 描述指令的術(shù)語(yǔ) 說(shuō)明 語(yǔ)法 默認(rèn)值(Default) 作用域(Context) 覆蓋項(xiàng)(Override) 狀態(tài) 模塊(Module) 兼容性(Compatibility) Apache核心(Core)特性 AcceptFilter AcceptPathInfo AccessFileName AddDefaultCharset AddOutputFilterByType AllowEncodedSlashes AllowOverride AuthName AuthType CGIMapExtension ContentDigest DefaultType <Directory> <DirectoryMatch> DocumentRoot EnableMMAP EnableSendfile ErrorDocument ErrorLog FileETag <Files> <FilesMatch> ForceType HostnameLookups <IfDefine> <IfModule> Include KeepAlive KeepAliveTimeout <Limit> <LimitExcept> LimitInternalRecursion LimitRequestBody LimitRequestFields LimitRequestFieldSize LimitRequestLine LimitXMLRequestBody <Location> <LocationMatch> LogLevel MaxKeepAliveRequests NameVirtualHost Options Require RLimitCPU RLimitMEM RLimitNPROC Satisfy ScriptInterpreterSource ServerAdmin ServerAlias ServerName ServerPath ServerRoot ServerSignature ServerTokens SetHandler SetInputFilter SetOutputFilter TimeOut TraceEnable UseCanonicalName UseCanonicalPhysicalPort <VirtualHost> Apache MPM 公共指令 AcceptMutex CoreDumpDirectory EnableExceptionHook GracefulShutdownTimeout Group Listen ListenBackLog LockFile MaxClients MaxMemFree MaxRequestsPerChild MaxSpareThreads MinSpareThreads PidFile ReceiveBufferSize ScoreBoardFile SendBufferSize ServerLimit StartServers StartThreads ThreadLimit ThreadsPerChild ThreadStackSize User Apache MPM beos MaxRequestsPerThread CoreDumpDirectory Group Listen ListenBacklog MaxClients MaxMemFree MaxSpareThreads MinSpareThreads PidFile ReceiveBufferSize ScoreBoardFile SendBufferSize StartThreads User Apache MPM event AcceptMutex CoreDumpDirectory EnableExceptionHook Group Listen ListenBacklog LockFile MaxClients MaxMemFree MaxRequestsPerChild MaxSpareThreads MinSpareThreads PidFile ScoreBoardFile SendBufferSize ServerLimit StartServers ThreadLimit ThreadsPerChild ThreadStackSize User Apache MPM netware MaxThreads Listen ListenBacklog MaxMemFree MaxRequestsPerChild MaxSpareThreads MinSpareThreads ReceiveBufferSize SendBufferSize StartThreads ThreadStackSize Apache MPM os2 Group Listen ListenBacklog MaxRequestsPerChild MaxSpareThreads MinSpareThreads PidFile ReceiveBufferSize SendBufferSize StartServers User Apache MPM prefork 工作方式 MaxSpareServers MinSpareServers AcceptMutex CoreDumpDirectory EnableExceptionHook Group Listen ListenBacklog LockFile MaxClients MaxMemFree MaxRequestsPerChild PidFile ReceiveBufferSize ScoreBoardFile SendBufferSize ServerLimit StartServers User Apache MPM winnt Win32DisableAcceptEx CoreDumpDirectory Listen ListenBacklog MaxMemFree MaxRequestsPerChild PidFile ReceiveBufferSize ScoreBoardFile SendBufferSize ThreadLimit ThreadsPerChild ThreadStackSize Apache MPM worker 工作方式 AcceptMutex CoreDumpDirectory EnableExceptionHook Group Listen ListenBacklog LockFile MaxClients MaxMemFree MaxRequestsPerChild MaxSpareThreads MinSpareThreads PidFile ReceiveBufferSize ScoreBoardFile SendBufferSize ServerLimit StartServers ThreadLimit ThreadsPerChild ThreadStackSize User Apache Module mod_actions Action指令 Script指令 Apache Module mod_alias 處理順序 Alias AliasMatch Redirect RedirectMatch RedirectPermanent RedirectTemp ScriptAlias ScriptAliasMatch Apache Module mod_asis 用法 Apache Module mod_auth_basic AuthBasicAuthoritative AuthBasicProvider Apache Module mod_auth_digest 使用摘要認(rèn)證 配合 MS Internet Explorer 6 工作 AuthDigestAlgorithm AuthDigestDomain AuthDigestNcCheck AuthDigestNonceFormat AuthDigestNonceLifetime AuthDigestProvider AuthDigestQop AuthDigestShmemSize Apache Module mod_authn_alias 示例 <AuthnProviderAlias> Apache Module mod_authn_anon 示例 Anonymous Anonymous_LogEmail Anonymous_MustGiveEmail Anonymous_NoUserID Anonymous_VerifyEmail Apache Module mod_authn_dbd 配置示例 AuthDBDUserPWQuery AuthDBDUserRealmQuery Apache Module mod_authn_dbm AuthDBMType AuthDBMUserFile Apache Module mod_authn_default AuthDefaultAuthoritative Apache Module mod_authn_file AuthUserFile Apache Module mod_authnz_ldap Contents Operation The require Directives 舉例 Using TLS Using SSL Using Microsoft FrontPage with mod_authnz_ldap AuthLDAPBindDN AuthLDAPBindPassword AuthLDAPCharsetConfig AuthLDAPCompareDNOnServer AuthLDAPDereferenceAliases AuthLDAPGroupAttribute AuthLDAPGroupAttributeIsDN AuthLDAPRemoteUserIsDN AuthLDAPUrl AuthzLDAPAuthoritative Apache Module mod_authz_dbm AuthDBMGroupFile AuthzDBMAuthoritative AuthzDBMType Apache Module mod_authz_default AuthzDefaultAuthoritative Apache Module mod_authz_groupfile AuthGroupFile AuthzGroupFileAuthoritative Apache Module mod_authz_host Allow Deny Order Apache Module mod_authz_owner 配置示例 AuthzOwnerAuthoritative Apache Module mod_authz_user AuthzUserAuthoritative Apache Module mod_autoindex Autoindex Request Query Arguments AddAlt AddAltByEncoding AddAltByType AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon HeaderName IndexIgnore IndexOptions IndexOrderDefault IndexStyleSheet ReadmeName Apache Module mod_cache Related Modules and Directives 配置示例 CacheDefaultExpire CacheDisable CacheEnable CacheIgnoreCacheControl CacheIgnoreHeaders CacheIgnoreNoLastMod CacheLastModifiedFactor CacheMaxExpire CacheStoreNoStore CacheStorePrivate Apache Module mod_cern_meta MetaDir MetaFiles MetaSuffix Apache Module mod_cgi CGI 環(huán)境變量 CGI 腳本的調(diào)試 ScriptLog ScriptLogBuffer ScriptLogLength Apache Module mod_cgid ScriptSock ScriptLog ScriptLogBuffer ScriptLogLength Apache Module mod_charset_lite Common Problems CharsetDefault CharsetOptions CharsetSourceEnc Apache Module mod_dav Enabling WebDAV Security Issues Complex Configurations Dav DavDepthInfinity DavMinTimeout Apache Module mod_dav_fs DavLockDB Apache Module mod_dav_lock DavGenericLockDB Apache Module mod_dbd Connection Pooling Apache DBD API SQL Prepared Statements DBDExptime DBDKeep DBDMax DBDMin DBDParams DBDPersist DBDPrepareSQL DBDriver Apache Module mod_deflate 配置舉例 啟用壓縮 代理服務(wù)器 DeflateBufferSize DeflateCompressionLevel DeflateFilterNote DeflateMemLevel DeflateWindowSize Apache Module mod_dir DirectoryIndex DirectorySlash Apache Module mod_disk_cache CacheDirLength CacheDirLevels CacheMaxFileSize CacheMinFileSize CacheRoot Apache Module mod_dumpio 啟用dumpio支持 DumpIOInput DumpIOOutput Apache Module mod_echo ProtocolEcho Apache Module mod_env PassEnv SetEnv UnsetEnv Apache Module mod_example Compiling the example module Using the mod_example Module Example Apache Module mod_expires 交替間隔語(yǔ)法 ExpiresActive ExpiresByType ExpiresDefault Apache Module mod_ext_filter 舉例 ExtFilterDefine ExtFilterOptions Apache Module mod_file_cache Using mod_file_cache CacheFile MMapFile Apache Module mod_filter Smart Filtering Filter Declarations Configuring the Chain Examples Protocol Handling FilterChain FilterDeclare FilterProtocol FilterProvider FilterTrace Apache Module mod_headers 處理順序 前處理和后處理 舉例 Header RequestHeader Apache Module mod_ident IdentityCheck IdentityCheckTimeout Apache Module mod_imagemap New Features Imagemap File Example Mapfile Referencing your mapfile ImapBase ImapDefault ImapMenu Apache Module mod_include Enabling Server-Side Includes PATH_INFO with Server Side Includes Basic Elements Include Variables Variable Substitution Flow Control Elements SSIEndTag SSIErrorMsg SSIStartTag SSITimeFormat SSIUndefinedEcho XBitHack Apache Module mod_info 安全問(wèn)題 選擇哪些信息可以被顯示 已知的局限 AddModuleInfo Apache Module mod_isapi 用法 附加注釋 程序員注記 ISAPIAppendLogToErrors ISAPIAppendLogToQuery ISAPICacheFile ISAPIFakeAsync ISAPILogNotSupported ISAPIReadAheadBuffer Apache Module mod_ldap 示例配置 LDAP 連接池 LDAP 緩沖 使用SSL/TLS SSL/TLS 證書 LDAPCacheEntries LDAPCacheTTL LDAPConnectionTimeout LDAPOpCacheEntries LDAPOpCacheTTL LDAPSharedCacheFile LDAPSharedCacheSize LDAPTrustedClientCert LDAPTrustedGlobalCert LDAPTrustedMode LDAPVerifyServerCert Apache Module mod_log_config 定制日志文件格式 安全考慮 BufferedLogs CookieLog CustomLog LogFormat TransferLog Apache Module mod_log_forensic 定制日志文件格式 安全考慮 ForensicLog Apache Module mod_logio 定制日志文件格式 Apache Module mod_mem_cache MCacheMaxObjectCount MCacheMaxObjectSize MCacheMaxStreamingBuffer MCacheMinObjectSize MCacheRemovalAlgorithm MCacheSize Apache Module mod_mime 帶多擴(kuò)展名的文件 內(nèi)容編碼 字符集和語(yǔ)言 AddCharset AddEncoding AddHandler AddInputFilter AddLanguage AddOutputFilter AddType DefaultLanguage ModMimeUsePathInfo MultiviewsMatch RemoveCharset RemoveEncoding RemoveHandler RemoveInputFilter RemoveLanguage RemoveOutputFilter RemoveType TypesConfig Apache Module mod_mime_magic "Magic文件"的格式 性能問(wèn)題 注意 MimeMagicFile Apache Module mod_negotiation 類型表 MultiViews CacheNegotiatedDocs ForceLanguagePriority LanguagePriority Apache Module mod_nw_ssl NWSSLTrustedCerts NWSSLUpgradeable SecureListen Apache Module mod_proxy 正向和反向代理 簡(jiǎn)單示例 控制對(duì)代理服務(wù)器的訪問(wèn) 緩慢啟動(dòng) 局域網(wǎng)代理 協(xié)議調(diào)整 請(qǐng)求體 AllowCONNECT NoProxy <Proxy> ProxyBadHeader ProxyBlock ProxyDomain ProxyErrorOverride ProxyIOBufferSize <ProxyMatch> ProxyMaxForwards ProxyPass ProxyPassReverse ProxyPassReverseCookieDomain ProxyPassReverseCookiePath ProxyPreserveHost ProxyReceiveBufferSize ProxyRemote ProxyRemoteMatch ProxyRequests ProxyTimeout ProxyVia Apache Module mod_proxy_ajp Overview of the protocol Basic Packet Structure Request Packet Structure Response Packet Structure Apache Module mod_proxy_balancer Load balancer scheduler algorithm Request Counting Algorithm Weighted Traffic Counting Algorithm Enabling Balancer Manager Support Apache Module mod_proxy_connect Apache Module mod_proxy_ftp 為什么xxx類型的文件不能從FTP下載? 如何強(qiáng)制文件xxx使用FTP的ASCII形式下載? 我如何使用FTP上傳? 我如何能訪問(wèn)我自己home目錄以外的FTP文件? 我如何才能在瀏覽器的URL框中隱藏FTP的明文密碼? Apache Module mod_proxy_http Apache Module mod_rewrite 特殊字符的引用 環(huán)境變量 實(shí)用方案 RewriteBase RewriteCond RewriteEngine RewriteLock RewriteLog RewriteLogLevel RewriteMap RewriteOptions RewriteRule Apache Module mod_setenvif BrowserMatch BrowserMatchNoCase SetEnvIf SetEnvIfNoCase Apache Module mod_so 為Windows創(chuàng)建可加載模塊 LoadFile LoadModule Apache Module mod_speling CheckSpelling Apache Module mod_ssl 環(huán)境變量 Custom Log Formats SSLCACertificateFile SSLCACertificatePath SSLCADNRequestFile SSLCADNRequestPath SSLCARevocationFile SSLCARevocationPath SSLCertificateChainFile SSLCertificateFile SSLCertificateKeyFile SSLCipherSuite SSLCryptoDevice SSLEngine SSLHonorCipherOrder SSLMutex SSLOptions SSLPassPhraseDialog SSLProtocol SSLProxyCACertificateFile SSLProxyCACertificatePath SSLProxyCARevocationFile SSLProxyCARevocationPath SSLProxyCipherSuite SSLProxyEngine SSLProxyMachineCertificateFile SSLProxyMachineCertificatePath SSLProxyProtocol SSLProxyVerify SSLProxyVerifyDepth SSLRandomSeed SSLRequire SSLRequireSSL SSLSessionCache SSLSessionCacheTimeout SSLUserName SSLVerifyClient SSLVerifyDepth Apache Module mod_status Enabling Status Support 自動(dòng)更新 Machine Readable Status File ExtendedStatus Apache Module mod_suexec SuexecUserGroup Apache Module mod_unique_id Theory Apache Module mod_userdir UserDir Apache Module mod_usertrack Logging 2-digit or 4-digit dates for cookies? CookieDomain CookieExpires CookieName CookieStyle CookieTracking Apache Module mod_version <IfVersion> Apache Module mod_vhost_alias 目錄名稱的轉(zhuǎn)換 示例 VirtualDocumentRoot VirtualDocumentRootIP VirtualScriptAlias VirtualScriptAliasIP 開發(fā)者文檔 Overview Topics External Resources Apache API notes Basic concepts How handlers work Resource allocation and resource pools Configuration Debugging Memory Allocation in APR Available debugging options Allowable Combinations Activating Debugging Options Documenting Apache 2.0 Apache 2.0 Hook Functions Creating a hook function Hooking the hook Converting Modules from Apache 1.3 to Apache 2.0 The easier changes ... The messier changes... Request Processing in Apache 2.0 The Request Processing Cycle The Request Parsing Phase The Security Phase The Preparation Phase The Handler Phase How Filters Work in Apache 2.0 Filter Types How are filters inserted? Asis Explanations 詞匯和索引 詞匯表 模塊索引 指令索引 指令速查 譯者聲明
Figuren

服務(wù)器端包含入門

服務(wù)器端包含提供了一種對(duì)現(xiàn)有HTML文檔增加動(dòng)態(tài)內(nèi)容的方法。

簡(jiǎn)介

本文針對(duì)服務(wù)器端包含(SSI)討論如何配置服務(wù)器以允許SSI ,并介紹一些對(duì)現(xiàn)有HTML頁(yè)面增加動(dòng)態(tài)內(nèi)容的基本SSI技術(shù)。

本文后部將討論用SSI做一些稍微高級(jí)的事情,比如SSI指令中的條件語(yǔ)句。

什么是SSI ?

SSI是嵌入HTML頁(yè)面中的指令,在頁(yè)面被提供時(shí)由服務(wù)器進(jìn)行運(yùn)算,以對(duì)現(xiàn)有HTML頁(yè)面增加動(dòng)態(tài)生成的內(nèi)容,而無(wú)須通過(guò)CGI程序提供其整個(gè)頁(yè)面,或者使用其他動(dòng)態(tài)技術(shù)。

至于什么時(shí)候應(yīng)當(dāng)用SSI ,而什么時(shí)候應(yīng)當(dāng)用某些程序生成整個(gè)頁(yè)面,取決于頁(yè)面中有多少內(nèi)容是靜態(tài)的,又有多少內(nèi)容需要在每次頁(yè)面被提供時(shí)重新計(jì)算。SSI是一種增加小段動(dòng)態(tài)信息的好方法,比如當(dāng)前時(shí)間。如果你的頁(yè)面大部分內(nèi)容是在被提供時(shí)動(dòng)態(tài)生成的,那就要另找方案了。

配置服務(wù)器以允許SSI

要使服務(wù)器允許SSI ,必須在httpd.conf.htaccess文件中有如下配置:

Options +Includes

這樣就告訴服務(wù)器允許解析文件中的SSI指令。注意,在多數(shù)配置中,多個(gè)Options指令會(huì)互相覆蓋,所以可能需要對(duì)使用SSI的目錄專門使用一個(gè)Options指令,以確保其有效。

并非所有文件中的SSI指令都會(huì)被解析,必須告訴Apache應(yīng)該解析哪些文件。有兩種方法使Apache解析帶有特定后綴名的文件,比如:.shtml ,配置如下:

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

該方法的缺點(diǎn)之一是,為了使文件具有.shtml后綴從而執(zhí)行其中的指令,需要加入SSI指令的現(xiàn)有文件的名字,以及所有指向此頁(yè)面的連接。

另一種方法是,使用XBitHack指令:

XBitHack on

XBitHack告訴Apache解析所有設(shè)置了執(zhí)行位的文件中的SSI指令。這樣,無(wú)需修改文件名,只要用chmod使文件變成可執(zhí)行的,就可以對(duì)現(xiàn)有頁(yè)面增加SSI指令。

chmod +x pagename.html

這里簡(jiǎn)要說(shuō)明一點(diǎn):偶然會(huì)有人向你推薦,無(wú)須用帶.shtml的文件名,只要使Apache解析所有.html文件的SSI就可以了。那些人可能沒(méi)聽說(shuō)過(guò)XBitHack 。要知道,這樣做會(huì)使Apache在發(fā)送文件到客戶端之前通讀此文件,即使其中并沒(méi)有任何SSI指令,從而對(duì)速度有很不利的影響,所以這并不是好辦法。

當(dāng)然,在Windows上,沒(méi)有對(duì)應(yīng)的執(zhí)行位可以設(shè)置,所以對(duì)你的配置方法就有一些限制。

在默認(rèn)配置的情況下,Apache不會(huì)為SSI頁(yè)面發(fā)送最后修改日期或者內(nèi)容長(zhǎng)度的HTTP頭,因?yàn)檫@些值對(duì)動(dòng)態(tài)頁(yè)面來(lái)說(shuō)難以確定。這樣會(huì)阻止頁(yè)面被緩沖,導(dǎo)致客戶端性能有明顯的下降。有兩種解決方法:

  1. 設(shè)置 XBitHack Full ,告訴Apache在判斷最后修改日期時(shí),只查看被請(qǐng)求文件本身的日期,而忽略其中包含的其它文件的修改日期。
  2. 使用mod_expires提供的指令為文件設(shè)置一個(gè)明確的過(guò)期時(shí)間,并告訴瀏覽器和代理這個(gè)文件可以被緩沖。

基本SSI指令

SSI指令有如下語(yǔ)法:

<!--#element attribute=value attribute=value ... -->

類似于HTML注釋,即使沒(méi)有正確配置SSI ,它也不會(huì)被瀏覽器顯示,但在HTML代碼中可見(jiàn)。而若正確配置了SSI ,則指令會(huì)被其結(jié)果所取代。

其中的元素可以有許多,我們會(huì)在下一個(gè)版本的文檔中討論其中的大多數(shù),而在這里,僅舉幾個(gè)SSI的例子。

今天的日期

<!--#echo var="DATE_LOCAL" -->

echo元素用于顯示一個(gè)變量的值。標(biāo)準(zhǔn)變量有很多,其中包含對(duì)CGI程序有效的所有環(huán)境變量。并且還可以用set元素定義你自己的專用變量。

如果你不喜歡這種日期格式,可以用config元素的timefmt屬性,改變其格式。

<!--#config timefmt="%A %B %d, %Y" -->
Today is <!--#echo var="DATE_LOCAL" -->

文件的修改日期

This document last modified <!--#flastmod file="index.html" -->

這個(gè)元素使用timefmt的格式配置。

包含一個(gè)CGI程序的輸出結(jié)果

這也是SSI很常見(jiàn)的一個(gè)用途:包含一個(gè)CGI程序的輸出,比如人人喜歡的"點(diǎn)擊計(jì)數(shù)器"。

<!--#include virtual="/cgi-bin/counter.pl" -->

附加的例子

以下是一些在HTML中使用SSI的特殊例子。

文檔是什么時(shí)候被修改的?

前面我們提到過(guò)可以用SSI告訴用戶文檔是什么時(shí)候被修改的,但是具體實(shí)現(xiàn)方法卻未說(shuō)明。將以下代碼放到HTML中,會(huì)在頁(yè)面中產(chǎn)生一個(gè)時(shí)間戳,當(dāng)然,你必須首先按前面的方法啟用SSI 。

<!--#config timefmt="%A %B %d, %Y" -->
This file last modified <!--#flastmod file="ssi.shtml" -->

不用說(shuō),你應(yīng)該用你實(shí)際引用的文件名來(lái)替換ssi.shtml ,所以,如果你想簡(jiǎn)單地在所有文件中使用這段通用代碼以達(dá)到這個(gè)目的,這個(gè)方法就并不方便,就需要用到LAST_MODIFIED 變量:

<!--#config timefmt="%D" -->
This file last modified <!--#echo var="LAST_MODIFIED" -->

有關(guān)timefmt格式的細(xì)節(jié),可以到google查找strftime ,其語(yǔ)法是相同的。

包含一個(gè)標(biāo)準(zhǔn)頁(yè)腳

當(dāng)你管理一個(gè)擁有許多頁(yè)面的站點(diǎn),你會(huì)發(fā)現(xiàn)對(duì)所有頁(yè)面同時(shí)做改動(dòng)是很痛苦的,尤其是在試圖對(duì)所有頁(yè)面維持某種標(biāo)準(zhǔn)視覺(jué)效果的時(shí)候。

使用包含一個(gè)頁(yè)眉/頁(yè)腳的方法,可以減輕修改的負(fù)擔(dān)。你只要制作一個(gè)頁(yè)腳文件,并用include命令包含到每個(gè)頁(yè)面即可。include元素能按file屬性或virtual屬性判斷應(yīng)該包含的文件。file屬性是一個(gè)相對(duì)于當(dāng)前目錄的文件路徑,即不能是一個(gè)絕對(duì)路徑(以"/"開頭)或包含"../"的路徑。virtual屬性可能更有用,它是一個(gè)相對(duì)于被提供的文檔的URL ,可以以"/"開頭,但必須與被提供的文檔位于同一服務(wù)器上。

<!--#include virtual="/footer.html" -->

SSI指令和頁(yè)腳文件相結(jié)合使用是很有用的,比如在頁(yè)腳文件中使用LAST_MODIFIED指令。SSI指令可以出現(xiàn)在包含文件中,而include可以嵌套,即一個(gè)包含文件還可以再包含另外一個(gè)。

我還能設(shè)置其它什么?

config除了能設(shè)置時(shí)間格式,還有兩種用途。

當(dāng)SSI指令發(fā)生錯(cuò)誤時(shí),會(huì)產(chǎn)生如下消息:

[an error occurred while processing this directive]

為了改變消息的形式,可以使用config元素的errmsg屬性:

<!--#config errmsg="[It appears that you don't know how to use SSI]" -->

希望最終用戶永遠(yuǎn)也不會(huì)看到這個(gè)消息,因?yàn)樵诰W(wǎng)站投入運(yùn)行之前你已經(jīng)把這些問(wèn)題都解決了。是嗎?

還可以使用configsizefmt屬性設(shè)置返回的文件大小的格式,或者是以bytes為單位,或者是以Kb或Mb為單位的簡(jiǎn)寫(abbrev)。

執(zhí)行命令

我期望未來(lái)幾個(gè)月內(nèi)能再寫一篇小型的CGI程序使用SSI的文章,而這里僅介紹exec的使用。SSI確實(shí)可以利用shell(/bin/sh ,精確地說(shuō),還可以是Win32中的DOS shell)來(lái)執(zhí)行命令。下例產(chǎn)生一個(gè)目錄列表:

<pre>
<!--#exec cmd="ls" -->
</pre>

或者在Windows中:

<pre>
<!--#exec cmd="dir" -->
</pre>

你可能會(huì)發(fā)現(xiàn),在Windows中這個(gè)指令的結(jié)果有些奇怪,dir的輸出中包含有字符串"<dir>",它會(huì)使瀏覽器產(chǎn)生混淆。

注意,這個(gè)功能是極度危險(xiǎn)的,因?yàn)樗鼤?huì)執(zhí)行任何包含在exec標(biāo)記中的命令。如果用戶有可能修改你的網(wǎng)頁(yè)內(nèi)容,比如"留言本",那么你一定要關(guān)閉這個(gè)功能??梢栽?code>Options指令中加上IncludesNOEXEC參數(shù),以關(guān)閉exec功能,同時(shí)又保留SSI。

高級(jí)SSI技術(shù)

除了分離內(nèi)容,Apache SSI還有設(shè)置變量的操作,并且還可以將這些變量用在比較和條件表達(dá)式中。

警告

本文中討論的大多數(shù)功能僅在Apache1.2及更新版本中有效。如果你運(yùn)行的不是Apache1.2及更新版本,請(qǐng)立刻或者盡快升級(jí),現(xiàn)在就動(dòng)手,我們會(huì)等你弄好了再繼續(xù)往下講。

設(shè)置變量

使用set指令可以設(shè)置變量以備后用,其語(yǔ)法是:

<!--#set var="name" value="Rich" -->

除了設(shè)置字面變量以外,還可以設(shè)置其他任何變量,比如環(huán)境變量和此前提到過(guò)的一些變量(如LAST_MODIFIED),作為你的專用變量。在變量名前面綴以"$",表示它是一個(gè)變量,而不是一個(gè)字面字符串。

<!--#set var="modified" value="$LAST_MODIFIED" -->

若要在字面字符串中使用"$",必須使用轉(zhuǎn)義符號(hào)"\$":

<!--#set var="cost" value="\$100" -->

最后,如果要在較長(zhǎng)的字符串中使用變量,可以用花括號(hào)把變量名括起來(lái),以免變量名與其他字符混淆(要對(duì)這種情況舉例說(shuō)明有點(diǎn)難度,但還是希望你能領(lǐng)會(huì))。

<!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" -->

條件表達(dá)式

有了變量,就可以設(shè)置和比較它們的值以表示條件,SSI也因此成為一種簡(jiǎn)潔的編程語(yǔ)言。mod_include提供了if, elif, else, endif等結(jié)構(gòu)以構(gòu)造條件語(yǔ)句,從同一個(gè)頁(yè)面高效地產(chǎn)生多個(gè)邏輯頁(yè)面。

條件結(jié)構(gòu)如下:

<!--#if expr="test_condition" -->
<!--#elif expr="test_condition" -->
<!--#else -->
<!--#endif -->

test_condition可以是任何邏輯比較:可以是一個(gè)值和另一個(gè)值比較,也可以是測(cè)試一個(gè)特定的值是否為"真"(一個(gè)給定的字符串如果非空則為真)。完整的比較操作符列表,參見(jiàn)mod_include 。以下是可能會(huì)用到的一些例子。

在配置文件中,可以這樣設(shè)置:

BrowserMatchNoCase macintosh Mac
BrowserMatchNoCase MSIE InternetExplorer

如果客戶端在Macintosh上運(yùn)行Internet Explorer,則上例設(shè)置環(huán)境變量"Mac"和"InternetExplorer"都為真。

然后,在允許SSI的文檔中,可以這樣設(shè)置:

<!--#if expr="${Mac} && ${InternetExplorer}" -->
Apologetic text goes here
<!--#else -->
Cool JavaScript code goes here
<!--#endif -->

我一點(diǎn)也不反對(duì)在Mac上運(yùn)行IE,只是上個(gè)星期我花了好幾個(gè)小時(shí)試圖在Mac上的IE中使用JavaScript,而它在其他地方都能正常運(yùn)作,以上只是一個(gè)臨時(shí)的妥協(xié)方案。

任何其他變量(或者是你定義的,或者是標(biāo)準(zhǔn)的環(huán)境變量)都可以用于條件語(yǔ)句。利用Apache的SetEnvIf以及其他相關(guān)指令設(shè)置環(huán)境變量,此功能可以很好地實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面而無(wú)須借助于CGI。

總結(jié)

SSI固然不能替代CGI或者其他動(dòng)態(tài)頁(yè)面技術(shù),但它是在頁(yè)面中插入眾多小型的動(dòng)態(tài)片段的優(yōu)秀方法,而無(wú)須大量額外的操作。

Vorheriger Artikel: N?chster Artikel: