我使用 virtphp 来拥有不同的环境(不同的 PHP 版本、扩展等)。
当我使用 symfony 的命令运行本地开发服务器时:
php app/console server:run
它似乎忽略了我的虚拟环境的 php.ini 文件 (~/.virtenv/envs/myenv/etc/php.ini),例如:不加载该文件中定义的扩展。
但是当我直接使用php内置服务器时,它运行得很好:
php -S 127.0.0.1:8000 --docroot=web/
这两个命令有什么不同,或者 symfony 有什么不同之处?
这是 php --ini
命令的输出:
Configuration File (php.ini) Path: /usr/local/etc/php/5.5
Loaded Configuration File: /Users/mjuarez/.virtphp/envs/wowfi/etc/php.ini
Scan for additional .ini files in: /Users/mjuarez/.virtphp/envs/wowfi/etc/php
Additional .ini files parsed: (none)
这是使用命令 php app/console server:run
时 Symfony Controller 中函数 phpinfo()
的输出:
Configuration File (php.ini) Path /usr/local/etc/php/5.5
Loaded Configuration File /usr/local/etc/php/5.5/php.ini
Scan this dir for additional .ini files /Users/mjuarez/.virtphp/envs/wowfi/etc/php
Additional .ini files parsed (none)
请注意“加载的配置文件”的区别...当我使用 php --ini
命令时,它会用我的 php 虚拟环境中的那个替换“加载的配置文件”,当我使用命令 php app/console server:run
它使用“全局”配置文件。
最佳答案
郑重声明(以及所有像我一样通过谷歌搜索来到这里的迷失灵魂):
Symfony 控制台本身并不是一个程序。它只是一个 PHP 脚本。因此,当您运行 Symfony 控制台时,它没有自己的 php.ini 或扩展目录或其他配置 - 它使用与所有其他 PHP 脚本相同的设置。(除非在运行时被覆盖 -这实际上可能是原始问题的情况。)
关于php - 什么 php.ini 文件使用 symfony 服务器 :run command?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39213794/