亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP的運行和多人開發環境原理

發布時間:2021-09-03 21:53:25 來源:億速云 閱讀:174 作者:chen 欄目:開發技術

這篇文章主要介紹“PHP的運行和多人開發環境原理”,在日常操作中,相信很多人在PHP的運行和多人開發環境原理問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP的運行和多人開發環境原理”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

PHP運行原理

首先我們來分析下 PHP 的運行原理,看看 PHP 的語言特點。當我們從瀏覽器發起一個請求,我們的web服務器(Nginx、Apache等)監聽了80或者443端口,我們來看一個最簡單的 Nginx 的 vhost 配置:

server {
 listen    80;
 server_name test.com;
 
 root /data/gateway/html;
 index  index.php;

 location ~ \.php$ {
  fastcgi_pass  127.0.0.1:9001; #unix:/Users/run/php-fcgi.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include    fastcgi_params;
 }
}

Nginx 監聽80端口,當匹配到用戶訪問的域名是test.com后使用對應的 vhost 配置。在服務器里PHP-FPM起一個服務,監聽一個端口(比如9001)或者一個unix socket,Nginx通過fastcgi_pass配置,將請求傳遞給 PHP-FPM 來解析PHP代碼,PHP解析器每次從index.php開始解析,一路處理下去、做一系列的邏輯處理、查詢數據庫或者緩存等操作,返回一個 HTML 或者其他結果給 Nginx,Nginx 再返回給瀏覽器。流程如下圖:

PHP的運行和多人開發環境原理

CGI:是 Nginx 與 PHP_FPM 之間數據交換的一種協議。

FastCGI:同 CGI,是一種通信協議,但比 CGI 在效率上做了一些優化。

PHP-CGI:是 PHP 對 Nginx 提供的 CGI 協議的接口程序。

PHP-FPM:是 PHP 對 Nginx 提供的 FastCGI 協議的接口程序,額外還提供了相對智能一些任務管理。

多人開發環境

從 PHP 原理我們可以看到,PHP其實只是一個解釋型的腳本語言,每次請求都要從index.php解析一次,那我們是不是可以在服務器根據不同開發者的名字,命名很多個文件夾,在各自文件夾里,clone 好代碼倉庫,切換到自己的分支。再讓 Nginx 處理每個人目錄下的index就可以了。比如直接訪問http://wulv.test.com/,在 Nginx 獲取到 wulv,把 root 設置到 wulv 這個目錄,這樣就訪問到 wulv 這個目錄下的代碼了。可以讓 Nginx 這樣設置:

set $who www;
if ($http_who != "") {
  set $who $http_who;
}
root /data/gateway/$who/html;

我們可以讓 URL 里攜帶用戶的目錄,在 Nginx 截取下來,可以在一下幾個地方攜帶:

host: http://wulv.test.com

path: http://www.test.com/wulv

query: http://www.test.com?http_who=wulv

這樣大體上可以實現需求了,但還是有點問題,比如頁面里有些鏈接是寫死的,沒有使用相對路徑,你一點擊就又跑 www.test.com 去了,或者有些第三方應用比如 OAuth 等需要校驗域名,你和線上域名不一致根本無法登陸。所以需要其他方式來實現,比如:

http request header

cookie

我們可以使用Modify Headers這個瀏覽器插件,修改http request 頭信息,設置一個參數 http_who 為 wulv,然后在 Nginx 獲取。

到此,關于“PHP的運行和多人開發環境原理”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

于田县| 安陆市| 喀什市| 淮南市| 商丘市| 商河县| 肥东县| 阿拉善盟| 青铜峡市| 天水市| 宜兰市| 营山县| 洪江市| 万全县| 石阡县| 浦城县| 陆良县| 通河县| 上思县| 图片| 博罗县| 视频| 阳泉市| 天长市| 新泰市| 莒南县| 五指山市| 军事| 介休市| 衡阳县| 淄博市| 九江县| 肥西县| 藁城市| 阿克苏市| 德江县| 临夏县| 天等县| 卫辉市| 杨浦区| 布拖县|