❶ 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自动浏览器打开的开始页面
启动