Windows 11环境下如何为特定Laravel项目指定PHP版本
为不同Laravel项目指定特定PHP版本的方案
完全可以为不同Laravel项目配置对应PHP版本,下面是几种实用的实现方式:
1. 使用PHP版本管理工具(推荐)
这类工具能在单台机器上同时管理多个PHP版本,支持全局或项目级快速切换:
- phpbrew:
- 安装完成后,先安装需要的PHP7.1.3版本:
phpbrew install 7.1.3 +default - 进入目标Laravel项目目录,执行
phpbrew switch 7.1.3,当前终端会话就会默认使用该版本;切回PHP8.1.2只需执行phpbrew switch 8.1.2 - 还能在项目根目录创建
.phpbrewrc文件,写入switch 7.1.3,每次进入该目录会自动切换到指定版本
- 安装完成后,先安装需要的PHP7.1.3版本:
- phpenv:
- 安装后,执行
phpenv install 7.1.3完成版本安装 - 在项目目录下执行
phpenv local 7.1.3,该目录及子目录默认使用这个版本;全局切换回PHP8.1.2用phpenv global 8.1.2
- 安装后,执行
2. 直接指定PHP路径运行命令
如果不想用版本管理工具,也可以直接调用对应版本的PHP可执行文件:
- 先找到PHP7.1.3的安装路径(比如Windows下
C:\php71\php.exe,Linux/macOS下/usr/local/php71/bin/php) - 运行Laravel相关命令时,用完整路径替代默认的
php命令:- 启动本地服务:
/usr/local/php71/bin/php artisan serve - 安装依赖:
/usr/local/php71/bin/php composer install
- 启动本地服务:
- 嫌路径太长的话,可在项目根目录创建简易脚本(比如
php71.sh)封装命令,简化输入
3. 本地服务器版本配置(Nginx/Apache)
如果用本地服务器部署项目,需为不同项目配置对应版本的PHP-FPM:
- Nginx:在项目的server配置块中,指定PHP7.1的FPM监听端口,示例:
location ~ \.php$ { fastcgi_pass 127.0.0.1:9071; # 对应PHP7.1的FPM端口 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } - Apache:通过
SetHandler指令指定对应版本的PHP模块,或者为不同虚拟主机配置独立的PHP-FPM池
内容的提问来源于stack exchange,提问作者Sumanl46
相关产品推荐
相关产品推荐

