![[好文]mod_php和mod_fastcgi和php-fpm的介紹,對比,和性能數(shù)據(jù).doc_第1頁](http://file.renrendoc.com/FileRoot1/2020-1/3/00d830df-bdb8-45aa-9c48-66ee7de21ddf/00d830df-bdb8-45aa-9c48-66ee7de21ddf1.gif)
![[好文]mod_php和mod_fastcgi和php-fpm的介紹,對比,和性能數(shù)據(jù).doc_第2頁](http://file.renrendoc.com/FileRoot1/2020-1/3/00d830df-bdb8-45aa-9c48-66ee7de21ddf/00d830df-bdb8-45aa-9c48-66ee7de21ddf2.gif)
![[好文]mod_php和mod_fastcgi和php-fpm的介紹,對比,和性能數(shù)據(jù).doc_第3頁](http://file.renrendoc.com/FileRoot1/2020-1/3/00d830df-bdb8-45aa-9c48-66ee7de21ddf/00d830df-bdb8-45aa-9c48-66ee7de21ddf3.gif)
![[好文]mod_php和mod_fastcgi和php-fpm的介紹,對比,和性能數(shù)據(jù).doc_第4頁](http://file.renrendoc.com/FileRoot1/2020-1/3/00d830df-bdb8-45aa-9c48-66ee7de21ddf/00d830df-bdb8-45aa-9c48-66ee7de21ddf4.gif)
![[好文]mod_php和mod_fastcgi和php-fpm的介紹,對比,和性能數(shù)據(jù).doc_第5頁](http://file.renrendoc.com/FileRoot1/2020-1/3/00d830df-bdb8-45aa-9c48-66ee7de21ddf/00d830df-bdb8-45aa-9c48-66ee7de21ddf5.gif)
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
mod php VS mod fastcgi 目錄目錄 什么是 MOD PHP 和 MOD FASTCGI 1 工作原理 1 MOD PHP 2 MOD FASTCGI 3 MOD FACTCGI 的三種配置方式 4 靜態(tài)配置 5 動態(tài)配置 5 遠程方式 6 PHP FPM 6 性能測試 8 名稱解釋 8 測試內(nèi)容 8 測試結(jié)果 8 FASTCGI 配置項對性能的影響 11 分析 結(jié)論 13 附錄 14 APACHE MOD FASTCGI PHP 搭建 14 什么是什么是 mod php 和和 mod fastcgi 在 lamp 體系中 對于 apache 端 php 的配置 我們最常用的就是 mod php 它把 PHP 做為 APACHE 一個內(nèi)置模塊 讓 apache http 服務(wù)器本身能夠支持 PHP 語言 不需要每一個請求就啟動 PHP 解釋器來解釋 PHP 和把 webserver 與 php 綁定起來的方式不同 fastcgi 是 HTTP 服務(wù)器與你 的或其它機器上的程序進行 交談 的一種工具 相當(dāng)于一個程序接口 它可 以接受來自 web 服務(wù)器的請求 解釋輸入信息 將處理后的結(jié)果返回給服務(wù)器 apache lighty 等 mod fastcgi 就是在 apache 下支持 fastcgi 協(xié)議的模塊 工作原理工作原理 在介紹這兩種模式的工作原理前 我們先了解一下 php 的架構(gòu) 圖 1 php 架構(gòu)圖 上面是 php 的架構(gòu)圖 從圖上可以看到 SAPI 提供了一個和外部通信的接 口 使得 PHP 可以和其他應(yīng)用進行交互數(shù)據(jù) php 默認提供了很多種 SAPI 常 見的給 apache 的 mod php5 CGI 給 IIS 的 ISAPI 還有 Shell 的 CLI 對于 一個基于 apache 的 php 應(yīng)用 其運行流程可以簡單歸結(jié)如下 apacheapache httpdhttpd mod phpfastcgimod phpfastcgi sapisapi phpphp 我們下面提到的兩種工作方式就分別用到了 mod php5 和 cgi 的 sapi mod php mod php 是在 lamp 體系中最常使用的工作方式 在這種模式下 php 被編 譯為 apache 的一個內(nèi)置模塊 在啟動時加載 當(dāng)有一個 php 請求過來時 直接 在 httpd 進程里完成 php 的解釋運行 將結(jié)果返回 在 php 的 sapi 中 有這樣一個函數(shù) sapi cgibin ub write 這個函數(shù)告 訴了 Zend 如何輸出數(shù)據(jù) 查看 mod php 的 sapi 源碼 我們會發(fā)現(xiàn) 這個函 數(shù)直接調(diào)用了 apache 的 ap rwrite 函數(shù) 所以 用 mod php 我們可以把 php 和 apache 看做一個模塊 兩者綁定在一起 其工作原理如下圖所示 圖 2 mod php 工作原理 mod fastcgi 在說明 fastcgi 之前 先了解一下普通 cgi 的工作流程 web server 收到用戶請求 并把請求提交給 cgi 程序 cgi 程序根據(jù)請求 提交的參數(shù)作應(yīng)處理 然后輸出標準的 html 語句返回給 web server web server 再返回給客戶端 這就是普通 cgi 的工作原理 fastcgi 是基于 cgi 架構(gòu)的擴展 他的核心思想就是在 web server 和具體 cgi 程序之間建立一個智能的可持續(xù)的中間層 統(tǒng)管 cgi 程序的運行 這樣 web server 只需要將請求提交給這個層 這個層再派生出幾個可復(fù)用的 cgi 程序?qū)?例 然后再把請求分發(fā)給這些實例 這些實例是可控的 可持續(xù) 可復(fù)用的 因此一方面避免了進程反復(fù) fork 另一方面又可以通過中間層的控制和探測機 制來監(jiān)視這些實例的運行情況 根據(jù)不同的狀況 fork 或者回收實例 達到靈活 性和穩(wěn)定性兼得的目的 modFastCGI 的主要優(yōu)點是把動態(tài)語言和 web server 分離開來 這種技術(shù)允許把 web server 和動態(tài)語言運行在不同的主機上 以大 規(guī)模擴展和改進安全性而不損失生產(chǎn)效率 基于 mod fastcgi 方式的 php 應(yīng)用 其典型工作流程如下 圖 3 mod fastcgi 工作原理 從圖上可以看出 apache 啟動后 mod fastcgi 會在啟動多個 cgi 程序 也就是 php cgi 腳本 具體腳本的數(shù)目通過配置來指定 當(dāng)有 http 請求到來后 httpd 進程會選擇一個當(dāng)前空閑的一個 php cgi 程序來執(zhí)行 執(zhí)行的方式和 mod php 類似 也是通過 php cgi 提供的 sapi 完成交互 查看源碼 可以發(fā)現(xiàn) 對于 cgi 的 sapi 和 mod php 不同 它是把結(jié)果輸出到 fastcgi 提供的 stdout 上 fastcgi 再將數(shù)據(jù)返回給 httpd 完成交互 mod factcgi 的三種配置方式的三種配置方式 基于 mod fastcgi 的 fastcgi 應(yīng)用一共有三種配置方式 靜態(tài) 動態(tài)和遠 程 他們通過 apache 配置中的偽指令來代替 對應(yīng)于三種方式的偽指令分別是 FastCgiServer FastCgiConfig 以及 FastCgiExternalServer 對于靜態(tài)和動態(tài)這兩種方式 apache 將通過 mod fastcgi 自帶的進程管理 工具 fcgi pm 來管理 fastcgi 應(yīng)用程序 也就是 php cgi fcgi pm 在 apache 啟動時就被自動激活了 相對于前兩種 遠程模式下 php cgi 不由 fcgi pm 來管理 apache 不會去關(guān)心 php cgi 程序的狀態(tài) 下面詳細說一下三種配置方式 靜態(tài)配置靜態(tài)配置 通過 FastCGIServer 偽指令將文件名定義為靜態(tài) FastCGI 應(yīng)用程序 初始 時需要指定啟動的 php cgi 進程數(shù)目 默認為 1 個 apache 運行過程中 如果 靜態(tài)應(yīng)用程序?qū)嵗驗槿魏卧蛩懒?那么 fcgi pm 將衍生另一個實例來替換 語法 FastCgiServer file name options 重要參數(shù)說明 idle timeoutidle timeout n n 30 秒 在請求異常終止和事件記錄在 error LogLevel 前 所允許的 FastCGI 應(yīng)用程序不活動秒數(shù) 僅當(dāng)存在與 FastCGI 應(yīng)用程序 的暫掛連接時 該不活動計時器才應(yīng)用 如果應(yīng)用程序在此期間不響應(yīng)隊列的 請求 那么請求異常終止 如果與應(yīng)用程序的通信完成 但是與客戶機的通信 未完成 緩存的響應(yīng) 那么超時不應(yīng)用 processesprocesses n n 1 在服務(wù)器初始化時衍生的應(yīng)用程序?qū)嵗龜?shù) portport n n 無 應(yīng)用程序用于與 Web 服務(wù)器通信的 TCP 端口號 1 65535 此選項使應(yīng)用程序可以從網(wǎng)絡(luò)中的其他機器訪問 socket 選項和 port 選項 是互斥的 socketsocket filename unix sock 文件名 Restart delayRestart delay n 5 秒 此應(yīng)用程序的失敗實例重新衍生之間的最小秒 數(shù) 此延遲阻止中斷的應(yīng)用程序使用過多系統(tǒng)資源 動態(tài)配置動態(tài)配置 在靜態(tài)配置中 我們初始就指定了要啟動的 php 進程數(shù) 和靜態(tài)的相反 動態(tài)應(yīng)用程序根據(jù)需求啟動 php 應(yīng)用實例的數(shù)目根據(jù)當(dāng)前 http 請求數(shù)目動態(tài) 變化 進程的管理也是通過 fcgi pm 來完成 語法 FastCgiConfig option option 重要參數(shù)說明 和靜態(tài)方式相比 動態(tài)配置的參數(shù)主要增加了以下幾個 maxProcessesmaxProcesses n n 在任何時候允許運行的最大動態(tài) FastCGI 應(yīng)用程序?qū)嵗?數(shù) minProcessesminProcesses n n 任何時候允許運行 且無須由 fcgi pm 因沒有需求 殺 死的最小動態(tài) FastCGI 應(yīng)用程序?qū)嵗龜?shù) 在 dyn 模式下 因為 fastcgi 實例數(shù)目是動態(tài)改變的 所以沒有靜態(tài)方式 中 process 這個參數(shù) 遠程方式遠程方式 這種模式下 fastcgi 實例和 apache 分離開來 這兩者可以分開來部署 他們之間的通信通過 tcp 或者 unix sock 來完成 使用 ext 方式 fastcgi 實 例將不會由 fcgi pm 來管理 而是獨立的運行 語法 FastCgiExternalServer 文件名 host 主機名端口 appConnTimeout n FastCgiExternalServer 文件名 socket 文件名 appConnTimeout n 重要參數(shù)說明 idle timeoutidle timeout n n 30 秒 在請求異常終止 并且事件記錄之前 允許 FastCGI 應(yīng)用程序保持不活動的秒數(shù) 只有當(dāng)與 FastCGI 應(yīng)用程序的連接暫掛 時 此不活動定時器才適用 如果請求進入應(yīng)用程序的請求隊列 而此應(yīng)用程 序在此期間沒有響應(yīng) 通過寫和刷新 則此請求將異常終止 如果與應(yīng)用程序 的通信已完成 而與客戶機的通信尚未完成 響應(yīng)被高速緩存 則此超時不適 用 hosthost host porthost port 應(yīng)用程序用于與 Web 服務(wù)器通信的主機名或 IP 地址和 TCP 端口號 1 65535 socket 和 host 選項是互斥的 socketsocket 文件名 無 應(yīng)用程序用于與 Web 服務(wù)器通信的 UNIX 域套接字的文件名 此文件名相 對于 FastCgiIpcDir socket 和 port 選項是互斥的 php fpm 使用 FastCGI 最主要優(yōu)點是把應(yīng)用和 web server apache 分離開來 這 樣允許把 web server 和動態(tài)語言 php 運行在不同的主機上 以大規(guī)模擴展和 改進安全性而不損失效率 這樣的情況下 對于 php cgi 程序 由于從 apache 中分離出來 就需要一 個單獨的工具來對這些進程進行管理 在 stc 和 dyn 兩種模式下 mod fastcgi 中自帶的 fcgi pm 會充當(dāng)了這樣的角色 可是 ext 模式下卻沒有 我們只能 通過一個腳本靜態(tài)的啟動 n 個實例 一旦進程死掉 還需要手工重啟 當(dāng)然 你可以使用 supervise 來管理這些進程 但是畢竟不那么靈活而且也僅僅一部 份問題 甚至于 fcgi pm 因為實現(xiàn)的原因 其本身也有很多問題 例如不太 穩(wěn)定 壓力下出 core 無法平滑的完成切換等 基于上述的原因 我們需要一個穩(wěn)定可靠的進程管理工具 就像 lighty 下的 spwn cgi 幸運的是 出現(xiàn)了 php fpm 它是一個類似于 spwn cgi 的管理 工具 可以和任何支持遠端 FastCGI 的 web server 工作 在官方的手冊上 列 舉了以下 php fpm 所具有的特性 特性Php 自帶的Spwn cgiPhp fpm php 守護程序 pid file log file setsid setuid setgid chroot 進程控制 可以平滑 地重啟 重新載入配 置和二進制模塊而不 丟失請求 Php4 Php5 只能平滑停止 限制 ip 地址 可以滿 足 web server 的要求 php4 php5 2 2 如果使用優(yōu)化器 在 遇到 opcode 緩存隨機 損壞的時候緊急重啟 所有進程 使用用不同的 uid gid chroot 環(huán)境變 量 不同的 php ini 選項 不需要 safe mode 記錄 work process 的 stdout 和 stderr 如果 set time limit 沒 有起作用 強制結(jié)束 過期進程 特色功能 Error header 優(yōu)化的上傳支持 fastcgi finish request 另外 php fpm 還可以兼容 zend Optimize 各種緩存優(yōu)化器 Php fpm 的安裝的安裝 Php fpm 是以 patch 的方式安裝的 如果要使用它 你必須在安裝 php 前打上 這個補丁 eg gzip cd php 5 2 6 fpm 0 5 9 diff gz patch d php 5 2 6 p1 在 configure 時加上 enable fpm 選項 安裝完 php 后 會有以下幾個文件 prefix ext php fpm conf prefix log php fpm log prefix log php fpm pid 其中 php fpm conf 是配置文件 具體如何配置文件里有非常詳盡的注釋 最后 執(zhí)行 bin php cgi fpm 就可以了 另外 你也可以使用 prexif sbin php fpm 腳本來方便的維護 性能測試性能測試 名稱解釋名稱解釋 ab apache 自測的性能測試工具 主要用于測試極限壓力 對于同一 url 每秒所能 執(zhí)行的次數(shù)及響應(yīng)時間 myab baidu 開發(fā)的壓力測試工具 區(qū)別于 ab 其更主要的功能是測試指定壓力條件 下機器的負載情況 eacc 一種 php 加速器 主要是將 php 程序編譯后的結(jié)果緩存起來 加速 php 的執(zhí)行 對性能有很大幅度的提升 更詳細的情況可以參見另一篇關(guān)于 php 緩存優(yōu)化的 文檔 緩存優(yōu)化工具 php 加速的利器 etc stc dyn mod fastcgi 運行的模式 分別指遠程 靜態(tài)和動態(tài)模式 測試內(nèi)容測試內(nèi)容 測試中我們將針對不同的運行模式和頁面類型進行極限壓力測試及機器負載測 試 同時 我們還將測試使用緩存優(yōu)化和不使用緩存優(yōu)化下機器的表現(xiàn)情況 另外 由于我們的測試主要是對比兩種模式的性能差別 因此對于機器的硬件 配置不是特別敏感 測試的時候只需要保證機器負載為 0 即可 測試結(jié)果測試結(jié)果 最簡單的 php 頁面 壓力工具 mysql 壓力情況 每秒 1000 次請求 并發(fā)數(shù) 70 性能指標 cpu idle 不同模式下機器 idle 情況如下圖 圖 4 最簡單 php 頁面 1000 s 請求 idle 情況 從圖上我們可以看出 測試最簡單的 php 頁面時 各種模式下性能幾乎沒 有差別 且由于頁面非常簡單 eacc 的效果也基本沒有 復(fù)雜的 php 程序 2000 行代碼 壓力工具 mysql 壓力情況 每秒 400 次請求 并發(fā)數(shù) 70 性能指標 cpu idle 測試結(jié)果如下圖 圖 5 復(fù)雜的 php 代碼 400 s 壓力 idle 情況 從圖上可以看出 在 php 代碼復(fù)雜的情況下 前面 4 中模式性能差別不大 mod php 略優(yōu) 然后 fastcgi 動態(tài)配置的方式在此情況下性能差距非常之大 idle 直接降為 0 同時雖然每秒是 400 次的壓力 其只能處理 200 次左右的請求 由于 php 代碼很復(fù)雜 eacc 的作用明顯體現(xiàn)出來 使用緩存優(yōu)化后性能提升一 倍以上 另外 還可以看出 eacc 這樣的緩存優(yōu)化工具對于 mod php 和 fastcgi 方式 起到的作用基本相同 他們之間的性能差異和使用前維持相同 在上述情況下 如果不適應(yīng) fpm fastcgi 模式會出 core 主要原因還在在于 進程管理的問題 實際項目中的 php 程序 這里我們采用群組項目中的 pb 頁面 涉及到和數(shù)據(jù)庫交互 db 交互 2 次 db 部署在其他機器 每次請求耗時 50ms 左右 壓力工具 mysql 壓力情況 每秒 400 次請求 并發(fā)數(shù) 70 性能指標 cpu idle 測試結(jié)果如下 圖 6 實際的 php 頁面 400 s 壓力 idle 情況 從圖上可以看出 性能的情況和圖 2 類似 各種模式的差距仍然不大 極限壓力測試 壓力工具 ab 測試參數(shù) 并發(fā)請求數(shù) 100 總次數(shù) 10000 次 測試頁面 pb 頁面 性能指標 每秒請求數(shù) rps 圖 7 極限壓力測試 pb 頁面 從上圖我們可以看到 極限壓力下 使用 eacc 后 mod php 和 ext fpm 基 本差不多 保持在 860 s 左右的水平 而使用 fpm 方式進行管理的模式略優(yōu)于 其他兩種 fastcgi 模式 測試中發(fā)現(xiàn) fastcgi 模式下 不使用 php fpm 管理的話 仍然會有 core 出 現(xiàn) fastcgi 配置項對性能的影響 配置項對性能的影響 在 mod fastcgi 下 不管是 ext 還是 stc 方式 有一個配置項是非常關(guān)鍵的 默認啟動 的 php cgi 進程實例數(shù) 從 fastcgi 原理可以看出 當(dāng)有一個 httpd 進程到來時 它需要調(diào)用 fastcgi server 來執(zhí) 行 如果此時所有 server 都出于服務(wù)狀態(tài) 則這個 httpd 進程將出于等待狀態(tài)得不到服務(wù) 導(dǎo)致請求無法響應(yīng) 對 pb 頁面進行測試 配置不同的實例數(shù)目進行極限壓力測試 得到結(jié)果如下 圖 8 fastcgi 實例數(shù)對性能的影響 分析一下這個原因 我們的 pb 頁面執(zhí)行時間是 50ms 也就是說一個 php cgi 程序在 1s 內(nèi)可以 處理的請求數(shù)目是 1000 50 20 假設(shè)啟動的實例數(shù)目是 n 則 1s 內(nèi)最多能完 成的請求數(shù)為 n 20 從圖上可以看出 實際結(jié)果符合我們的計算 另外 這個 數(shù)值也不是無限增大了 當(dāng) n 20 大于 server 本身所能承受的極限時 rps 也 不會繼續(xù)往上增長了 所以 使用 fastcgi 對于 n 的選擇 要綜合頁面平均處理時間 最大壓力 等多種因素結(jié)合來配置 同時 在 ext 方式下 webserver 和 fastcgi server 交互的方式有兩種 通過 tcp 或者 unix sock 測試一下這兩種方式的情況 使用 myab 每秒 400 次請求 pb 頁面 機器 idle 圖 9 ext 下 unix sock 和 tcp 的區(qū)別 從圖上可以看出 不管是否使用 eacc tcp 方式的 idle 都有一個百分點的 下降 這個差異主要是因為多了 tcp 連接過程造成的 分析分析 結(jié)論結(jié)論 根據(jù)各種測試結(jié)果 可以看出和 fastcgi 方式相比 mod php 的性能在各種 情況下都稍優(yōu) 這種差異主要是在于后一種方式增加了一次數(shù)據(jù)交互過程 php fascgi apache 但是這個差距并不大 在使用了 eacc 等緩存優(yōu)化工具后 性 能有了很大提升 他們之間的差距完全不是瓶頸 從使用的角度來說 fastcgi 具有以下優(yōu)點 1 webserver 和 php 程序分離 兩者可以部署在不同的地方 通過 socket 方式 通信帶來一定安全性 2 使用 fastcgi 在出現(xiàn)問題時可以更好的定位是 webserver 還是 php 的原因 3 fastcgi 方式不依賴于 webserver 更加靈活 擴展性也更好 4 fastcgi 本身會有一些進程監(jiān)控和日志記錄 更便于分析問題 跟蹤狀態(tài) 5 靈活多樣的配置 可以根據(jù)實際的應(yīng)用進行合理配置達到最佳效果 當(dāng)然 fastcgi 也有一些缺點 1 mod fastcgi 在進程管理上有一些問題 容易出 core 這個問題通過使用 php fpm 可以解決 2 由于 fastcgi 應(yīng)用單獨分離出來 因此需要單獨監(jiān)控進程的狀態(tài) 防止進程 掛掉后導(dǎo)致服務(wù)出現(xiàn)問題 這個可以通過使用用 supervise 管理一定程度上 避免這個問題 3 文檔相對缺乏 mod fastcgi 對 apache 的支持也不是特別好 且基本沒有升 級 關(guān)于 fastcgi 運行方式的選擇 從效率 穩(wěn)定性等各方面來說 ext 方式是最 佳選擇了 而且考慮到我們可能會將 webserver 和 php 分開到不同機器 選擇 遠程方式也是必須的 進程管理工具 從各方面來說 php fpm 是最優(yōu)選擇了 即時使用 lighty 作 用 web server 也完全可以用它代替 spwn cgi 綜合測試結(jié)果和上述分析 我們完全可以采用 fastcgi 代替?zhèn)鹘y(tǒng)的 mod php 推 薦使用下面的組合方式 apache ext php fpm with superwise 如果 webserver 和 fastcgi 部署在同一機器上 使用 unix sock 方式通信 否則使 用 tcp 方式 附錄附錄 apache mod fastcgi php 搭建搭建 php mod fastcgi 的搭建主要有三種方式 stc ext 和 dyn 不管是哪種方式 首先在安裝 php 的時候需要加上如下選項 enable fastcgi 并且不能使用 with apxs 以下是一個配置 php 例子 configure prefix home club hongdk env php5 26 fcgi enable trace vars with zlib dir home club hongdk tool zlib with mysql home club hongdk env mysql5 with mysqli home club hongdk env mysql5 bin mysql config with gettext with iconv enable mbstring gbk with xmlrpc enable safe mode enable sockets enable url fopen wrapper enable ftp enable shmop with config file path home club hongdk env php5 26 fcgi enable xml with dom home club hongdk tool libxml with libxml dir home club hongdk tool libxml with curl home club hongdk tool curl with curlwrappers enable fastcgi 在安裝完后 會在 php 的 bin 目錄下找到如下文件 php cgi 執(zhí)行 php cgi v 如果看到 PHP 5 2 5 cgi fcgi built Nov 12 2008 20 44 08 Copyright c 1997 2007 The PHP Group Zend Engine v2 2 0 Copyright c 1998 2007 Zend Technologies 就表明安裝成功了 mod fastcgi cd mod fastcgi 2 4 6 cp Makefile AP2 Makefile vi Makefile 修改 top dir 為 apache 安裝目錄 make make install apache 配置 修改 httpd conf 首先增加 LoadModule fastcgi module modules mod fastcgi so 然后根據(jù)不同的運行模式進行配置 eg ext 模式 FastCgiExternalServer php server socket home club fastcgi sock ScriptAlias cgi bin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)合同協(xié)議書
- 車輛貼膜合同協(xié)議書模板
- 貨物采購簡易合同協(xié)議書
- 扶梯拆除合同協(xié)議書
- 結(jié)婚協(xié)議合同協(xié)議書
- 學(xué)生禁毒教育心得體會模版
- 輔警刑法筆試題及答案
- 豬場出租合同協(xié)議書
- 完成合同協(xié)議書
- 合同約定協(xié)議書打印
- 2024-2030年中國羊絨市場銷售格局與未來發(fā)展動向追蹤報告
- 足療技師免責(zé)協(xié)議書
- 延長石油招聘筆試試題
- DB-T 29-22-2024 天津市住宅設(shè)計標準
- 古代詩人名人韓愈人物介紹課件
- 中華護理學(xué)會成人腸內(nèi)營養(yǎng)支持護理團標解讀
- 《1.4莖和葉》說課稿、教案、教學(xué)設(shè)計和同步練習(xí)
- 部編版《道德與法治》六年級下冊第1課《學(xué)會尊重》精美課件
- 企業(yè)VI設(shè)計報價清單
- 國家開放大學(xué)《現(xiàn)代教育原理》形考任務(wù)1-5參考答案
- 政治審查表(模板)
評論
0/150
提交評論