Что такое php ini

Настройка файла php.ini

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

По умолчанию во время выполнения скрипта функция вывода ошибок на экран отключена. Поэтому, чтобы выводить сообщения об ошибках вместе с остальным выводом PHP-скрипта, включите опцию display_errors. Для этого введите:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Изменения конфигурации PHP с помощью php.ini и phpinfo()

phpinfo(): получить информацию о PHP

Функция phpinfo() проста в использовании. Создайте PHP-файл на своем сервере и разместите в нем вызов этой функции:

Затем заходите на эту страницу через браузер. И все.

Много информации

Что такое php ini. Смотреть фото Что такое php ini. Смотреть картинку Что такое php ini. Картинка про Что такое php ini. Фото Что такое php ini

Настройка PHP: Как работает php.ini

Подобные файлы очень похожи. Они включают в себя ряд значений, установленных в строках. Например:

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

Значения параметров конфигурации PHP, полезные для WordPress разработчиков

Примечания относительно редакторов, прав доступа и перезагрузки сервера

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

Что такое php ini. Смотреть фото Что такое php ini. Смотреть картинку Что такое php ini. Картинка про Что такое php ini. Фото Что такое php ini

Открытие без sudo приводит к выводу предупреждения о запрете на запись и невозможности сохранить изменения
Для редактирования nano — лучший текстовый редактор. Все его горячие сочетания клавиш прописаны на экране. Поэтому я часто редактирую файл php.ini на удаленном сервере с помощью команды:

Конфигурация с помощью php.ini и phpinfo()

Пожалуйста, опубликуйте ваши комментарии по текущей теме статьи. За комментарии, дизлайки, отклики, подписки, лайки огромное вам спасибо!

Пожалуйста, опубликуйте ваши комментарии по текущей теме статьи. За комментарии, подписки, лайки, отклики, дизлайки низкий вам поклон!

Источник

Файл конфигурации PHP (php.ini)

Описание встроенных директив файла php.ini

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

ИмяПо умолчанию
async_send«0»

Опции языка и прочих настроек

ИмяПо умолчаниюПримечания
short_open_tag«1»
asp_tags«0»
precision«14»
y2k_compliance«1»
allow_call_time_pass_reference«1»Доступна с версии PHP 4.0.0.
expose_php«1»Только php.ini
zend.ze1_compatibility_mode«0»Доступна с версии PHP 5.0.0.

Краткое разъяснение конфигурационных директив.

Замечание: Поддержка тегов в стиле ASP выла добавлена в версии PHP 3.0.4.

Количество значащих цифр, отображаемых для десятичных дробей.

Включение совместимости с 2000 годом (создаст проблемы с несовместимыми браузерами).

Включена ли возможность жёсткой передачи аргументов по ссылке во время вызова функции. Этот метод является устаревшим и скорее всего не будет поддерживаться будущими версиями PHP/Zend. Рекоммендуемым методом указания, какие аргументы должны быть переданы по ссылке, является указание этого при объявлении функции. Вам рекоммендуется попытаться отключить эту опцию, чтобы убедиться, что ваши скрипты будут правильно работают без неё и что они будут работать с будущими версиями языка (вы будете получать предупреждение каждый раз, когда вы будете пользоваться этим методом, и аргументы будут передаваться по значению, а не по ссылке).

Передача аргументов по ссылке во время вызова функции была объявлена устаревшей из соображений чистоты кода. Функция может менять свои аргументы недокументированным способом, если бы не требовалось объявление передачи аргумента по ссылке. Чтобы избежать побочных эффектов, лучше явно указывать, какие аргументы передаются по ссылке только при объявлении функции.

Определяет, разрешено ли PHP выдавать факт своего присутствия на сервере (например, добавляя свою подпись в заголовок веб-сервера). Ни в коей мере это не является угрозой безопасности, но это даёт возможность определить, используете ли вы PHP на своём сервере.

Включает режим совместимости с Zend Engine 1 (PHP 4). Это влияет на клонирование, приведение типов и сравнение объектов

ИмяПо умолчанию
memory_limit«8M»

Краткое разъяснение конфигурационных директив.

Конфигурационные опции обработки данных

