Когда я вношу какие-либо изменения в php.ini, расположенный в / usr / local / lib на centos, изменения не применяются, например, когда я очищаю все содержимое php.ini и перезапускаю Apache, все работает нормально. ..
Я искал php.ini, и он находится в одном месте в системе ... в чем проблема? Как я могу это исправить?
если вы не уверены, какой php.ini используется, создайте новый файл в своей веб-папке, назовите его phpinfo.php
например, со следующим содержанием
<?php
phpinfo();
?>
затем откройте URL-адрес в своем браузере (http://www.example.com/phpinfo.php). он покажет путь к используемому php.ini.
когда вы определили правильный файл, внесите желаемые изменения и обязательно удалите ведущие; в случае, если есть один, чтобы активировать настройку.
перезапустите apache и перезагрузите страницу phpinfo, теперь должны появиться ваши измененные настройки. в противном случае убедитесь, что в вашем корневом веб-каталоге нет файла .htaccess, который переопределяет настройки php.
Вы можете прочитать эти темы:
подсказки:
Следить за этим:
Создайте файл внутри своего корневого веб-сайта, назовите его как хотите. Я обычно предпочитаю x.php
# vim x.php
Содержимое файла должно быть таким:
<?php
phpinfo();
?>
Теперь откройте этот файл в своем браузере следующим образом:
http://server_ip/x.php
Это покажет вам расположение php.ini, которое использует ваш apache. Отредактируйте этот php.ini, и он будет работать.
Я обнаружил вопиющую ошибку в своем php.ini
файл, который вызвал именно этот симптом, например. некоторые настройки php.ini не вступили в силу ..
Начиная с php7.0, #
символ не является допустимым началом комментария. Только ;
принято. Но все же многие редакторы, например vim
, показать символы после "#
"в качестве комментариев, чтобы вы не осознали, что определенная часть файла php.ini не является игнорируемым комментарием.
В моем случае php.ini
поданный содержал это:
# ""
max_input_vars = 3000
В max_input_vars = 3000
не вступило в силу, потому что предыдущая строка не является комментарием. У него есть побочный эффект, из-за которого моя следующая строка игнорируется.
Изменив его на
; ""
max_input_vars = 3000
решил проблему.
у вас может быть файл php.ini в вашем корневом каталоге.
пока не могу комментировать здесь, но: Работает ли он, если вы сохраните изменения и перезапустите Apache?
Если это так, вероятно, причина в том, что PHP работает как модуль Apache.
Если вы хотите, чтобы изменения вступили в силу без перезапуска веб-сервера, используйте вместо этого php-cgi.
Эта страница объясняет установку и настройку; выполните поиск на странице "как модуль Apache" или "PHP 5 как двоичный файл CGI".