我使用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"配置文件。
答案 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等)中看起来很直接,可能会有几个文件