# php的运行模式

# fastcgi模式

  • 中间件采用ng的时候,就是fastcgi模式;

  • cgi模式: 在这种模式下,每个HTTP请求都会启动一个新的PHP进程来执行相应的PHP脚本,处理完成后,该进程会终止

  • FastCGI是CGI的一种扩展,它保持了CGI的隔离性优点,同时改善了性能问题。在FastCGI模式下,PHP进程不会随着每个HTTP请求而启动和终止,而是长期运行,从而减少了启动开销。

  • PHP-FPM是PHP 5.3.3版本引入的一个替代PHP-CGI的实现,专门用于管理FastCGI进程。PHP-FPM拥有一个主进程和若干个子进程,主进程负责管理子进程池,子进程则负责处理来自Web服务器的请求。

# Module模式

  • 中间件使用apache时,就是module模式;
  • PHP作为Apache Web服务器的模块(mod_php)运行时,它会直接编译进Apache中,每当Apache启动时,PHP也会随之启动。这种方式提供了很高的性能,因为PHP解析器始终处于内存中,并且与Web服务器紧密集成。

# CLI模式

  • 通过命令行直接执行php文件;
  • CLI模式允许用户在命令行环境中运行PHP脚本。这对于需要定期执行的任务(如cron作业)、系统管理任务或测试来说非常有用。CLI模式不涉及Web服务器,因此它的配置可能与其他模式不同。

# php-web调试(win)

# 安装xdebug

  • https://xdebug.org/wizard: xdebug下载地址
  • 下载后,放到php的ext目录,并重命名为php_xdebug;
  • 修改php.ini文件,追加内容
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=localhost
xdebug.client_port=9003

# 启动控制端的监听端口-phpStorm为例

  • 设置 php-debug-xdebugport,监听端口设置为9003;
  • 点击页面的监听。
  • 注意,php与java和python不一样,phpStorm有两个可以调试的地方,一个是主动调试, 一个是监听调试。 web调试要用监听的按钮。
  • 对于调试web来说,直接用idea也可以,装了php插件的前提下。

# 参考地址

  • phpstorm调试-https://blog.csdn.net/weixin_42709044/article/details/115928732