Знайдіть правильний файл php.ini


168

Наразі я намагаюся знайти правильний файл php.ini, щоб відредагувати його та перезапустити apache, щоб зміни відбулися, і я заткнувся.

Я знайшов три різні файли php.ini (не знаю, чому їх три). Ось як я знайшов файли

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

Я теж робив….

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

Я змінив їх усіх (просто напевне) на налаштування, які хотів.

Я перезапустив апаш за допомогою

sudo service apache2 restart

Результати...

* Restarting web server apache2

Я перезавантажив сторінку, і це показало, що файл php.ini не оновлювався.

Я це знаю, бо використовував

echo ini_get('post_max_size');

Який повинен був бути змінений на 20М, але все ще був лише 2М

Я спробував перезавантажити комп'ютер, думаючи, можливо, це зупинить сервер apache і перезавантажить файл php.ini з правильним налаштуванням, але, на жаль, ця спроба також не вдалася.

Чи є ймовірність, що може бути ще один файл php.ini, який може заважати?


6
"правильний" є у apache2підкаталозі
Джорен

1
використовувати updatedb; locate php.iniзамість find.
sjas

@Michael Файл знаходиться /etc/php/5.6/apache2/php.iniв Ubuntu 16.04 LTS Xenial Xerus, де 5.6/встановлена ​​версія php. Спочатку скопіюйте файл, php.original.iniа потім відкрийте його для редагування sudo gedit /etc/php/5.6/apache2/php.ini
Хедлі Палець

Відповіді:


288

Три наявні у вас файли призначені для різних цілей.

/etc/php/5.6/cli/php.iniпризначений для програми CLI PHP, яку ви знайшли, запустивши phpна терміналі.

/etc/php/5.6/cgi/php.ini призначений для системи php-cgi, яка спеціально не використовується в цій настройці.

/etc/php/5.6/apache2/php.iniпризначений для плагіна PHP, який використовується Apache. Це те, що вам потрібно відредагувати, щоб зміни, які слід застосувати для вашої установки Apache.

/etc/php/5.6/fpm/php.iniпризначений для php5-fpmпроцесора, який є сумісною швидкою технологією "обгортка" для обробки PHP (наприклад, для передачі з NGINX до php5-fpm) та працює як окремий процес у системі (на відміну від плагіна Apache PHP)

Для версій Ubuntu більш низьких , ніж 16.04, /etc/php/5.6/, /etc/php/7.0/, /etc/php/7.1/, і так далі, замінюються /etc/php5/і так далі. В іншому випадку ці шляхи залишаються точними. Відповідно адаптуйте це до свого оточення, замінивши 5.6або номер на фактичну папку версій, яка існує у вашому середовищі.


1
php.ini не знайдено в каталозі / etc / php5 / apache2. але він доступний там у каталогу cli.
Ануй ТБЕ

2
@ anujsharma9196 Єдина причина в тому, що ви не використовуєте вбудований плагін Apache для PHP. Шлях до файлів досі працює так, як зазначено тут до цього дня (підтверджено в моїй 15.04 VM)
Thomas Ward

21

Спробуйте запустити у своєму браузері сценарій, що містить цей фрагмент, <?php phpinfo(); ?>а потім спробуйте знайти щось на зразок Завантажений файл конфігурації . Цей запис визначає php.ini, який ваш PHP використовує на вашому сервері Apache.


14

Щоб знайти, який php.iniCLI використовується, ви можете запустити:

php -i | grep 'php.ini'

Приклад виводу:

$ 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

Це має бути прийнята відповідь!
Марсело Агіл

1
Це добре, але конфігурації, які завантажуються в кліп, надаються лише для php. Щоб отримати завантажені налаштування apache, потрібно зробити phpinfo () на веб-сторінці.
Діпу Радж

13

для php7 ubuntu 16.4

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

1
Мені не вистачає цього файлу. Який пакет надає цей файл?
galmok

призначений для php7 на ubuntu 16.4
Softmixt

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.