Tìm tệp php.ini chính xác


169

Tôi hiện đang cố gắng xác định vị trí tệp php.ini chính xác để chỉnh sửa tệp và khởi động lại apache để các thay đổi sẽ diễn ra và tôi bị bối rối.

Tôi đã tìm thấy ba tệp php.ini khác nhau (không biết tại sao có ba tệp) đây là cách tôi tìm thấy các tệp

$ sudo find / -name php.ini
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini

Tôi cũng đã làm ....

$ sudo php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

Tôi đã thay đổi tất cả chúng (chỉ để chắc chắn) thành cài đặt tôi muốn.

Tôi đã khởi động lại apache bằng cách sử dụng

sudo service apache2 restart

Kết quả...

* Restarting web server apache2

Tôi đã tải lại trang và nó cho thấy rằng tệp php.ini không được cập nhật.

Tôi biết điều này bởi vì tôi đã sử dụng

echo ini_get('post_max_size');

Được cho là thay đổi thành 20 triệu nhưng vẫn chỉ là 2 triệu

Tôi đã thử khởi động lại máy tính với suy nghĩ có thể điều đó sẽ dừng máy chủ apache và tải lại tệp php.ini với cài đặt chính xác, nhưng than ôi, lần thử đó cũng thất bại.

Có bất kỳ cơ hội nào có thể có một tệp php.ini khác có thể can thiệp không?


6
một 'chính xác' nằm trong apache2thư mục con
Joren

1
sử dụng updatedb; locate php.inithay vì find.
sjas

@Michael Tập tin nằm /etc/php/5.6/apache2/php.initrong Ubuntu 16.04 LTS Xenial Xerus, 5.6/phiên bản php được cài đặt. Đầu tiên sao chép tệp để php.original.inisau đó mở để chỉnh sửa với sudo gedit /etc/php/5.6/apache2/php.ini
Hedley Finger

Câu trả lời:


289

Ba tập tin bạn có có mỗi mục đích cho các mục đích sử dụng khác nhau.

/etc/php/5.6/cli/php.inidành cho chương trình CLI PHP mà bạn đã tìm thấy bằng cách chạy phptrên thiết bị đầu cuối.

/etc/php/5.6/cgi/php.ini dành cho hệ thống php-cgi không được sử dụng cụ thể trong thiết lập này.

/etc/php/5.6/apache2/php.inidành cho plugin PHP được sử dụng bởi Apache. Đây là cái bạn cần chỉnh sửa để thay đổi được áp dụng cho thiết lập Apache của bạn.

/etc/php/5.6/fpm/php.inidành cho php5-fpmbộ xử lý, đây là một 'trình bao bọc' tương thích nhanh để xử lý PHP (chẳng hạn như chuyển từ NGINX sang php5-fpm) và chạy như một quy trình độc lập trên hệ thống (không giống như plugin Apache PHP)

Đối với phiên bản của Ubuntu thấp hơn 16,04, /etc/php/5.6/, /etc/php/7.0/, /etc/php/7.1/, và như vậy, được thay thế bằng /etc/php5/và vân vân. Mặt khác, những đường dẫn này vẫn chính xác. Điều chỉnh phù hợp với môi trường của bạn, thay thế 5.6hoặc số bằng thư mục phiên bản thực sự tồn tại trên môi trường của bạn.


1
Không tìm thấy php.ini trong thư mục / etc / php5 / apache2. nhưng nó có sẵn trong thư mục cli.
Anuj TBE

2
@ anujsharma9196 Lý do duy nhất có thể xảy ra là nếu bạn không sử dụng plugin xây dựng Apache cho PHP. Đường dẫn tệp vẫn hoạt động như được liệt kê ở đây cho đến ngày hôm nay (được xác nhận trên máy ảo 15.04 của tôi)
Thomas Ward

21

Hãy thử chạy tập lệnh chứa đoạn mã này trong trình duyệt của bạn <?php phpinfo(); ?>và sau đó thử tìm kiếm một cái gì đó như Tệp cấu hình đã tải . Mục này chỉ định php.ini mà PHP của bạn sử dụng trong máy chủ Apache của bạn.


14

Để tìm php.iniCLI đang sử dụng, bạn có thể chạy:

php -i | grep 'php.ini'

Ví dụ đầu ra:

$ php -i | grep 'php.ini'

Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini

Đây phải là câu trả lời được chấp nhận!
Marcelo Ágil

1
Điều này là tốt, nhưng sẽ chỉ cung cấp các cấu hình được tải cli cho php. Để có được cấu hình apache được tải, nó cần phải thực hiện phpinfo () trên một trang web.
Dipu Raj

13

cho php7 ubfox 16.4

/etc/php/7.0/apache2/php.ini

1
Tôi đang thiếu tập tin đó. Gói nào đang cung cấp tệp đó?
galmok

dành cho php7 trên Ubuntu 16.4
Softmixt

1

Bạn có thể tìm thấy tệp đang được sử dụng bằng cách chạy tệp này trên thiết bị đầu cuối:

php --ini
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.