2016-08-29 13 views
5

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".

+0

'php -i' sẽ cho bạn biết những gì .ini file (s) đã được nạp –

+0

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

+0

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. –

Trả lời

0

Một cách giải quyết cho vấn đề này là để di chuyển các tập tin php.ini của môi trường ảo của tôi đến một tiểu thư mục được gọi là php bên trong thư mục etc. ví dụ:

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

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

-1

Thả tệp trong thư mục web của bạn vào bên trong. Mở nó bằng trình duyệt của bạn và tìm kiếm php.ini sẽ cung cấp cho bạn tệp chính xác. Có thể có một số tác phẩm YF bạn nhìn directy trong thư mục cấu hình của bạn (cli, fpm, apache và vân vân)

Các vấn đề liên quan