日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LAMP架构

發布時間:2024/8/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LAMP架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LAMP架構

1. LAMP介紹

1.1 動態資源和靜態資源

  • 靜態資源:原始形式與響應內容一致,在客戶端瀏覽器執行
  • 動態資源:原始形式通常為程序文件,需要在服務器端執行之后,將執行結果返回給客戶端
  • 注意:靜態和動態的區別,不在于網頁是否能動態變化,而是客戶端的程序文件是否和服務器端的程序文件保持一致。

    WEB相關語言

  • 客戶端技術: html,javascript,css,jpg
  • 服務器端技術:php, jsp,python,asp
  • 1.2 LAMP架構具體組成

    • L:linux
    • A:apache (httpd)
    • M:mysql, mariadb
    • M:memcached
    • P:php, perl, python

    2. PHP

    2.1 PHP簡介

    PHP是通用服務器端腳本編程語言,主要用于web開發實現動態web頁面,也是最早實現將腳本嵌入HTML源碼文檔中的服務器端腳本語言之一。

    php還提供了一個命令行接口,因此,其也可以在大多數系統上作為一個獨立的shell來使用

    2.2 PHP的Opcode語言

    PHP的語言引擎Zend執行PHP腳本代碼一般會經過如下4個步驟

    • Scanning 詞法分析,將PHP代碼轉換為語言片段(Tokens)
    • Parsing 語義分析,將Tokens轉換成簡單而有意義的表達式
    • Compilation 將表達式編譯成Opcode
    • Execution 順次執行Opcode,每次一條,從而實現PHP腳本的功能

    即:掃描–>分析–>編譯–>執行

    所以,Opcode是一種PHP腳本編譯后的中間語言,類似于Java的ByteCode,或者.NET的MSL。

    2.3 PHP配置

    php配置文件路徑::/etc/php.ini /etc/php.d/*.ini

    修改配置文件后生效方法:

    • Modules:重啟httpd服務
    • FastCGI:重啟php-fpm服務

    以#開頭,純粹的注釋信息,以 ; 開頭,用于注釋可啟用的directive

    提示:較新的版本中,已經完全使用 “ ; ” 進行注釋

    2.3.1 php常見配置

    • max_execution_time= 30 最長執行時間30s
    • memory_limit=128M 生產不夠,可調大
    • display_errors=off 調試使用,不要打開,否則可能暴露重要信息
    • display_startup_errors=off 建議關閉
    • post_max_size=8M 最大上傳數據大小,生產可能調大,比下面項大
    • upload_max_filesize =2M 最大上傳文件,生產可能要調大
    • max_file_uploads = 20 同時上傳最多文件數
    • date.timezone =Asia/Shanghai 指定時區
    • short_open_tag=on 開啟短標簽

    2.3.2 php語言格式

    格式1:
    <?phpecho "<h1>Hello world!</h1>" ?>
    格式2:
    <h1><?php echo "Hello world!" ?> </h1>
    php測試代碼
    <?phpecho date("Y/m/d H:i:s");phpinfo(); ?>

    3. LAMP實現方式

    3.1 httpd和php調用方式

    httpd調用php的方式,或者說動態資源的獲取方式有兩種:

    • CGI
    • FASTCGI

    3.2 CGI

    CGI:Common Gateway Interface 公共網關接口

    web服務器會根據這次請求的內容,然后會fork一個新進程來處理請求, 這個進程會把處理完的數據返回給web服務器,最后web服務器把內容發送給用戶,剛才fork的進程也隨之退出。 如果下次用戶還請求改動態腳本,那么web服務器又再次fork一個新進程,周而復始的進行。

    請求流程

    Client -- (http協議) --> httpd -- (cgi協議) --> application server (program file) -- (mysql協議) --> mysql

    3.3 FASTCGI

    fastcgi的方式是,web服務器收到一個請求時,不會重新fork一個進程(因為這個進程在web服務器啟
    動時就開啟了,而且不會退出),web服務器直接把內容傳遞給這個進程(進程間通信,但fastcgi使用
    了別的方式,tcp方式通信),這個進程收到請求后進行處理,把結果返回給web服務器,最后自己接
    著等待下一個請求的到來,而不是退出。

    請求流程

    Client -- (http協議) --> httpd -- (fastcgi協議) --> fastcgi服務器 -- (mysql協議) --> mysql

    3.4 CGI和fastcgi 比較

    總結

    以上是生活随笔為你收集整理的LAMP架构的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。