ИмяПо умолчаниюПримечания
track_vars«On»
arg_separator.output«&»
arg_separator.input«&»
variables_order«EGPCS»
register_globals«0»
register_argc_argv«1»
register_long_arrays«1»Доступна с версии PHP 5.0.0.
post_max_size«8M»Доступна с версии PHP 4.0.3.
gpc_order«GPC»
auto_prepend_fileNULL
auto_append_fileNULL
default_mimetype«text/html»
default_charset«»
always_populate_raw_post_data«0»Доступна с версии PHP 4.1.0.
allow_webdav_methods«0»

Краткое разъяснение конфигурационных директив.

Обратите внимание, что начиная с версии PHP 4.0.3, track_vars всегда включена.

Этот разделитель используется в генерируемых PHP URL’ах в качестве разделителя аргументов.

Список разделителей, используемых PHP для получения переменных из URL’ов.

Замечание: Каждый символ в этой директиве считается разделителем!

Устанавливает порядок обработки переменных EGPCS (Environment, GET, POST, Cookie, Server). Значением по умолчанию для этой директивы является «EGPCS». Установка её в «GP», к примеру, заставит PHP полностью игнорировать переменные окружения, cookie и сервера, а так же перезаписать любую GET-переменную POST-переменной с таким же именем.

Когда включено, переменные SERVER и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведёт к росту производительности.

Директивы PHP register_globals, register_long_arrays и register_argc_argv должны быть выключены для того, чтобы эта директива работала.

Регистрировать или нет переменные EGPCS (Environment, GET, POST, Cookie, Server) в качестве глобальных переменных.

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

Замечание: На поведение register_globals влияет директива variables_order.

Сообщает PHP, следует ли объявляеть переменные argv и argc (которые будут содержать GET-информацию).

См. также Использование PHP в командной строке. Эта директива стала доступна начиная с версии PHP 4.0.0 и до этого была всегда включена.

Эта директива стала доступна начиная с версии PHP 5.0.0.

Устанавливает максимальный допустимый размер POST-данных. Это свойство также влияет на закачиваемые файлы. Чтобы закачивать большие файлы, это значение должно быть выше upload_max_filesize.

Устанавливает порядок обработки переменных GET/POST/COOKIE. Значением по умолчанию для этой директивы является «GPC». Установка её в «GP», к примеру, приведёт к тому, что PHP будет полностью игнорировать cookies и перезапишет любую GET-переменную POST-переменной с таким же именем.

Замечание: Эта опция не доступна в PHP 4. Вместо неё используйте variables_order.

Специальное значение none отключает эту директиву.

Специальное значение none отключает эту директиву.

Начиная с версии 4.0b4, PHP всегда отправляет кодировку по умолчанию в заголовке Content-Type. Чтобы отключить отправку кодировки, просто установите её пустой строкой.

Разрешает обработку HTTP-запросов WebDAV при помощи PHP-скриптов (например PROPFIND, PROPPATCH, MOVE, COPY и т.д.). Эта директива не существует начиная с версии PHP 4.3.2. Если вы хотите получить POST-данные этих запросов, вы должны также включить always_populate_raw_post_data.

Конфигурационные Опции Путей и Директорий

ИмяПо умолчанию
include_path«.;/path/to/php/pear»
doc_rootNULL
user_dirNULL
extension_dir«/path/to/php»
cgi.fix_pathinfo«0»
cgi.force_redirect«1»
cgi.redirect_status_env«»
fastcgi.impersonate«0»
cgi.rfc2616_headers«0»

Краткое разъяснение конфигурационных директив.

Пример include_path в Unix

Пример include_path в Windows

«Корневая директория» PHP на этом сервере. Используется только в случае, если не пустая. Если PHP сконфигурирован с безопасный режим, файлы вне этой директории не обрабатываются. Если PHP не был скомпилирова с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect, речь о которой идёт ниже.

Which dynamically loadable extensions to load when PHP starts up.

Обеспечивает поддержку правильных PATH_INFO/PATH_TRANSLATED в CGI. Раньше PHP просто устанавливал PATH_TRANSLATED в SCRIPT_FILENAME и не обращал внимания на PATH_INFO. Для получения дополнительной информации о PATH_INFO, обратитесь к спецификации CGI. Установка этого значения в 1 заставит PHP CGI исправлять свой путь в соответствии со спецификацией. Значение 0 соответствует предыдущему поведению. По умолчанию установлен 0. Вы должны исправить свои скрипты так, чтобы они использовали SCRIPT_FILENAME вместо PATH_TRANSLATED.

Замечание: Пользователям Windows: Вы можете безопасно выключить её под IIS. Более того, вы должны это сделать. Чтобы заставить OmniHTTPD или Xitami работать, вы должны отключить эту директиву.

