什么php.ini文件使用symfony服务器:运行命令?

时间:2016-08-29 19:31:34

标签: php symfony

我使用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)

使用命令phpinfo()时,这是Symfony控制器中函数php app/console server:run的输出:

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时,它使用" global"配置文件。

3 个答案:

答案 0 :(得分:1)

记录下来(以及所有像我这样通过Google搜索到达这里的迷路者):

Symfony控制台本身不是程序。这只是一个PHP脚本。因此,当您运行Symfony控制台时,它没有自己的php.ini或扩展目录或其他配置-它使用与所有其他PHP脚本相同的设置。(除非在运行时被覆盖-实际上可能是原始问题的情况。)

答案 1 :(得分:0)

此问题的解决方法是将虚拟环境的php.ini文件移动到etc目录中名为php的子目录。 e.g:

移动文件~/.virtphp/envs/my-env/etc/php.ini

~/.virtphp/envs/my-env/etc/php/php.ini

答案 2 :(得分:-1)

将文件放在您的网络目录中。用浏览器打开它并搜索将为您提供正确文件的php.ini。如果您在配置目录(cli,fpm,apache等)中看起来很直接,可能会有几个文件