整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          藍易云 - LNMP網站框架搭建(編譯安裝)

          藍易云 - LNMP網站框架搭建(編譯安裝)

          NMP(Linux + Nginx + MySQL + PHP)編譯安裝詳解

          LNMP是一種常見的網站框架,由Linux、Nginx、MySQL和PHP組成。本指南將詳細介紹如何通過編譯安裝各組件,搭建LNMP環境。

          云服務器,高防服務器就選藍易云,頭條搜索:藍易云


          安裝Linux操作系統

          1. 下載并安裝Linux發行版選擇適合你的Linux發行版,如Ubuntu、CentOS等。按照安裝指南完成操作系統的安裝。

          安裝Nginx

          1. 安裝編譯Nginx所需的依賴庫
          2. sudo apt update sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev
          3. 下載Nginx源碼包
          4. wget http://nginx.org/download/nginx-1.20.1.tar.gz # 替換為最新版本號
          5. 解壓源碼包
          6. tar -zxvf nginx-1.20.1.tar.gz
          7. 進入解壓后的目錄
          8. cd nginx-1.20.1
          9. 執行配置命令
          10. ./configure
          11. 編譯并安裝Nginx
          12. make sudo make install
          13. 驗證Nginx是否安裝成功
          14. /usr/local/nginx/sbin/nginx -v

          安裝MySQL

          1. 安裝MySQL服務器
          2. sudo apt update sudo apt install mysql-server
          3. 配置MySQL
          4. 在安裝過程中會提示設置root用戶密碼,按照提示操作。

          安裝PHP

          1. 安裝編譯PHP所需的依賴庫
          2. sudo apt install build-essential libxml2 libxml2-dev bzip2 libbz2-dev libpng-dev libjpeg-dev libonig-dev libzip-dev libcurl4-openssl-dev libssl-dev
          3. 下載PHP源碼包
          4. wget http://php.net/get/php-8.0.11.tar.gz/from/this/mirror -O php-8.0.11.tar.gz # 替換為最新版本號
          5. 解壓源碼包
          6. tar -zxvf php-8.0.11.tar.gz
          7. 進入解壓后的目錄
          8. cd php-8.0.11
          9. 執行配置命令(可以根據需要自定義配置)
          10. ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-fpm --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir --enable-xml --enable-fpm --enable-mbstring --enable-gd-jis-conv
          11. 編譯并安裝PHP
          12. make sudo make install
          13. 復制PHP配置文件
          14. sudo cp php.ini-development /usr/local/php/etc/php.ini
          15. 復制PHP-FPM配置文件
          16. sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
          17. 啟動PHP-FPM服務
          18. sudo /usr/local/php/sbin/php-fpm

          配置Nginx與PHP

          1. 打開Nginx配置文件
          2. sudo nano /usr/local/nginx/conf/nginx.conf
          3. 在http塊中添加以下內容來配置PHP解析
          4. server { listen 80; server_name your_domain.com; root /path/to/your/web/root; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
          5. 將 your_domain.com 替換為你的域名或IP地址。
          6. 將 /path/to/your/web/root 替換為你的網站根目錄路徑。
          7. 保存并關閉文件
          8. 重啟Nginx
          9. sudo /usr/local/nginx/sbin/nginx -s reload

          總結與進一步配置

          到這里,你已經成功搭建了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

          進一步配置和安全性調整

          1. 配置防火墻:確保只開放必要的端口(如80和443)。
          2. SSL/TLS配置:為Nginx配置SSL證書,提高網站的安全性。
          3. PHP安全配置:修改 php.ini 文件,禁用危險的PHP函數,配置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為編輯器的配置項,具體參數請參考官網

          • rails安裝

          安裝過程非常簡單,首先在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)

          從科技到文化,從深度到段子,硅星人為你講述關于硅谷的一切。


          主站蜘蛛池模板: 亚洲视频免费一区| 国产在线一区二区三区av| 日韩精品无码一区二区三区四区 | 极品少妇伦理一区二区| 中文字幕日韩欧美一区二区三区| 亚洲综合无码一区二区痴汉| 精品日韩一区二区三区视频| 丰满爆乳无码一区二区三区| 亚洲av无码天堂一区二区三区| 日韩精品一区二区三区在线观看l| 国产成人一区二区三区电影网站 | 精品女同一区二区三区在线 | 国产精品成人一区二区| 国产午夜精品一区二区三区嫩草| 亚洲一区二区三区首页| 人妻视频一区二区三区免费| 99精品高清视频一区二区| 精品国产一区AV天美传媒| 乱人伦一区二区三区| 日韩亚洲AV无码一区二区不卡| 国产一区二区在线|播放| 丝袜无码一区二区三区| 无码少妇一区二区三区芒果| 亚洲AV日韩精品一区二区三区| 亚洲AV无码一区二区一二区| 亚洲无线码在线一区观看| 秋霞电影网一区二区三区| 3d动漫精品啪啪一区二区免费| 视频一区视频二区日韩专区| 一区二区三区国产精品| 国产综合无码一区二区辣椒| 国产成人综合亚洲一区| 国产精品一区二区久久精品涩爱| 亚洲国产精品成人一区| www一区二区三区| 精品无码中出一区二区| 制服美女视频一区| 一区二区国产在线观看| 亚洲免费一区二区| 国产伦精品一区二区三区视频金莲 | 国产成人av一区二区三区不卡|