Если cgi.force_redirect включена и вы работаете не под веб-сервером Apache или Netscape (iPlanet), вам может понадобится установить переменную окружения, которую будет искать PHP чтобы убедится, что он может продолжать выполнение.

Сообщает PHP, какой тип заголовков использовать при отправке кода ответа HTTP. Если установлено в 0, PHP отправляет заголовок «Status:», который поддерживается Apache и другими веб-серверами. Если установлено в 1, PHP отправляет заголовок, соответствующий RFC 2616. Оставьте в значении 0, если вы не уверены в том, что это значит.

Конфигурационные Опции Закачивания Файлов

ИмяПо умолчаниюПримечания
file_uploads«1»Доступна с версии PHP 4.0.3.
upload_tmp_dirNULL
upload_max_filesize«2M»

Краткое разъяснение конфигурационных директив.

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

Максимальный размер закачиваемого файла.

Конфигурационные Опции Общего SQL

ИмяПо умолчанию
sql.safe_mode«0»

Краткое разъяснение конфигурационных директив.

Источник

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

Сайты на WordPress имеют ограничения на размер импортируемых данных. Например, вы не можете загрузить на сайт аудио и видеофайлы, которые превышают разрешенный хостером объем. Чтобы изменить этот параметр, понадобится доступ к файлу php.ini на сервере.

Для чего нужен файл php.ini для WordPress

Файл php.ini содержит настройки конфигурации для интерпретатора PHP, который обслуживает сервер. В этом файле задаются методы работы с данными, параметры безопасности системы и служебная информация, необходимая для корректной работы сервера, на котором располагается ваш сайт.

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

К примеру, хостер может ограничивать размер импортируемых на сервер данных. Допустимый размер загруженных файлов можно посмотреть в админке WordPress. Зайдите в меню «Медиафайлы» и выберите пункт «Добавить новый». Как правило, этот параметр задается хостером в интервале 2–128 Мб. При необходимости увеличения допустимого объема импортируемого файла, потребуется изменить соответствующий параметр в файле php.ini.

Что такое php ini. Смотреть фото Что такое php ini. Смотреть картинку Что такое php ini. Картинка про Что такое php ini. Фото Что такое php ini

Конфигурация файла php.ini, где он находится на хостинге

Прежде всего необходимо выяснить, где на сервере находится файл php.ini.

В результате в браузере показываются данные о версии PHP, используемой на хостинге, и сведения о его конфигурации. В графе Loaded Configuration File отображается путь к файлу php.ini на сервере хостера.

Что такое php ini. Смотреть фото Что такое php ini. Смотреть картинку Что такое php ini. Картинка про Что такое php ini. Фото Что такое php ini

Среди множества настроек проверьте значение трех параметров, которые определяют объем данных, импортируемых на сервер:

Что такое php ini. Смотреть фото Что такое php ini. Смотреть картинку Что такое php ini. Картинка про Что такое php ini. Фото Что такое php ini

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

Для увеличения допустимого объема данных, импортируемых на сайт, требуется скорректировать величину, задаваемую в директивах upload_max_filesize и post_max_size. В случае виртуального хостинга пользователь может не владеть полным доступом к глобальным настройкам сервера, чтобы провести подобную операцию. Как правило, полный доступ к этому файлу имеется на локальном сервере (Denwer, OpenServer) либо на VPS хостинге.

При наличии доступа откройте файл php.ini в режиме правки и задайте новые значения в директивах upload_max_filesize и post_max_size. При этом величина upload_max_filesize должна быть меньше, чем post_max_size, а величина post_max_size не должна быть выше memory_limit. Не забудьте выполнить бэкап сайта и сохранить резервную копию файла php.ini, прежде чем вносить правки.

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

Изменение файла user.ini, где он лежит

Что такое php ini. Смотреть фото Что такое php ini. Смотреть картинку Что такое php ini. Картинка про Что такое php ini. Фото Что такое php ini

Что такое php ini. Смотреть фото Что такое php ini. Смотреть картинку Что такое php ini. Картинка про Что такое php ini. Фото Что такое php ini

Если ничего не помогло

Важно понимать, что пользовательские настройки не имеют приоритета перед настройками сервера. Если используемый вами тарифный план ограничивает на сервере максимально разрешенный объем файла 50 мегабайтами, а вы запишете в директиву upload_max_filesize 500 мегабайт – этот вариант работать не будет.

