Изменить файл php ini

Обновлено: 04.07.2024

Есть несколько директив Apache, которые позволяют вам изменить конфигурацию PHP посредством файлов конфигурации Apache. С директивами PHP_INI_ALL , PHP_INI_PERDIR и PHP_INI_SYSTEM можно ознакомиться в приложении Список директив php.ini.

php_value name value

Устанавливает значение указанной директивы. Может использоваться только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR . Для очистки предыдущих установленных значений используйте значение none .

Замечание: Не используйте php_value для установки логических значений. Вместо этого необходимо использовать php_flag (смотрите ниже).

Используется для установки директивам логических значений. Может быть использовано только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR .

php_admin_value name value

Устанавливает значение указанной директивы. Не может быть использовано в файлах .htaccess . Директивы любого типа, установленные с помощью php_admin_value не могут быть переопределены через .htaccess или ini_set() . Чтобы очистить предыдущее значение используйте значение none .

php_admin_flag name on|off

Используется для установки директивам логических значений. Не может быть использовано в файлах .htaccess . Директивы любого типа, установленные с помощью php_admin_flag не могут быть переопределены через .htaccess или ini_set() .

Изменение конфигурации PHP через реестр Windows

При использовании PHP в Windows значения конфигурации могут быть изменены на уровне директории посредством реестра Windows. Значения конфигурации хранятся в ключе реестра HKLM\SOFTWARE\PHP\Per Directory Values , в подключах, включающих полный путь. К примеру, значения конфигурации для директории c:\inetpub\wwwroot могут храниться в ключе HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot . Настройки для директории будут действительны для любых скриптов, запущенных из этой директории или её поддиректории. Значения ключа должны иметь название конфигурационной директивы PHP и строковое значение. PHP-константы в значениях игнорируются. Однако только значения конфигурации, изменяемые в PHP_INI_USER могут быть установлены таким образом, значения же PHP_INI_PERDIR не могут, потому что эти значения конфигурации перечитываются для каждого запроса.

Другие интерфейсы в PHP

Независимо от того, как вы запускаете PHP, вы можете изменять некоторые значения во время выполнения ваших скриптов c помощью ini_set() . Для более детальной информации смотрите документацию на странице функции ini_set() .

Если вам интересен полный список конфигурационных настроек вашей системы с текущими значениями, то вы можете запустить функцию phpinfo() и просмотреть результирующую страницу. Вы также можете получить доступ к значениям индивидуально сконфигурированных директив в процессе выполнения, используя ini_get() или get_cfg_var() .

Школа хостинга Редактор: Марина Долгова 117906 5 мин Аудио

Где находится php.ini?

Местонахождение файла php.ini зависит от операционной системы, на которой работает сервер хостинг-провайдера. Чтобы узнать где он находится выполняем 4 простых шага:

    Создаем php-файл (имя может быть любое, но мы берем для примера myphpinfo.php), и добавляем в него следующие строки:

Путь к файлу php.ini

Как настроить php.ini?

Файл php.ini имеет такие правила синтаксиса "директива = значение". Если вы хотите добавлять комментарии (например, в которых указываете на что влияет данная настройка), то делайте после точки с запятой (все, что идет после этого знака не учитывается как команда). Вот пример:

max_execution_time = 40 ; Максимальное кол-во секунд исполнения скрипта

Далее рассматриваем основные настройки, которые можно сделать в файле php.ini:

Общие настройки

PHPengine = On ; Работа PHP-скриптов включена.

short_open_tag = On ; Разрешает упрощенно обрамлять PHP-код тагами <?. Если будет значение Off, то PHP-код обрамлять в традиционные <?php.

asp_tags = On ; Включает возможность выделять PHP-код, как это делается в ASP - <% %>

Precision = 12 ; Указывает сколько цифр будет после запятой, у чисел с плавающей точкой.

output_buffering = 4096 ; Автоматически будет включена буферизация вывода, с размером буфера указанным после "равно".

safe_mode = On ; Безопасный режим.

safe_mode_allowed_env_vars = PHP_ ; Разрешает пользователю работать только с переменными окружения, которые начинаются с PHP_. Если эта директива будет пустой (не будет иметь значения), то пользователи смогут изменять любые переменные окружения. Это может очень плохо сказаться на защите сценариев.

safe_mode_protected_env_vars = LD_LIBRARY_PATH ; Запрещает изменять переменные, которые перечисляются через запятую.

