日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

apache 与 php-fpm 几种处理方式

發布時間:2025/6/17 76 豆豆
生活随笔 收集整理的這篇文章主要介紹了 apache 与 php-fpm 几种处理方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址: apache 與 php-fpm 幾種處理方式

目錄

  • 1.SetHandler

  • 2.ProxyPassMatch

  • 3.ProxyPass

<h3 id="1">1.SetHandler</h3>

  • 在apache配置文件只部署一次
  • 需要Apache 2.4.9以上才行
  • ip:port配置

    php-fpm配置

    listen = 127.0.0.1:9000

    httpd配置

    <FilesMatch \.php$> setHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>
    UDS配置

    php-fpm配置

    listen = /var/run/php-fpm/php-fpm.sock

    httpd配置

    <FilesMatch \.php$>SetHandler:unix:///var/run/php-fpm/php-fpm.sock|fcgi://php-fpmSetHandler "proxy:unix:/var/run/php-fpm/php-fpm.sock|fcgi://localhost" # Apache 2.4.10設置 </FilesMatch>

    <h3 id="2">2.ProxyPassMatch</h3>

    需要在每個 "VirtualHost" 里面加入

    ip:port配置
    <VirtualHost *:80> ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/your/documentroot/$1 DirectoryIndex /index.php </VirtualHost>
    • ProxyPassMatch
      只有滿足特定正則模式的內容才會匹配并執行此規則,這里的模式是,
      ^/(..php(/.)?)$

    從網站(虛擬主機 <VirtualHost > 的根目錄開始,匹配任何以 .php 結尾,或者在 .php 之后緊跟一個 / 再跟別的內容的路徑。

    • ^ (caret) 和 $ (dollar)

    標志要匹配的路徑的開始和結束

    • ( )

    括號里的內容可以用 $1 來表示,以方便后面引用它。

    • fcgi://127.0.0.1:9000

    通過 mod_proxy_fcgi 來轉發的代理,使用 fastCGI 協議,轉到 PHP-FPM 監聽的端口。
    改變 IP 地址和/或端口號就可以要轉到的不同的 pool。用這個可以實現服務器分流、均衡等。

    • /path/to/your/documentroot/

    非常重要!必須與虛擬主機的路徑匹配,且必須是對應 php 文件在操作系統中的絕對路徑。否則會找不到文件(PHP Script File)。這也是 URL 地址重寫的目的所在:將 URL 地址轉換成 fcgi://127.0.0.1:9000 后面緊跟著的 php 文件絕對路徑。

    • 可以從原始請求擴展成整個請求路徑的變量,這里指代前面外圍 ( ) 里面匹配的那個路徑(uri)

    我本機docker容器 httpd 和 php-fpm配置
    我的php-fpm在138.38.38.110 上,配置將有所不同

    <VirtualHost *:80>ServerAdmin shenyi@com.cnDocumentRoot "/usr/local/apache2/htdocs"ServerName localhost<Directory "/usr/local/apache2/htdocs">Options NoneRequire all granted</Directory>ProxyRequests OffProxyPassMatch ^/(.*\.php)$ fcgi://138.38.38.110:9000/var/www/htm/$1 </VirtualHost>

    關于docker-compose 安裝配置,看我docker compose 安裝配置nginx 反向代理 httpd php-fpm
    <h3 id="3">3.ProxyPass</h3>

    跟ProxyPassMatch 類似 ,需要在每個 VirtualHost 中分別設置

    <LocationMatch ^(.*\.php)$> ProxyPass fcgi://127.0.0.1:9000/path/to/webroot/ ProxyErrorOverride on </LocationMatch>

    最后感謝 http://cnzhx.net/blog/apache-...

    總結

    以上是生活随笔為你收集整理的apache 与 php-fpm 几种处理方式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。