当前位置: 首页 > 后端技术 > PHP

apache和php-fpm的几种处理方法

时间:2023-03-30 05:02:27 PHP

原文地址:apache和php-fpm的几种处理方法Directory1.SetHandler2.ProxyPassMatch3.ProxyPass1.SetHandler配置在apache文件部署一次只需要Apache2.4.9或以上版本。ip:port配置php-fpm配置listen=127.0.0.1:9000httpd配置/var/run/php-fpm/php-fpm.sockhttpd配置SetHandler:unix:///var/run/php-fpm/php-fpm.sock|fcgi://php-fpmSetHandler"proxy:unix:/var/run/php-fpm/php-fpm.sock|fcgi://localhost"#Apache2.4.10设置2.ProxyPassMatch需要在每个“VirtualHost”中添加ip:port配置ProxyPassMatch^/(.*\.php(/.*)?)$fcgi://127.0.0.1:9000/path/to/your/documentroot/$1DirectoryIndex/index.phpProxyPassMatch只有满足特定正则模式的内容才会匹配并执行这条规则,这里的模式是,^/(..php(/.)?)$开始来自网站的根目录(虚拟主机),匹配以.php结尾的任何路径,或后跟/后跟其他内容。^(caret)和$(dollar)标记了要匹配的路径的开始和结束()括号中的内容可以用$1表示,以备后用。fcgi://127.0.0.1:9000mod_proxy_fcgi转发的proxy使用fastCGI协议去PHP-FPM监听的端口。更改IP地址和/或端口号以切换到不同的池。这可以用来实现服务器拆分、平衡等。/path/to/your/documentroot/很重要!必须与虚拟主机的路径相匹配,并且必须是操作系统中相应php文件的绝对路径。否则将找不到该文件(PHP脚本文件)。这也是URL地址重写的目的:将URL地址转换成紧跟在fcgi://127.0.0.1:9000之后的php文件的绝对路径。一个可以从原始请求扩展到整个请求路径的变量,这里指的是前面外围匹配的路径(uri)()我本地的docker容器httpd和php-fpm配置我的php-fpm在138.38.38.110,configure会有所不同ServerAdminshenyi@com.cnDocumentRoot"/usr/local/apache2/htdocs"ServerNamelocalhostOptionsNone要求全部授予ProxyRequestsOffProxyPassMatch^/(.*\.php)$fcgi://138.38.38.110:9000/var/www/htm/$1关于docker-compose安装配置,看我的dockercompose安装配置nginxreverse代理httpdphp-fpm3.ProxyPass类似于ProxyPassMatch,需要在每个VirtualHost中设置ProxyPassfcgi://127.0.0.1:9000/path/to/webroot/ProxyErrorOverrideon最后感谢http://czhx.net/blog/apache-...