配置不同站点不同版本PHP
Apache 配置
1.常规手动部署apache方法(不会apache配置的请先移步看下Apache基本手工配置方法),解压fcgid,取其mod_fcgid.so至modules目录
2.打开httpd.conf 注释掉以下类似配置
#LoadModule php5_module "D:/php53/php5apache2_2.dll" #PHPIniDir "D:/php53/"
3.增加配置(尾部或中部即可)
#加载fcgid扩展模块(额外说明,fcgid根据实际apache版本对应,apache2版本测试2.3.6正常) LoadModule fcgid_module modules/mod_fcgid.so #添加映射 AddHandler fcgid-script .fcgi .php # 设置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有请求前退出 FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 #php-cgi每个进程的最大请求数 FcgidMaxRequestsPerProcess 1000 #php-cgi最大的进程数 FcgidMaxProcesses 3 #最大执行时间 FcgidIOTimeout 120 FcgidIdleTimeout 120 #限制最大请求字节 (单位b) FcgidMaxRequestLen 2097152 AddType application/x-httpd-php .php #------这里是默认虚拟主机配置 #php.ini的存放目录 FcgidInitialEnv PHPRC "D:/php5.4.4/" #php-cgi的路径 FcgidWrapper "D:/php5.4.4/php-cgi.exe" .php
ExecCGI 为附加值
<Directory /> Options FollowSymLinks ExecCGI AllowOverride None Order deny,allow Deny from all </Directory>
4.修改添加执行权限(如若不然,可能会提示HTTP错误,禁止访问403)
5. 虚拟主机文件配置 (每个虚拟主机独立的配置段中只需要更改其配置版本路径即可,以下配置为PHP5.3.1虚拟主机配置)
<VirtualHost *:80> ServerName "apihost" ServerAlias www.apihost.com api.apihost.com FcgidInitialEnv PHPRC "D:/php5.3.1/" FcgidWrapper "D:/php5.3.1/php-cgi.exe" .php DocumentRoot "D:/WEB/apihost/wwwroot/" ErrorLog "D:/WEB/apihost/log/error.log" CustomLog "D:/WEB/apihost/log/access.log" common </VirtualHost>
Nginx 配置
安装不同的 php 版本,在 php 安装路径找到 php-fpm.conf 文件修改不同的监听端口,如下
listen = 127.0.0.1:9000
需要使用哪个版本,在nginx 每个站点的配置文件(一般为nginx 配置同目录下的 vhost/域名.conf)中指定对应的端口即可,server 里指定 fastcgi_pass
server { …… location ~ \.php(.*)$ { fastcgi_pass 127.0.0.1:9000; # 这里与php 监听端口一致 fastcgi_index index.php; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现