disable_functions = ; После знака "равно" нужно через запятую записать функции, которые вы хотите отключить (обычно это делается для безопасности)

disable_classes = ; После знака "равно" нужно через запятую записать классы, вызов которых вы хотите запретить (обычно это делается для безопасности)

Ограничение ресурсов

max_execution_time = 40 ; Максимальное время на выполнение скрипта (в секундах)

max_input_time = 40 ; Максимальное время в секундах, которое дается скрипту может на обработку данных, которые загружаются.

memory_limit = 16M ; Максимум памяти, которые выделяется для работы одного скрипта

Обработка ошибок и журналы

error_reporting = E_ALL | E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE ; Указывает перечень ошибок, которые можно выводить.

display_errors = On; Разрешает выводить ошибки прямо в браузер (часто используют для удобства отладки).

display_startup_errors = On ; Ошибки появляющиеся при страрте PHP разрешено показывать.

log_errors = On ; Ошибки разрешено записывать в файл журнала.

log_errors_max_len = 1024 ; Максимальное число символов, которое может составлять длинна журнала.

error_log = filename ; Задается имя журнала ошибок.

Обработка данных

variables_order = "EGPCS" ; Устанавливает порядок, в котором PHP будет регистрировать перменные (E - встроенные переменные, G - GET переменные, P - POST переменные, C - Cookies, S - сессии). Если убрать любую из букв, то работа соответствующих переменных будет блокироваться.

register_globals = On ; Включает возможность для обращения к переменным, которые поступают через GET/POST/Cookie/сессии, как к обычным переменным (например "$имяпеременной").

register_argc_argv = On ; Разрешено создавать переменные $argv и $argc на основе информации из GET-метода.

post_max_size = 8M ; Устанавливает максимальный объём данных, который может быть принят.

magic_quotes_gpc = On ; Включает автоматическую обработку кавычек, которые поступают через POST/GET/Cookie.

auto_prepend_file = ; Содержимое файлов, указанных в этих директивах, PHP должен обрабатывать соответственно ДО выполнения сценария
auto_append_file = ; Содержимое файлов, указанных в этих директивах, PHP должен обрабатывать соответственно ПОСЛЕ выполнения сценария.

default_mimetype = "text/html" ; Задает кодировку для Content-type. По умолчанию будет использовано text/html без указания кодировки

doc_root = ; Задается корневая папка для PHP-сценариев.

extension_dir = "./" ; Задается папка, в которой будут хранится динамически загружаемые расширения.

Загрузка файлов

file_uploads = On ; Загрузка файлов на сервер разрешена.

upload_tmp_dir = ; Временная директория для файлов, которые загружаются.

upload_max_filesize = 2M ; Устанавливает максимальный размер файла, который можно загрузить.

Работа с сокетами

user_agent="PHP" ; Задается переменная USER_AGENT, когда происходит подключение через сокет.

default_socket_timeout = 30 ; Максимальное время на прослушивание сокета (секунды).

Сессии

session.save_handler = files ; Уазывает, что информацию о сессиях нужно хранить в файлах

session.save_path = /tmp ; После знака "равно" нужно указать путь к папке в которой будет храниться информация о сессиях (важно чтобы она папка уже существовала)

session.name = PHPSESSID ; Указывает на исользование в качестве имени сессии и сессионной cookie - ID сессии

session.auto_start = 0 ; Запрещает инициализировать сессии при начале соединения

session.cookie_lifetime = 0 ; Время жизни сессии ("0" - значит, что сессия живет, пока окно браузера не будет закрыто)

Динамические расширения

extension=modulename.extension ; Можно использовать чтобы загружать внешние модули. Для Windows-систем, обычно пишут - extension=msql.dll, а для
UNIX - extension=msql.so

Работа с модулями MySQL

mysql.allow_persistent = On ; Разрешает устойчивые MySQL-соединения.

mysql.max_persistent = -1 ; Задает сколько максимум может быть устойчивых MySQL-соединений. Если указать -1, то это будет значить, что ограничений нет.

mysql.max_links = -1 ; Задает сколько максимум может быть устойчивых MySQL-соединений, и неустойчивых ODBC-соединений. Если указать -1, то это будет значить, что ограничений нет.

mysql.default_port = ; Порт для функции mysql_connect.

mysql.default_socket = ; Имя сокета для локальных соединений MySQL.

