Laravel项目未使用Xampp自带php.ini,如何修改其加载的配置文件路径?
问题原因
出现配置不一致的核心原因是你当前运行Laravel的PHP进程,和Xampp集成的PHP是两套独立的PHP程序:
- Xampp控制台输出的phpinfo是Xampp自带Apache服务加载的内置PHP,所以读取的是
C:\xampp\php\php.ini,phpMyAdmin跑在Xampp的Apache服务下,自然也用这套配置。 - 你访问Laravel页面时,对应的PHP进程要么是
php artisan serve启动的PHP内置服务,要么是其他web服务关联的单独安装的PHP(路径C:\php),所以会读取C:\php\php.ini。大部分情况是你的系统环境变量PATH里C:\php的优先级高于C:\xampp\php,命令行调用PHP时默认优先触发了单独安装的版本。
解决方法
根据你的使用场景选对应方案即可:
- 如果你平时用
php artisan serve启动项目:打开系统环境变量编辑页,把C:\xampp\php的路径上移到C:\php前面,保存后重启终端,执行php --ini确认加载的配置文件路径为Xampp下的php.ini后,再重启artisan服务就会读取Xampp的配置了。 - 如果你用Apache/Nginx托管Laravel项目:修改web服务的PHP关联配置,把PHP处理程序的路径指向
C:\xampp\php下的php-cgi.exe(Nginx场景),或是修改Apache的PHP模块加载路径为Xampp自带的PHP模块文件,重启web服务即可生效。 - 临时指定配置路径启动:如果不想修改全局环境变量,可以在启动artisan时手动指定ini路径,执行命令
php -c C:\xampp\php\php.ini artisan serve即可,该配置仅对当前启动的服务生效。
内容的提问来源于stack exchange,提问作者W. Nelson
相关产品推荐
相关产品推荐

