Tôi đang sử dụng virtphp để có môi trường riêng biệt (các phiên bản PHP khác nhau, tiện ích mở rộng, v.v.).Tệp php.ini nào sử dụng máy chủ symfony: chạy lệnh?
Khi tôi sử dụng lệnh của symfony để chạy một máy chủ phát triển địa phương:
php app/console server:run
Dường như nó bỏ qua các tập tin php.ini của môi trường ảo của tôi (~/.virtenv/envs/myenv/etc/php .ini), ví dụ: không tải các tiện ích mở rộng được xác định trong tệp đó.
Nhưng khi tôi sử dụng php built-in máy chủ trực tiếp, nó hoạt động một cách hoàn hảo:
php -S 127.0.0.1:8000 --docroot=web/
sự khác biệt của hai lệnh là gì hay những gì symfony làm khác?
Đây là kết quả của lệnh 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)
Đây là đầu ra của hàm phpinfo()
trong một bộ điều khiển Symfony khi sử dụng lệnh 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)
Lưu ý sự khác biệt trong " Tệp cấu hình được tải "... khi tôi sử dụng lệnh php --ini
, nó sẽ thay thế" Tệp cấu hình được tải "bằng một tệp trong môi trường ảo php của tôi và khi tôi sử dụng lệnh php app/console server:run
nó sử dụng tệp cấu hình "toàn cục".
'php -i' sẽ cho bạn biết những gì .ini file (s) đã được nạp –
Cảm ơn @MarcB thực hiện lệnh đó cho bạn thấy các tập tin .ini php sẽ tải là 'php --ini' ... nhưng đầu ra của các lệnh đó cho thấy rằng nó tải cả hai tệp php.ini" toàn cầu "và tệp php.ini trong môi trường ảo của tôi. – PachinSV
một số (nhưng không phải tất cả) chỉ thị .ini có thể được ghi đè lên lúc chạy với lệnh 'ini_set()'. 'php -S' không chạy bản giao hưởng trực tiếp, nó sẽ chỉ chờ đợi một yêu cầu http và THEN chạy bản giao hưởng. –