mysql.default_host = ; Имя хоста для функции mysql_connect.

mysql.default_user = ; Имя пользователя.

Если вы создали собственный файл php.ini и поместили его в папке сайта

В таком случае, в целях безопасности нужно заблокировать доступ к нему для всех, кроме вас. Для этого необходимо в файле .htaccess прописать такой код:

Но будьте внимательны, т.к. при данных настройках, все директивы (php_value, php_flag и т.д.) касающиеся настроек php через файл .htaccess перестанут работать (будет выдаваться ошибка 500 Internal Server Error).

Важно! Если вы создаете собственный файл php.ini, то он будет действовать только на директорию в которой он находится.

Марина Долгова

Облачный хостинг

Обзоры и рейтинг лучших регистраторов доменных имен

Провайдеры с бесплатным тестовым периодом

Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.







От панели управления зависит ваше удобство в настройке хостинге\сайта.

Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.

Облачный хостинг - распределение нагрузки на несколько серверов, если сервер с вашим сайтом перегружен или не работает. Это гарантия того что пользователи в любом случае смогут видеть ваш сайт. Но это дорогая, более сложная опция, которую предоставляют далеко не все провайдеры.

Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.

VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.

Выделенный сервер - нужен для очень сложных и ресурсоемких проектов. Для вас выделяют отдельный сервер,мощность которого будете использовать только вы. Дорого и сложно настраивать.

Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.

  • Облачный хостинг
  • Виртуальный хостинг
  • VPS/VDS
  • Выделенный сервер
  • Размещение сервера
  • CDN

CMS - это система управления контентом сайта. Хостеры стараются для каждой из них делать отдельный тариф или упрощать установку. Но в целом это больше маркетинговые ходы, т.к. у большинства популярных CMS нет специальных требований к хостингу, а те что есть - поддерживаются на большинстве серверов.

Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера. С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).

Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).

Безлимитный хостинг - хостинг у которого отсутствуют лимиты на количество сайтов, БД и почтовых ящиков, трафик, дисковое пространство и т.д. Обычно это больше маркетинговый трюк, но можно найти что-то интересное для себя.

Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".

Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.

  • Абузоустойчивый хостинг
  • Безлимитный хостинг
  • Безопасный хостинг
  • Черный список
  • Защита от DDOS
  • Конструктор сайтов
  • Партнерские программы
  • Реселлинг хостинга

Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.

Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.

Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.

Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.

  • Дешёвый хостинг
  • Дешевый VPS-хостинг
  • Цена-Качество
  • Дорогой хостинг
  • Бесплатный хостинг
  • VPS/VDS посуточно

На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.

ОС - операционная система, установленная на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.

В статье мы рассмотрим основные директивы, которые могут пригодиться, чтобы настроить php.ini.

php.ini — это конфигурационный файл PHP. Синтаксис настроек этого файла прост:

Параметры чувствительны к регистру. Строки, которые начинаются с точки с запятой (;), игнорируются.

Обратите внимание! Чтобы избежать ошибок, не добавляйте новые строки. Ищите уже существующие и изменяйте значения на нужные.

Директивы для настройки использования ресурсов

Чтобы сервер не перегружался и мог нормально работать, в PHP устанавливаются ограничения для использующихся ресурсов. Иногда стандартные параметры не подходят для проекта и нужно сделать изменение php.ini.

Время выполнения скрипта. По умолчанию максимальное время выполнения скрипта ― 30 секунд. Чтобы установить другое, введите:

Где 60 ― количество секунд выполнения скрипта.

Если указать 0, скрипт будет выполняться бесконечно.

Максимальное время (в секундах), которое может потратить скрипт для обработки загружаемых данных. Для этого используйте директиву:

Объём памяти для одного скрипта (в МБ). Чтобы установить максимальный размер памяти, который может использовать один скрипт, введите:

Где 128 ― максимальный объём памяти в MБ.

Максимальный объём памяти, который может использовать один скрипт во время своего выполнения. Чтобы настроить, введите:

Где 128 ― объём памяти в МБ.

Максимальное количество переменных в GET и POST. Для этого введите директиву:

Где 1000 ― количество переменных.

Максимальный размер данных, который передаётся в POST-запросе. По умолчанию выставлен параметр ― 8 МБ. Чтобы его изменить, введите:

Где 9 ― максимальное количество МБ.

Ограничение области действия PHP в системе. Можно указать папку, выше которой скрипт не может получить доступ к файловой системе:

