NMP(Linux + Nginx + MySQL + PHP)編譯安裝詳解
LNMP是一種常見的網站框架,由Linux、Nginx、MySQL和PHP組成。本指南將詳細介紹如何通過編譯安裝各組件,搭建LNMP環境。
云服務器,高防服務器就選藍易云,頭條搜索:藍易云
到這里,你已經成功搭建了LNMP網站框架。你可以將網站文件放置在指定的網站根目錄中,并訪問你的域名或IP地址來查看網站。
步驟 | 描述 |
安裝Linux操作系統 | 選擇并安裝適合的Linux發行版,如Ubuntu或CentOS。 |
安裝Nginx | 下載并編譯Nginx源碼,安裝所需的依賴庫,配置并安裝Nginx。 |
安裝MySQL | 使用包管理器安裝MySQL服務器,配置root用戶密碼。 |
安裝PHP | 下載并編譯PHP源碼,安裝所需的依賴庫,配置并安裝PHP及PHP-FPM。 |
配置Nginx與PHP | 修改Nginx配置文件,配置PHP解析,設置網站根目錄及服務器名稱,重啟Nginx服務。 |
LNMP安裝流程
安裝Linux操作系統
安裝Nginx
安裝MySQL
安裝PHP
安裝依賴庫
下載Nginx源碼
解壓源碼包
配置和安裝
安裝依賴庫
下載PHP源碼
解壓源碼包
配置和安裝
配置Nginx與PHP
通過上述步驟,你不僅搭建了一個基本的LNMP環境,還可以根據實際需求進行進一步的配置和優化,以確保網站的安全性和性能。希望這篇指南能夠幫助你順利完成LNMP環境的搭建。
、kindeditor安裝
下載編輯器kindeditor最新版本
解壓文件,然后將所有文件上傳到工程目錄下,具體目錄視不同框架而定
在html頁面引入以下js文件,路徑需要修改為自己的路徑,保證文件能正常加載
<script charset="utf-8" src="/editor/kindeditor.js"></script> <script charset="utf-8" src="/editor/lang/zh-CN.js"></script>
在頁面需要的部分加入textarea控件,注意:id需要唯一
<textarea id="editor_id" name="content" style="width:700px;height:300px;"> 這里寫入內容 </textarea>
最后需要增加以下js代碼,用于初始化控件
<script> //簡單模式初始化 var editor; var options={}; KindEditor.ready(function(K) { editor=K.create('#editor_id', options); }); </script>
注意:
第一個參數為css選擇器,一次只能初始化一個textarea元素。
options為編輯器的配置項,具體參數請參考官網
安裝過程非常簡單,首先在Gemfile
gem 'rails_kindeditor' bundle install
然后執行命令生成相關文件
rails g rails_kindeditor:install
修改配置文件參數config/initializers/rails_kindeditor.rb,例如文件上傳路徑,上傳文件類型等
RailsKindeditor.setup do |config| # Specify the subfolders in public directory. # You can customize it , eg: config.upload_dir='this/is/my/folder' config.upload_dir='uploads' # Allowed file types for upload. config.upload_image_ext=%w[gif jpg jpeg png bmp] config.upload_flash_ext=%w[swf flv] config.upload_media_ext=%w[swf flv mp3 wav wma wmv mid avi mpg asf rm rmvb] config.upload_file_ext=%w[doc docx xls xlsx ppt htm html txt zip rar gz bz2] # Porcess upload image size # eg: 1600x1600=> 800x800 # 1600x800=> 800x400 # 400x400=> 400x400 # No Change # config.image_resize_to_limit=[800, 800] # if you have config in your rails application like this: # /config/enviroments/production.rb # # config.action_controller.asset_host="http://asset.example.com" # # config.assets.prefix="assets_prefx" # then you should: # # config.asset_url_prefix="http://asset.example.com/assets_prefx/" if Rails.env.production? end
在view中嵌入編輯器
<%=kindeditor_tag :content,"這里是默認內容" %>
然后編輯器就可以使用,如圖:
二、填坑
當表單提交時會發現,提交的數據并沒有獲取到文本框中的內容,這是因為輸入數據時并不能實時使textarea獲取到文本內容,那么我們就需要在提交表單時手動賦值
var editor=KindEditor.instances[0]; editor.sync();
注意,此處KindEditor.instances獲取到的是一個文本框數組,根據自己需要取值
rails生產環境都會使用production配置啟動,首先需要編譯資源文件
RAILS_ENV=production rake assets:precompile
但是當編譯完之后,會發現KindEditor的樣式文件并沒有獲取到,這是因為KindEditor需要單獨編譯
rails kindeditor:assets
這時public/assets下就出現了KindEditor需要的資源文件,KindEditor也可以正常使用。
天你可能已被“fake news”欺騙無數次,
所以我們帶來了一條真實的愚人新聞。
而且這些文件的 MD5 都一樣……這是什么魔法?
文 | 光譜
你可能聽說過格式工廠,是一個給文件轉格式的工具。
但今天,硅星人見識了一個十分厲害的東西:不但一個文件可以有六種格式,而且變出來的新文件 MD5 哈希值還和源文件一樣……
需要聲明,不是故意要發在四月一日欺騙大家的感情:下面提到的都是真的,并非愚人節玩笑。
我們來一步一步看。
黑客圈有本期刊叫做 PoC||GTFO,全名是 The International Journal of Proof of Concept or Get The Fuck Out(譯為“國際概念證明或者滾蛋期刊”?),發表在上面的都是一些文件格式、逆向工程和黑客攻擊方面雜七雜八的東西。期刊的發表方式為在線 pdf,免費傳閱,鼓勵鏡像。
而最新的 PoC||GTFO 0x19 這一期也很有意思:它本身是一個 pocorgtfo19.pdf 文件,卻可以手動修改擴展名,變成三個“完全不同”(as in 文件格式),卻又“完全相同”(as in MD5)的文件。
這三個相同又不同的文件,擴展名分別為 .pdf .zip 和 .html。你可以在 GitHub [1](點擊“閱讀原文”) 上下載這個文件(大約65MB),然后自己修改擴展名試試。如果你無法訪問,硅星人也把文件傳到了百度網盤上 [2]。
如果我們對這三個文件 .pdf .zip 和 .html 進行 MD5 校驗,會發現他們的 MD5 值完全一致——這并沒什么的,因為不會對文件造成任何影響,理論上它們還是同一個文件(只是擴展名不同):
但它的好玩之處就在于,三個不同擴展名都可以正常工作,并且具備各自的意義。
如果你打開 .pdf 版本,就可以閱讀這本期刊:
把擴展名改成 .zip,然后進行解壓,會得到這一期 PoC||GTFO 所引用作品的原始文檔:
最后我們把格式改成 .html,就可以在瀏覽器里打開了,會得到下面這樣一個靜態頁面:
這還沒完,更有趣的還在后面呢。這個頁面上寫的是:drop me here so that I can parse myself(把我拽到這個地方,這樣我就能解析我自己了)。這又是什么意思?
因為你現在打開的是 .html 文件,所以正確的做法是把 .html 文件再拖回到上面那段字所在的地方:
這個 html 自己解析自己,居然又解出來了四個文件????
解出來四個新文件的分別為:圖像 .png、微軟可執行 .ex、視頻 .mp4,以及和最初的 .pdf 完全相同的另一個 .pdf 文件)。
如果你再去對這四個新文件檢查 MD5 值,可能世界觀會崩塌:它們的 MD5 值跟原始的 .pdf 仍然一樣。
而且你需要注意到:新出來的其中三個文件(.png .ex 和 .mp4)并不是從原文件直接改擴展名得到的,而是那個 .html 文件作為一個解析器,對自己進行解析,所得到的次生文件。
因為在 macOS 上,硅星人就不打開 .ex 文件了;如果我們打開 mp4 文件,會得到一段很短賽車視頻:
在解析后的頁面里,這個小玩意的作者如此解釋:這個文件是一個 HTML,但同時它也是一個 PDF polyglot.
Polyglot 的字面意義是通曉多種語言。在計算機科學上,它描述的是多種計算機語言寫在一個文件里得到的“雜交體”,可以被這些語言對應的編譯器編譯。
用普通程序員的話來講,Polyglot 就是一個程序可以同時用 PDF 和 HTML 編譯器通過。用人話翻譯一遍,就是一個文件,它可以被當做圖片、視頻和文檔打開,也可以當做可執行程序運行……
作者繼續解釋道:它不僅僅是一個 HTML 和 PDF 的 polyglot,還同時和另外四個文件(也就是剛才解析出的 .png .ex .mp4 和 .pdf)實現了 MD5 碰撞。
這究竟是什么魔法???
剛才我們還有一個文件沒打開,也就是 .png。如果你用 Chrome 瀏覽器打開它,能看到下面這張圖:
它其實描述的就是這個文件的結構。簡單來說:對一個文件的編碼“排版”進行刻意的修改,在里面同時加入 html、png、mp4、pe 的文件頭 (header) 和內容。
基因學有個詞叫做嵌合體,描述的是一個生物體同時擁有多套 DNA,體現出不同的特征。比如雜交,如果成功,得到的就是一種最典型的生物嵌合體。
而這個 html/pdf 文件,就像是計算機上的嵌合體。它看起來是一種文件,實際上還包含了其他多種文件的“特征”……
網友對這個小玩意給出了很高的評價:
無限接近魔法了Twitter @suburbsec
哈哈非常酷!向著 SHA-2 進發!Twitter @_unwriter
笑翻了。MD5 別著急,你到不是完全沒用,只是變成梗了 :-)Twitter @037
小心這些碰撞的碎片(雙關梗,碎片-彈片-彈殼-殼-shell)Twitter @dntlookbehindu
這個小玩意的主要作者是 Ange Albertini 和 Marc Stevens。
Albertini 是 PoC||GTFO 的編輯之一,以及期刊 GitHub“官方頁面”的所有者。他在 Google 的瑞典蘇黎世辦公室擔任安全工程師,在這個小玩意里主要負責逆向工程的工作。
Marc Stevens 為該項目提供了哈希碰撞方面的重要幫助。他在荷蘭國家研究機構 CWI 從事加密科學研究,于2017年和 Google 合作首次完成了 SHA-1 碰撞破解,也就是著名的 SHAttered 事件。
前面提到,MD5 在多年前就被證明可以碰撞破解,但是碰撞起來很費時費力。而Albertini 和 Stevens 共同開發出了一個“一鍵腳本”,能夠輕松實現兩個(甚至更多)文件的 MD5 碰撞。
“碰撞任何兩個文件多年前就實現了,問題是每次都需要幾個小時,沒有捷徑。 我們在此提供一種技巧,面向特定文件格式和預先計算好的碰撞前綴,讓碰撞即可完成。
這一技術的工作原理大致是這樣的:通過預先計算,了解 JPG, PNG, PDF, MP4 這樣的常用文件格式的 prefix(可以被理解為文件內容的“目錄”)可以怎樣兼容,然后在一個單獨的文件 A 上做文章,使得 A 文件可以包含 b.jpg、c.png、d.pdf 和 e.mp4 四個不同文件的數據。
現在,這些研究者可以在 JPG, PNG, PDF, MP4, GIF 這些常用格式的文件之間快速實現碰撞——不僅他們可以,你也行。他們已經在 GitHub - corkami/Collision [3]上開源了這些技術,“git clone,運行,搞定。”Albertini 寫道。
說實話這個技術沒太多創造價值的用途……無非是 1)證明了 MD5 真的太不安全了,建議棄用;2)可以被用于黑客攻擊。
安全研究員晨月舉了一個哈希碰撞攻擊的簡單例子:“比方殺毒軟件對可執行文件很嚴格,但有個 exe 文件偽裝成了 jpg 文件,圖片看起來也沒什么問題,就被通過了,然后進入系統展開攻擊。”(當然,現在的殺軟也沒那么傻,安全行業也一直對哈希碰撞保持高度關注。)
這種攻擊造成的傷害,可能更多是社會意義上的。
比如,某政客的網站上有一段視頻總結了他的政治理念和綱領,而黑客制作了一段哈希值和原視頻完全相同,但意義完全相反的視頻,再注入到網站上,讓政客丟臉,使其失去選民的信任。
這樣看的話,基于這一技術的黑客攻擊就大有潛力了……
兩個不同的視頻,MD5 值一致[4]
這個小玩意的其他貢獻者者還有 Rafa? Hirsz,他跟 Albertini 是同事,負責 JavaScript;Kurt Pfeifle,一位 PDF 文件/PostScript語言方面的專家,PDF Association 成員;Philippe Teuwen,比利時安全公司 QuarksLab 研究員,為項目提供文件格式幫助;以及 .mp4 視頻的作者是 Gustavo Torres,一位獨立視覺藝術家。
因為文件格式和哈希算法確實不是硅星人的專業,我們就不深入探討了……
如果你感興趣的話,可以下載 PoC||GTFO 的0x19期,然后自己動手該擴展名玩一玩,然后到 GitHub - corkami/Collision 上了解技術詳情。
Have fun.
[1] https://github.com/angea/pocorgtfo/blob/master/releases/pocorgtfo19.pdf
[2] https://pan.baidu.com/s/1D4elZHUzg5vvzvfqLrgf4A 提取碼: jx77
[3] https://github.com/corkami/collisions
[4] 視頻1 https://github.com/corkami/collisions/blob/master/examples/collision1.mp4;視頻2 https://github.com/corkami/collisions/blob/master/examples/collision2.mp4
喜歡這篇文章?
1)點擊右下角的“好看”,讓更多人看到這篇文章
2)分享到你的朋友圈和群里
3)趕快關注硅星人吧!
硅星人:(ID:guixingren123)
從科技到文化,從深度到段子,硅星人為你講述關于硅谷的一切。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。