LAMP架构
LAMP架構
1. LAMP介紹
1.1 動態資源和靜態資源
注意:靜態和動態的區別,不在于網頁是否能動態變化,而是客戶端的程序文件是否和服務器端的程序文件保持一致。
WEB相關語言
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協議) --> mysql3.3 FASTCGI
fastcgi的方式是,web服務器收到一個請求時,不會重新fork一個進程(因為這個進程在web服務器啟
動時就開啟了,而且不會退出),web服務器直接把內容傳遞給這個進程(進程間通信,但fastcgi使用
了別的方式,tcp方式通信),這個進程收到請求后進行處理,把結果返回給web服務器,最后自己接
著等待下一個請求的到來,而不是退出。
請求流程
Client -- (http協議) --> httpd -- (fastcgi協議) --> fastcgi服務器 -- (mysql協議) --> mysql3.4 CGI和fastcgi 比較
總結
- 上一篇: Jboss的下载和安装
- 下一篇: 联想i微型计算机怎么拆,联想t410i如