Где /var/www/ ― ограничивающая папка.

Директивы для вывода ошибок

В PHP есть разные виды ошибок: критические, ошибки синтаксиса и другие. Можно включить вывод только важных для вас типов ошибок. Для этого введите:

Где E_ALL ― вид ошибки, например E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, E_USER_ERROR , E_USER_WARNING, E_USER_NOTICE.

Чтобы объединить несколько типов ошибок, используйте символ &. Например:

Чтобы включить запись PHP-ошибок в лог, введите:

Если есть повторяющиеся ошибки в рамках одного исполнения, их можно игнорировать. Для этого введите:

Директивы для загрузки файлов

Часто нужно дать возможность пользователю загружать свои файлы на сервер (фото, документы, музыку). Чтобы включить эту функцию нужна настройка php.ini. Введите:

Если вы, наоборот, хотите запретить загрузку файлов, введите:

Если нужно установить максимальный размер загружаемого файла (в МБ), введите:

Если нужно установить максимальное количество файлов, которое может загрузить один скрипт, введите:

Директивы для обработки данных

Чтобы установить порядок регистрации переменных, введите:

Где GEPSC ― нужная вам последовательность.

  • GET ― G,
  • POST ― P,
  • Cookie ― C,
  • Environment ― E
  • Server ― S.

Чтобы разрешить или запретить создание переменных argv и argc на основе информации, полученной методом GET, введите:

Чтобы включить или отключить автоматическую обработку кавычек и апострофов в GET, POST и Cookie, введите:

webfanat вконтакте
webfanat youtube

php.ini php

php.ini php

Всем привет. В данной статье будут рассмотрены основные функции с помощью которых мы можем работать с конфигурационным файлом php.ini прямо из контекста документа. Поехали!

Для того чтобы получить все директивы из файла php.ini мы можем воспользоваться функцией ini_get_all():

Данная функция возвращает все директивы файла php.ini в виде ассоциативного массива.

Если мы хотим получить значение определенной директивы можно воспользоваться функцией ini_get():

Здесь мы получили значение директивы date.timezone файла php.ini Мы также можем изменять значения директив.

Здесь мы с помощью функции ini_set() установили для директивы date.timezone значение Europe/Minsk. Тут вы должны понимать что в самом файле php.ini при отработке данной функции ничего не меняется. Данная функция устанавливает новое значение директивы которое будет работать в контексте того документа где данная функция была вызвана. Если проще сказать то изменения директив с помощью функции ini_set() не сохраняются в самом php.ini

Если вы хотите изменить значение директивы файла php.ini и чтобы оно было сохранено в самом файле. Это придется сделать вручную перейдя в сам файл.

Есть функция благодаря которой вы можете отменять изменения внесенные с помощью ini_set() и восстанавливать значение директивы которое было по умолчанию:

Здесь мы с помощью функции ini_set() установили новое значение для директивы.

Однако далее мы использовали функцию ini_restore() которая восстанавливает прежнее состояние указанной директивы файла php.ini В результате у нас ничего не поменяется, так как заданные настройки ini_set() были сброшены функцией ini_restore().

Вот в принципе мы и рассмотрели все основные функции для работы с файлом php.ini

Напоследок я вам скажу что вы можете создавать свои собственные конфигурационные файлы с расширением ini и хранить там определенные настройки, константы и т. п.

Допустим мы создали свой конфигурационный файл my.ini и поместили туда следующие параметры:

С помощью знака решетки мы можем оставлять однострочные комментарии. Данный файл имеет очень простой формат записи. Мы просто пишем в каждой строчке название директивы и ее значение.

И теперь для того чтобы получить содержимое нашего конфигурационного файла my.ini . Нам достаточно воспользоваться функцией parse_ini_file().

Первый аргументом функции мы передаем путь до нашего конфигурационного файла. А вторым значение true.

В результате нам вернутся наши директивы и их значения в виде ассоциативного массива. Заметьте что в качестве значения on нам вернулась единица(1), а в качестве off пустая строка.

- Значение on в файле c расширением ini является истиной (true,1)

Вот и все что вы должны знать о функциях php с помощью которых мы можем взаимодействовать с файлами ini.

На этом дорогие друзья данная статья подошла к концу.

Я желаю вам успехов и удачи! Пока!

Оцените статью:

Статьи

Комментарии

Внимание. Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm

Читайте также: