В этом уроке мы обсудим php.ini — основной файл конфигурации в PHP. С точки зрения начинающего, мы обсудим, для чего он предназначен, где его найти, и пару важных настроек конфигурации, которые он предоставляет.
Что такое php.ini ?
Если вы новичок в PHP или опытный разработчик, я уверен, что вы слышали о php.ini : самом важном файле конфигурации PHP.
Когда PHP запускается, он ищет файл php.ini в некоторых определенных местах и загружает его. Этот файл позволяет вам настроить несколько важных параметров, о которых вы должны знать. Довольно часто вы обнаружите, что вам нужно настроить параметры в файле php.ini .
С другой стороны, вполне возможно, что вам никогда не понадобилось изменять php.ini . PHP может успешно работать с настройками, предоставленными в файле php.ini по умолчанию, поскольку PHP поставляется с этими рекомендуемыми настройками по умолчанию. На самом деле, нет критических параметров конфигурации, которые вы должны установить для запуска PHP.
Однако файл php.ini содержит несколько важных настроек, с которыми вы хотите ознакомиться. На самом деле, как разработчик PHP, это неизбежно, и вы столкнетесь с этим раньше, чем позже.
Где находится php.ini?
В этом разделе мы увидим, как найти файл php.ini, который загружается при запуске сценария PHP. Это может быть непросто — расположение файла php.ini сильно зависит от среды, в которой вы используете PHP. Если вы работаете в Windows, вы, скорее всего, найдете файл php.ini в каталоге вашей установки PHP на системном диске. С другой стороны, если вы работаете в другой операционной системе, трудно угадать точное местоположение файла php.ini — есть несколько возможностей.
Здесь на phpinfo()
приходит функция phpinfo()
. Он скажет вам, где находится php.ini , а также выведет всю важную информацию о конфигурации PHP.
Вы можете запустить phpinfo()
, создав файл .php и вызвав эту функцию. Создайте файл phpinfo.php со следующим содержимым и поместите его в корневой каталог документа:
1
2
3
|
<?php
phpinfo();
?>
|
Загрузите этот файл в свой браузер, и вы должны увидеть вывод phpinfo()
. Посмотрите на следующий раздел.
Как видите, есть два раздела. Первый, путь к файлу конфигурации (php.ini) , указывает путь по умолчанию для файла php.ini в вашей системе. И второй, Loaded Configuration File , — это путь, из которого загружается файл php.ini при запуске PHP.
Таким образом, вы можете редактировать файл php.ini, указанный в разделе « Загруженный файл конфигурации », и это должно работать в большинстве случаев. Конечно, если вы используете PHP как модуль Apache, вам необходимо перезапустить сервер Apache, чтобы убедиться, что изменения, внесенные вами в файл php.ini , отражены.
С другой стороны, если вы используете программное обеспечение, такое как WAMP или XAMPP, для запуска стека веб-разработки, вам еще проще изменить файл php.ini — вы можете напрямую получить к нему доступ через пользовательский интерфейс WAMP или XAMPP.
В следующем разделе мы рассмотрим несколько важных настроек в файле php.ini .
Важные настройки в php.ini
Файл php.ini содержит множество директив конфигурации, которые позволяют вам изменять различные варианты поведения PHP. Фактически, когда вы открываете файл php.ini , вы можете быть поражены количеством директив, которые он предоставляет. Я постараюсь сгруппировать их по их поведению и надеюсь, что вам будет легко понять.
Конечно, мы не будем проходить каждую директиву, но я постараюсь охватить наиболее важные из них. Давайте посмотрим на типы директив, которые мы собираемся обсудить.
- директивы по обработке ошибок
- директивы загрузки файлов
- директивы, связанные с безопасностью
- директивы сессии
- разные директивы
Директивы по обработке ошибок
В этом разделе мы рассмотрим директивы, связанные с обработкой ошибок и полезные для отладки во время разработки.
display_errors
Директива display_errors
позволяет вам контролировать, будут ли отображаться ошибки на экране во время выполнения скрипта. Вы можете установить его на On
если вы хотите, чтобы ошибки отображались на экране, и Off
если вы хотите отключить его. Важно, чтобы вы никогда не включали это на рабочем сайте — это замедлит работу вашего сайта и может дать хакерам ценные подсказки к уязвимостям безопасности вашего сайта.
error_reporting
Эта директива позволяет вам установить уровень сообщения об ошибках. В основном эта директива работает в сочетании с директивой display_errors
. Эта директива может принимать E_ALL
, E_NOTICE
, E_STRICT
и E_DEPRECATED
.
Вы можете установить его на E_ALL
если хотите отображать все типы ошибок, такие как фатальные ошибки, предупреждения, устаревшие функции и т. Д. Вы также можете комбинировать различные значения, если вы хотите отфильтровать конкретные ошибки. Например, если вы хотите отобразить все ошибки, кроме уведомлений, вы можете установить для него значение E_ALL & ~E_NOTICE
.
error_log
На производственном веб-сайте вам нужно убедиться, что PHP не отображает никаких ошибок в клиентском браузере. Вместо этого вы можете где-то регистрировать ошибки, чтобы потом можно было ссылаться на них, если с вашим сайтом что-то не так. Директива error_log
позволяет вам указать имя файла, в котором будут регистрироваться ошибки. Вы должны убедиться, что этот файл доступен для записи пользователю веб-сервера.
Директивы для загрузки файлов
В этом разделе мы увидим несколько важных директив, которые позволяют вам включить возможности загрузки файлов в ваших формах PHP.
file_uploads
Это логическая директива, которая позволяет разрешать загрузку файлов HTTP. Если вы установите значение « On
, Вы можете использовать поле «Файл» в своих формах, и пользователи смогут загружать файлы со своего компьютера. С другой стороны, если вы установите для этого параметра значение Off
, Загрузка файлов будет полностью отключена.
upload_max_filesize
Если вы включили функцию загрузки файлов на своем веб-сайте и столкнулись с трудностями при загрузке файлов, эту директиву следует проверить в первую очередь. Позволяет установить максимальный размер файла, который можно загрузить.
По умолчанию установлено значение 2 МБ, поэтому пользователи не могут загружать файлы размером более 2 МБ. Вы можете настроить это значение в соответствии с вашими требованиями — часто вы хотите увеличить это ограничение, чтобы разрешить загрузку больших файлов.
post_max_size
Этот параметр позволяет вам установить максимальный размер данных POST в ваших формах. Когда пользователь отправляет форму методом POST, общий размер данных POST не должен превышать значение, установленное в этой директиве.
Это должно быть больше, чем значение, которое вы установили в директиве upload_max_filesize
, поскольку загрузка файлов обрабатывается с помощью запросов POST.
Директивы по безопасности
В этом разделе мы увидим несколько важных директив, связанных с безопасностью.
allow_url_fopen
Директива allow_url_fopen
по умолчанию отключена. Но когда он включен, он позволяет удаленно включать файлы в функции файлов PHP. Это означает, что ваши PHP-файлы могут содержать код с других серверов. Будьте осторожны при включении этого — если ваш код подвергается атаке с помощью инъекций, удаленное включение файлов значительно облегчит злоумышленнику взлом вашего сервера.
allow_url_include
Директива allow_url_include
аналогична директиве allow_url_fopen
, но позволяет включить удаленное включение файлов в функции include
. Он позволяет включать удаленные файлы в функции include
, include_once
, require
и require_once
.
Если вы хотите включить эту директиву, вам необходимо убедиться, что вы также allow_url_fopen
директиву allow_url_fopen
.
Директивы Сессии
Управление сессиями является одним из наиболее важных аспектов при работе с PHP. В этом разделе мы рассмотрим пару важных директив сессии.
session.name
Директива session.name
позволяет вам установить имя cookie сессии. По умолчанию он имеет значение PHPSESSID
, но вы можете изменить его на что-то другое, используя эту директиву.
session.auto_start
Если вы установите значение директивы session.auto_start
равным 1
, сессионный модуль в PHP запускает сессию автоматически при каждом запросе, и, таким образом, вам не нужно использовать функцию session_start
в ваших скриптах.
session.cookie_lifetime
Директива session.cookie_lifetime
позволяет вам установить время жизни куки сессии. По умолчанию установлено значение 0 секунд, и это означает, что cookie сеанса удаляется при закрытии браузера. Это действительно полезная настройка, которая позволяет вам настроить функцию «помни меня», позволяя пользователям выбирать, где они остановились на вашем сайте.
Разные Директивы
В этом последнем разделе мы увидим несколько других директив, которые важны в контексте выполнения скрипта PHP.
memory_limit
Директива memory_limit
позволяет вам ограничить максимальный объем памяти, который скрипту разрешено использовать.
Вы хотите точно настроить эту директиву в соответствии с вашими требованиями, и вам не следует устанавливать ее слишком высоко, чтобы избежать перебоев с памятью на вашем сервере — плохо написанные или с ошибками скрипты могут поглотить всю память на вашем сервере, если вы позволите им!
max_execution_time
Директива max_execution_time
устанавливает максимальный промежуток времени, в течение которого скрипту разрешается запускаться до его завершения. Значение по умолчанию составляет 30 секунд, и вы можете увеличить его до разумного предела согласно вашим требованиям, если вам нужно.
Подобно директиве memory_limit
, вам не следует устанавливать это значение слишком высоким, чтобы избежать проблем на вашем сервере.
max_input_time
Директива max_input_time
позволяет установить максимальное время, в течение которого скрипту разрешается анализировать входящие данные формы из GET или POST.
Если на вашем веб-сайте есть формы, которые предоставляют большой объем данных, вы можете увеличить значение этой директивы.
Вывод
Невозможно охватить каждую директиву в одной статье, но я попытался охватить важные. Не стесняйтесь размещать ваши запросы, если вы хотите узнать о каких-либо конкретных директивах, и я буду рад помочь!
Как разработчику PHP, важно, чтобы вы понимали различные директивы в файле php.ini , и это должно помочь вам настроить вашу конфигурацию PHP под ваши требования.
Лучшие PHP-скрипты на CodeCanyon
Изучите тысячи лучших и самых полезных PHP-скриптов, когда-либо созданных на CodeCanyon . С помощью недорогой разовой оплаты вы можете приобрести эти высококачественные темы WordPress и улучшить работу своего сайта для себя и своих посетителей.
Вот несколько самых продаваемых и новых PHP-скриптов, доступных в CodeCanyon на 2020 год.