❶ nginx 監聽80 為什麼php-fpm監聽9000
你可以讓Nginx監聽其他埠,監聽80埠是為了訪問網頁的時候默認訪問該埠(web的默認埠是80),不用在後面添加(:埠)而已。
php-fpm默認埠是9000,你想改的話也要改在Nginx配置的埠
❷ phpstorm斷點調試,xdebug3,win10
1. 查看是否安裝xdebug和其版本
新建測試頁面:<?php phpinfo(); ?>,在頁面中搜索:xdebug,可以查詢是否安裝及其版本
2. 安裝xdebug
把 phpinfo(); 的html頁面內容全部拷貝輸入到 https://xdebug.org/wizard 中,自動檢測需要安裝的xdebug版本,此網址也可以檢測你安沒安裝xdebug和其版本,例如
Download php_xdebug- XXXXX.dll
Move the downloaded file to C:\xampp\php\ext, and rename it to php_xdebug.dll
Update C:\鏈脊絕xampp\php\php.ini and add the line:
zend_extension = xdebug
Restart the Apache Webserver
3. 配置phpstorm
在Settings裡面找到 PHP -> Debug
一定要找到 1. Install Xdebug or Zend.........Validate (點擊它),彈棚姿出對話框後點擊 Validate,如果全是綠色鉤子,恭喜你,Xdebug安裝配置成功。(這是最關鍵步驟)
如果不是,例如提示將:xdebug.mode = debug 加在 php.ini 里。我的加在 zend_extension = xdebug 後面。查閱很多網頁,他們都加了好多行,在xdebug3里,行不通,浪費我半天時間。
Debug port:9000,9003 其餘都勾選。
Xdebug2的埠是9000;Xdebug3的埠野運是9003
不用配置DBGp Proxy
添加 PHP -> Servers
添加 Add Configuration... 添加PHP Web Page
4. 用Postman斷點調試 POST 介面
在Postmen發送請求時,添加 Headers :
KEY : COOKIE
VALUE : XDEBUG_SESSION=PHPSTORM
5. 用瀏覽器get請求,不停在斷點處解決辦法
用Postman發送get請求,添加 Headers :........
在瀏覽器chrome里安裝Xdebug helper插件,點擊debug變綠即可。
啟動php-fpm。
/usr/local/php5/sbin/php-fpm /usr/local/php5/為php-fpm的安裝地址。
/usr/local/php-5.6.3/sbin/php-fpm -R # 如果報錯顯示不能用root用戶啟動,則可以考慮使用 -R命令。
查看是否啟動成功:
netstat -lnt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
或者使用如下命令,查看是否9000埠被php-fpm佔用:
netstat -tunpl | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2124/php-fpm。
❹ nginx 瀏覽php的時候會變成下載
php的時候會變成下載:這是因為nginx沒有設置好碰到php文件時,要傳遞到後方的php解釋器。
看看你的nginx.conf配置,裡面有沒有這樣的設置:
location ~ .*\.php$ {
fastcgi_pass 127.0.0.1:9000;
}
上面的意思,就是說,碰到.php結尾的文件,傳遞給後方127.0.0.1的9000埠上。
當然啦,你的php-fpm解析器也需要正常運行,並監聽好9000埠,才能最終生效並有效處理php腳本。
windows下開啟監聽的辦法,php-cgi.exe -b 127.0.0.1:9000 -c php\php.ini
❺ 【linux下lamp環境搭建】apache埠起在8000,php埠起在9000
apache埠在httpd.conf修改。
如果用apache的話,採用fast-cgi形式連接,php是沒有埠的。
另,PHP的配置文件是php.ini文件。
php程序從來無法定義監聽埠號。
❻ Linux裡面php默認埠是多少
php 是生成 html 的,與埠無關。HTTP 埠通常是 80
❼ 9000是什麼埠
百兆P2P
埠: 9000
I P: 221.233.19.30
❽ Nginx | 抓包讓你搞清楚 502 和 504 的區別
php-fpm不啟動,這樣可以模擬502報錯,nginx配置文件如下。
tcpmp進行抓包,命令: tcpmp -i any port 9000 -w http502.pcap 。
用 Wireshark 查看 http502.pcap 抓包文埋首件裡面的內容。
nginx請求php-fpm 9000埠,9000埠有回包,但是給了個 RST 。
nginx配置不變,這次將php-fpm啟悶液族動起來,並且確定能夠正常訪問。
測試響應正常的200狀態碼,用 iptables 攔截所有客戶端來訪問9000埠,這樣可以模擬504報錯。
iptables命令: iptables -A INPUT -p tcp --dport 9000 -j DROP 。
然後再用tcpmp抓包,tcpmp命令: tcpmp -i any port 9000 -w http504.pcap 。
依舊是用螞弊 Wireshark 查看抓包內容。
nginx請求php-fpm 9000埠,9000埠沒有回包,全是 SYN 握手包。
❾ 了解PHP-FPM
在伺服器上,當我們查看php進程時,全都是php-fpm進程,大家都知道這個就是php的運行環境,那麼,它到底是個什麼東西呢?
PHP-FPM,就是PHP的FastCGI管理器,用於替換PHP FastCGI的大部分附加功能,在PHP5.3.3後已經成為了PHP的標配。
有小夥伴要問了,FastCGI又是什麼鬼?CGI程序又叫做「通用網關介面」,就是讓Web伺服器和你的應用程序進行交互的一個介面。就像nginx中需要配置的fastcgi_pass,一般我們會使用127.0.0.1:9000或者unix:/tmp/php-cgi.sock來配置這個參數。它的意思就是告訴nginx,過來的請求使用tcp:9000埠的監聽程序來處理或者使用unix/socket來處理。它們都是指向的PHP運行程序。
再說得通俗一點,我們運行php腳本用的是
php-fpm就相當於是這個php命令。nginx通過fastcgi_pass來運行php $nginx_root(nginx配置文件中網站根目錄root配置)下的index.php。所以,如果你用的是python或者其他什麼語言,都可以用它們的cgi程序來讓nginx調用。
FastCGI和CGI又有什麼不同呢?FastCGI是啟動一個socket介面,伺服器應用不需要自己去運行php,只需要向這個socket介面提交請求就可以了。
php-fpm在編譯php時需要添加--enable-fpm。一些通用的集成安裝包如lnmp、phpStudy等都會默認編譯並使用php-fpm,畢竟是標配。
上文中說過nginx可以使用127.0.0.1:9000和unix:/tmp/php-cgi.sock這兩種方式來調用php-fpm。它們有什麼區別呢?
前者,一般帶9000埠號的,是tcp形式的調用。也就是php-fpm啟動了一個監聽進程對9000埠進行監聽。它會調起一個tcp/ip服務,nginx在調用的時候會走一次tcp請求流程,也就是3次握手4次揮手,會走到網路七層中的第四層傳輸層。相對來說這種方式性能會稍差一點,啟動php-fpm後使用nestat查看埠中會出現9000埠的佔用。
後者,使用的是unix套接字socket服務,通過sock文件來交換信息,性能相對好一些,因為它沒有tcp連接過程,也不會有9000埠的佔用。
對於高負載大訪問量的網站還是推薦使用unix方式,對於普通小網站來說,無所謂使用哪個都可以,tcp方式反而更容易配置和理解,也是php-fpm.conf中默認的監聽方式。
php-fpm.conf配置中的listen屬性用來配置監聽,這里的配置要和nginx中的一致,使用tcp的就監聽127.0.0.1:9000,使用unix的就設置成/tmp/php-cgi-56.sock。
以下內容摘自官方文檔:
===========
各自媒體平台均可搜索【硬核項目經理】
❿ Mac下安裝配置PhpStorm開發環境
參考: # macOS下安裝配置PhpStorm
默認mac中都是自帶php,apache,PHP在目錄/usr/bin/php中
apache默認站點根目錄為:/Library/WebServer/Documents
配置文件:/etc/apache2/httpd.conf
文本編輯器或者vim打開httpd.conf
搜索LoadMole php7_mole libexec/apache2/libphp7.so,將前面#號去掉。
略...
注意:xcdebug.so默認是在/usr/lib/php/extensions/目錄下,但是no-debug-non-zts-20180731版本不盡相同,需要設置成自己系統里的。
工程需要創建在/Library/WebServer/Documents/下面
可以將工程目錄放在左側的快捷導航中
在Phpstorm的Preference->Build, Execution, Deployment->Deployment->點+新建, name自定義,我起名叫webroot。 type選擇Local or mounted folder。
Mappings中,我們看到local path為我們新建的php目錄地址,web path on server 'webroot' (relative to folder).
因為apache容器的根目錄為/Library/WebServer/Documents/,所以在其中填入相對於/Library/WebServer/Documents/的目錄名稱,即HelloPHP保存。
配置安裝Xdebug
首先檢查phpstorm的xdebug配置,這里的debug port要和php.ini裡面的xdebug.remote_port相一致!默認是9000,如果9000埠被佔用的話,可以改成其他埠。
進入Debug>DBGpProxy,IDE key填PHPSTORM,host填localhost,port 填80
設置localService
新建一個server
設置run、debug自動瀏覽器打開的開始頁面
啟動