Изменение значений в `php.ini` не вступает в силу в Nginx

#php #nginx #alibaba-cloud-ecs #easy-engine

#php #nginx #alibaba-cloud-ecs #простой движок

Вопрос:

Я использую Easyengine для сайта WordPress, и мне нужно загрузить большой файл на сервер, я знаю, что могу использовать FTP / SSH для этого, но в долгосрочной перспективе мне нужно, чтобы это было сделано через PHP, и текущее ограничение загрузки, которое я вижу, — это 100M при выполнении phpinfo();

В настройке используется PHP 7, а файл PHP INI , который я нашел, находится по адресу

etc/php/7.2/php.ini

Я внес изменения в эти части:

 upload_max_filesize = 2100M
post_max_size = 2100M
  

Но даже после этого предел загрузки составляет 100 м, как я вижу на обеих страницах плагинов WordPress, которые я использую, а также с phpinfo()

Я где-то читал, что Nginx необходимо перезапустить, что я и сделал ee site restart example.com , и перезапуск Nginx и PHP по-прежнему не дали эффекта.

В некоторых статьях предлагалось добавить правило /etc/nginx/nginx.conf , но, к сожалению, этот путь даже не существует, поэтому я создал этот файл по этому пути и попробовал, но все равно бесполезно.

Комментарии:

1. Вы перезапустили php-fpm ?

2. ee site restart Перезапуская как Nginx, так и PHP, я не видел ничего подобного php-fpm , я видел, как это упоминалось на других форумах, но при выполнении php-fpm command это ничего не дало.

Ответ №1:

Чтобы устранить вашу проблему, я бы предпринял следующие шаги:

  1. Проверьте свой php.ini путь, чтобы проверить, правильно ли вы редактируете

Чтобы найти ваш php.ini , создайте файл с именем info.php или любым другим именем в вашем webroot и добавьте следующее:

 <?php phpinfo();
  

Теперь зайдите в свой браузер и посетите: http:///test.php . На результирующей странице выполните поиск:

 Configuration File (php.ini) Path
  

Это покажет вам ваше php.ini местоположение

  1. Проверьте, не перезаписывает ли ваш PHP-скрипт ваши настройки с помощью ini_set()

  2. Проверьте, не перезаписаны ли ваши настройки в вашем pool.d файле конфигурации fpm.

    В большинстве конфигураций он находится по адресу

    /etc/php/*/fpm/pool.d/www.conf

  3. Убедитесь, что вы перезапустили php-fpm и nginx .

    Для этого

    перезапуск sudo /etc/init.d / php-fpm перезапуск sudo /etc/init.d / nginx

Комментарии:

1. 1. Адрес загруженного файла конфигурации есть /usr/local/etc/php/php.ini , но этот путь отсутствует в моей структуре каталогов, однако etc/php/7.2/php.ini это единственный ini файл 2. Нигде не ini_set() используется. 3. Где находится этот pool.d файл? 4. Запуск php-fpm на моем SSH ничего не приносит. Я перезапустил сам PHP.

2. @DeepakKamat Извините за задержку ответа. Я отредактировал свой ответ.

3. Возможно, вам потребуется включить версию php для перезапуска службы php-fpm, например sudo /etc/init.d/php7.4-fpm

Ответ №2:

Я также столкнулся с такой проблемой. Я редактировал неправильный файл, расположенный в /etc/php/8.0/cli/php.ini вместо правильного. Потому что nginx использует версию php-fpm. Итак, правильный файл был /etc/php/8.0/fpm/php.ini

И не забудьте завершить текущий процесс fpm с помощью команды sudo pkill php-fpm8.0. затем введите sudo service php8.0-fpm, чтобы запустить службу в обычном режиме.