Следует обратиться в службу технической поддержки хостинга:

iPipe – надёжный хостинг-провайдер с опытом работы более 15 лет.

Источник

Настройка PHP на хостинге через файл php.ini

Что такое php ini. Смотреть фото Что такое php ini. Смотреть картинку Что такое php ini. Картинка про Что такое php ini. Фото Что такое php iniЯ, конечно, не супер специалист во всяких делах, которые касаются настройки веб серверов, apache, php и всего прочего, поэтому так до сих пор и не завел себе отдельный сервак для проектов. Тем не менее, иногда в работе попадаются ситуации, когда приходится все же влезать в дебри и нюансы настроек – сегодня будет пост об одной из них. Предыстория достаточно тривиальная: занимался разработкой сайта на typo3 и там для работы с изображениями необходимо установить ImageMagick. Обращаюсь, значит к хостеру, они поставили, а оно почему-то все равно не работает. Потом нахожу запрещенную функцию exec, которая как раз для работы ImageMagick нужна – опять обращаюсь к хостеру. А тут еще сложная процедура общения, где я сначала пишу письмо в админке хостера, на него отвечают на почту клиенту и только потом я могу прочитать послание:)

В общем, кое-как 3 или даже 4 дня я помучался, после чего меня направлили на нужную страницу справки, где я нашел всю необходимую информацию. Как оказалось, я мог указывать для хостинга свои настройки PHP через файл php.ini, что, в принципе, было немного непривычно.

Итак, php.ini – это файл настроек и конфигурации PHP. В нем находится ряд директив, которые определяют различное поведение PHP, ну и, следовательно, сайта. Название файла должно быть именно таким, чтобы интерпретатор смог его найти. В интернете пишут, что он сначала ищет файл настроек php.ini в текущем каталоге, если его нет, то переходит в директорию, указанную в переменной окружения PHPRC, и в последнюю очередь проверят пусть, который задан при компиляции PHP. Как-то так, информация интересная, но больше теоретическая:)

Вернемся к реальным примерам. При работе с разными хостерами можно сказать у меня было несколько вариантов и нюансов настройки PHP.

1. Если в качестве админки используется cPanel, то там находим раздел «Конфигурация PHP», где опубликован перечень параметров PHP для хостинга. Иногда там можно поменять версию PHP, если сервер позволяет работать с 4 и 5 версиями.

Что такое php ini. Смотреть фото Что такое php ini. Смотреть картинку Что такое php ini. Картинка про Что такое php ini. Фото Что такое php ini

Возможно, cPanel и предоставляет варианты изменения настроек PHP (кроме версии), но мне пока такое не попадалось. Поэтому чаще всего я прибегал ко второму варианту.

2. Вполне логично для пользователя, который не очень во всем этом разбирается попросить помощи у хостера. Иногда это является единственным возможным решениям. Тут, видимо, многое зависит от конфигурации и принципов работы сервиса у разным компания – одни дают пользователям больше свободы, другие, наоборот, стараются контролировать все настройки.

3. Некоторые хостеры доверяют своим клиентам настолько, что позволяют использовать свои настройки в php.ini на серверах. Как я понимаю, ряд настроек PHP устанавливается по умолчанию, но местами возникают ситуации, когда для тех или иных систем, скриптов может понадобится дополнительная функциональность – как, например, в моем случае с функцией exec или когда речь идет о wordpress можно вспомнить переменную memory_limit.

На одном из хостеров, с которым работаю, нашел инструкцию как же все-таки можно переопределить некоторые настройки php.ini под свои нужды:

Далее создаем файл в папке /cgi-bin/php5.fcgi

Здесь /home/support/php.ini путь к вашему php.ini (конечно сам файл php.ini нужно будет там создать, убедитесь в правильности пути). После этого назначаем файлу php5.fcgi права 755 (chmod 755 php5.fcgi). Теперь обработка настроек PHP будет производится с учетом вашего файла php.ini.

К этой инструкции есть 2 уточнения. При создании файла php5.fcgi нужно использовать unix переводы строк т.е. n. И если возникает 500 ошибка, проверьте лог файл ошибок, где скорее всего найдете в чем проблема.

У меня лично работает! Внимание, пусть /home/accname/php/php.ini подставляете свой.

Ну и напоследок 2 настройки php.ini ради которых и пришлось «заморачиваться по полной»:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *