PHP 7 – настройка файла PHP.INI

0 ∞

Конфигурационный файл php.ini является основным инструментом настройки ядра PHP. Он считается каждый раз при инициализации PHP. Если изменение не отображается, не забудьте остановить и перезапустить httpd. Если внесенные изменения до сих пор действуют, используйте функцию phpinfo(), чтобы проверить, php ini где лежит.

Файл конфигурации хорошо прокомментирован и подробно проработан. Параметры чувствительны к регистру, значения ключевых слов – нет; пробелы и строки, начинающиеся с точки с запятой, игнорируются. Логические значения могут быть представлены как 1/0, Yes/No, On/Off или True/False. Значения по умолчанию в php.ini повлияют на установку PHP, которую позже можно будет настроить.

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

  • short_open_tag = Off
  • safe_mode = Off
  • safe_mode_exec_dir = [DIR]
  • safe_mode_allowed_env_vars = [PHP_]
  • safe_mode_protected_env_vars = [LD_LIBRARY_PATH]
  • disable_functions = [function1, function2…]
  • max_execution_time = 30
  • error_reporting = E_ALL & ~E_NOTICE
  • error_prepend_string = [«»]
  • warn_plus_overloading = Off
  • variables_order = EGPCS
  • register_globals = Off
  • gpc_order = GPC
  • magic_quotes_gpc = On
  • magic_quotes_runtime = Off
  • magic_quotes_sybase = Off
  • auto-prepend-file = [path/to/file]
  • auto-append-file = [path/to/file]
  • include_path = [DIR]
  • doc_root = [DIR]
  • file_uploads = [on/off]
  • upload_tmp_dir = [DIR]
  • session.save-handler = files
  • ignore_user_abort = [On/Off]
  • mysql.default_host = hostname
  • mysql.default_user = username
  • mysql.default_password = password

Короткие открытые теги выглядят так: <? ?>. Для этого параметра должно быть установлено значение Off, если вы хотите использовать функции обработки XML.

Если этот параметр имеет значение ON, вероятно, вы скомпилировали PHP с флагом enable-safe-mode. Безопасный режим наиболее важен для использования CGI.

Эта опция имеет значение только в том случае, если включен безопасный режим. Она также может быть установлена с флагом —with-exec-dir во время процесса сборки Unix. PHP в безопасном режиме выполняет внешние двоичные файлы только из этого каталога. По умолчанию используется каталог /usr/local/bin. Это не имеет ничего общего с обслуживанием обычной PHP/HTML веб-страницы.

Эта опция php ini задает, какие переменные окружения пользователи могут изменить в безопасном режиме. По умолчанию, только те переменные, к которым добавлено «PHP_». Если эта директива пуста, то большинство переменных можно изменять.

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

Довольно полезным дополнением в конфигурации PHP4, которое сохранилось и в версии PHP5, является возможность отключения выбранных функций по соображениям безопасности. Раньше это требовало ручной правки кода на языке C, на котором был написан интерпретатор PHP. Функции файловой системы, операционной системы и сети должны быть первыми в этом списке, потому что возможность записи файлов и изменения системы через HTTP не является безопасным.

При настройке php ini нужно знать, что функция set_time_limit() не будет работать в безопасном режиме. Поэтому это основной способ реализовать задержку выполнения скрипта в безопасном режиме. В Windows вы должны выполнить принудительное завершение, основываясь на максимальном уровне потребляемой памяти, а не на времени. Также можно использовать настройку таймаута Apache для реализации задержки. Но она будет применена и к файлам сайта, не являющимся PHP.

Значением по умолчанию является E_ALL & ~E_NOTICE, все ошибки кроме уведомлений. Для серверов должно быть установлено, как минимум, значение по умолчанию. И только на основных серверах можно использовать меньшее значение.

Вместе с error_append_string этот параметр позволяет выделить сообщения об ошибках другим цветом.

Этот параметр выдает предупреждение, если оператор «+» используется со строками, как при формировании значения поля формы.

Заменяет gpc_order. Обе версии устарели вместе с register_globals. Он устанавливает порядок различных переменных: Environment, GET, POST, COOKIE и SERVER (или Built-in). Вы можете изменить этот порядок. Переменные будут последовательно перезаписаны слева направо, при этом самый правый всегда «выигрывает». Это означает, что если оставить значение по умолчанию и использовать одно имя для переменной среды, переменной POST и переменной COOKIE, то, в конце концов, имя будет принадлежать переменной COOKIE.

Этот параметр php ini set позволяет определить, нужно ли регистрировать переменные EGPCS как глобальные. В настоящее время этот способ устарел, и, начиная с PHP 4. 2, этот флаг по умолчанию установлен в значение Off. Вместо него используйте суперглобальные массивы.

Этот параметр устарел.

Экранирует кавычки во входящих данных GET/POST/COOKIE. Если вы используете много форм, которые отправляют данные сами себе или другим формам, и отображают значения форм, нужно активировать эту директиву или использовать функции addslashes() для данных строкового типа.

Этот параметр экранирует кавычки во входящих строках базы данных и текстовых строках. Помните, что SQL добавляет слеш в одинарные кавычки и апострофы при сохранении строк и не убирает их при возвращении строк. Если этот параметр выключен, необходимо использовать функцию stripslashes() при выводе любых типов строковых данных из БД SQL. Если для magic_quotes_sybase установлено значение On, то этот параметр должен быть Off.

Экранирует одиночные кавычки во входящих строках базы данных и текстовых строках с одиночными кавычками в стиле Sybase, а не обратным слешем. Если для параметра magic_quotes_runtime установлено значение On, данный параметр должен быть отключен.

Если в этом параметре php ini указан путь, PHP должен автоматически добавить конструкцию include() в начало каждого PHP-файла. Следует учитывать ограничения для путей включаемых файлов.

Если в этом параметре указан путь, PHP должен автоматически ввести конструкцию include() в конец каждого PHP-файла, кроме случаев, когда осуществляется выход с помощью функции exit (). Следует учитывать ограничения для путей включаемых файлов.

Если установить это значение, вам будет разрешено включать или запрашивать файлы только из указанных каталогов. Каталог include обычно находится под корневым документом. Это необходимо, если вы работаете в безопасном режиме. Установите для параметра значение .in, чтобы включить файлы из каталога, в котором находится ваш скрипт. Несколько каталогов разделяются двоеточиями: .:/usr/local/apache/htdocs:/usr/local/lib.

При настройке php ini если вы используете Apache, то в файле httpd.conf корневой каталог документа для этого сервера или виртуального хоста уже задан. Установите это значение здесь, если используете безопасный режим или хотите разрешить PHP только для части сайта (например, только в одном подкаталоге).

Активируйте этот флаг, если загружаете файлы с помощью PHP-скрипта.

Не удаляйте комментарии из этой строки, если не понимаете, что такое HTTP-загрузка!

За исключением редких случаев изменять этот параметр не нужно.

Определяет, что произойдет, если посетитель сайта нажмет в своем браузере кнопку «Остановить». По умолчанию установлено значение On, которое означает, что скрипт продолжит работать до завершения или таймаута. Если изменить значение данного параметра на Off, скрипт будет прерван. Этот параметр работает только в режиме модуля, а не в CGI.

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

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

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

МЛМария Логутенкоавтор-переводчик статьи «PHP 7 — PHP.INI File Configuration»

Дайте знать, что вы думаете по этой теме статьи в комментариях. За комментарии, подписки, лайки, отклики, дизлайки низкий вам поклон!

PHP 7 – настройка файла PHP.INI

0 ∞

Конфигурационный файл php.ini является основным инструментом настройки ядра PHP. Он считается каждый раз при инициализации PHP. Если изменение не отображается, не забудьте остановить и перезапустить httpd. Если внесенные изменения до сих пор действуют, используйте функцию phpinfo(), чтобы проверить, php ini где лежит.

Файл конфигурации хорошо прокомментирован и подробно проработан. Параметры чувствительны к регистру, значения ключевых слов – нет; пробелы и строки, начинающиеся с точки с запятой, игнорируются. Логические значения могут быть представлены как 1/0, Yes/No, On/Off или True/False. Значения по умолчанию в php.ini повлияют на установку PHP, которую позже можно будет настроить.

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

  • short_open_tag = Off
  • safe_mode = Off
  • safe_mode_exec_dir = [DIR]
  • safe_mode_allowed_env_vars = [PHP_]
  • safe_mode_protected_env_vars = [LD_LIBRARY_PATH]
  • disable_functions = [function1, function2…]
  • max_execution_time = 30
  • error_reporting = E_ALL & ~E_NOTICE
  • error_prepend_string = [«»]
  • warn_plus_overloading = Off
  • variables_order = EGPCS
  • register_globals = Off
  • gpc_order = GPC
  • magic_quotes_gpc = On
  • magic_quotes_runtime = Off
  • magic_quotes_sybase = Off
  • auto-prepend-file = [path/to/file]
  • auto-append-file = [path/to/file]
  • include_path = [DIR]
  • doc_root = [DIR]
  • file_uploads = [on/off]
  • upload_tmp_dir = [DIR]
  • session. save-handler = files
  • ignore_user_abort = [On/Off]
  • mysql.default_host = hostname
  • mysql.default_user = username
  • mysql.default_password = password

Короткие открытые теги выглядят так: <? ?>. Для этого параметра должно быть установлено значение Off, если вы хотите использовать функции обработки XML.

Если этот параметр имеет значение ON, вероятно, вы скомпилировали PHP с флагом enable-safe-mode. Безопасный режим наиболее важен для использования CGI.

Эта опция имеет значение только в том случае, если включен безопасный режим. Она также может быть установлена с флагом —with-exec-dir во время процесса сборки Unix. PHP в безопасном режиме выполняет внешние двоичные файлы только из этого каталога. По умолчанию используется каталог /usr/local/bin. Это не имеет ничего общего с обслуживанием обычной PHP/HTML веб-страницы.

Эта опция php ini задает, какие переменные окружения пользователи могут изменить в безопасном режиме. По умолчанию, только те переменные, к которым добавлено «PHP_». Если эта директива пуста, то большинство переменных можно изменять.

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

Довольно полезным дополнением в конфигурации PHP4, которое сохранилось и в версии PHP5, является возможность отключения выбранных функций по соображениям безопасности. Раньше это требовало ручной правки кода на языке C, на котором был написан интерпретатор PHP. Функции файловой системы, операционной системы и сети должны быть первыми в этом списке, потому что возможность записи файлов и изменения системы через HTTP не является безопасным.

При настройке php ini нужно знать, что функция set_time_limit() не будет работать в безопасном режиме. Поэтому это основной способ реализовать задержку выполнения скрипта в безопасном режиме. В Windows вы должны выполнить принудительное завершение, основываясь на максимальном уровне потребляемой памяти, а не на времени. Также можно использовать настройку таймаута Apache для реализации задержки. Но она будет применена и к файлам сайта, не являющимся PHP.

Значением по умолчанию является E_ALL & ~E_NOTICE, все ошибки кроме уведомлений. Для серверов должно быть установлено, как минимум, значение по умолчанию. И только на основных серверах можно использовать меньшее значение.

Вместе с error_append_string этот параметр позволяет выделить сообщения об ошибках другим цветом.

Этот параметр выдает предупреждение, если оператор «+» используется со строками, как при формировании значения поля формы.

Заменяет gpc_order. Обе версии устарели вместе с register_globals. Он устанавливает порядок различных переменных: Environment, GET, POST, COOKIE и SERVER (или Built-in). Вы можете изменить этот порядок. Переменные будут последовательно перезаписаны слева направо, при этом самый правый всегда «выигрывает». Это означает, что если оставить значение по умолчанию и использовать одно имя для переменной среды, переменной POST и переменной COOKIE, то, в конце концов, имя будет принадлежать переменной COOKIE.

Этот параметр php ini set позволяет определить, нужно ли регистрировать переменные EGPCS как глобальные. В настоящее время этот способ устарел, и, начиная с PHP 4.2, этот флаг по умолчанию установлен в значение Off. Вместо него используйте суперглобальные массивы.

Этот параметр устарел.

Экранирует кавычки во входящих данных GET/POST/COOKIE. Если вы используете много форм, которые отправляют данные сами себе или другим формам, и отображают значения форм, нужно активировать эту директиву или использовать функции addslashes() для данных строкового типа.

Этот параметр экранирует кавычки во входящих строках базы данных и текстовых строках. Помните, что SQL добавляет слеш в одинарные кавычки и апострофы при сохранении строк и не убирает их при возвращении строк. Если этот параметр выключен, необходимо использовать функцию stripslashes() при выводе любых типов строковых данных из БД SQL. Если для magic_quotes_sybase установлено значение On, то этот параметр должен быть Off.

Экранирует одиночные кавычки во входящих строках базы данных и текстовых строках с одиночными кавычками в стиле Sybase, а не обратным слешем. Если для параметра magic_quotes_runtime установлено значение On, данный параметр должен быть отключен.

Если в этом параметре php ini указан путь, PHP должен автоматически добавить конструкцию include() в начало каждого PHP-файла. Следует учитывать ограничения для путей включаемых файлов.

Если в этом параметре указан путь, PHP должен автоматически ввести конструкцию include() в конец каждого PHP-файла, кроме случаев, когда осуществляется выход с помощью функции exit (). Следует учитывать ограничения для путей включаемых файлов.

Если установить это значение, вам будет разрешено включать или запрашивать файлы только из указанных каталогов. Каталог include обычно находится под корневым документом. Это необходимо, если вы работаете в безопасном режиме. Установите для параметра значение .in, чтобы включить файлы из каталога, в котором находится ваш скрипт. Несколько каталогов разделяются двоеточиями: .:/usr/local/apache/htdocs:/usr/local/lib.

При настройке php ini если вы используете Apache, то в файле httpd.conf корневой каталог документа для этого сервера или виртуального хоста уже задан. Установите это значение здесь, если используете безопасный режим или хотите разрешить PHP только для части сайта (например, только в одном подкаталоге).

Активируйте этот флаг, если загружаете файлы с помощью PHP-скрипта.

Не удаляйте комментарии из этой строки, если не понимаете, что такое HTTP-загрузка!

За исключением редких случаев изменять этот параметр не нужно.

Определяет, что произойдет, если посетитель сайта нажмет в своем браузере кнопку «Остановить». По умолчанию установлено значение On, которое означает, что скрипт продолжит работать до завершения или таймаута. Если изменить значение данного параметра на Off, скрипт будет прерван. Этот параметр работает только в режиме модуля, а не в CGI.

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

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

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

МЛМария Логутенкоавтор-переводчик статьи «PHP 7 — PHP.INI File Configuration»

Дайте знать, что вы думаете по этой теме статьи в комментариях. За комментарии, подписки, лайки, отклики, дизлайки низкий вам поклон!

Настройки безопасности PHP.INI | Virtuozzo Dev Docs

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

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

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

Нажмите кнопку Config для вашего сервера Apache или NGINX. В появившейся вкладке перейдите в каталог etc и откройте файл php.ini .

Следуйте следующим инструкциям, чтобы применить необходимые настройки:

1. Добавьте следующую строку, чтобы отключить небезопасные функции :

disable_functions = phpinfo, system, mail, exec
Дополнительный безопасность можно получить, отключив следующие функции:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

это приемлемо для вашего приложения:

  • Максимальное время выполнения скрипта (в секундах) max_execution_time = 30
  • Максимальное время разбора данных запроса каждым скриптом max_input_time = 60
  • Максимальный размер загружаемого файла upload_max_filesize = 2M
  • Максимальный объем памяти скрипта (8MB) memory_limit = 8M (значение по умолчанию 128M, но допустимо установить меньшее значение, если оно не будет уменьшите производительность вашего приложения)
  • Максимальный размер данных POST, приемлемый для PHP post_max_size = 8M

3. Следующий список из функций может быть limited в случае, если они не нужны для вашего приложения:

  • Запретить загрузку файлов HTTP file_uploads = Off
  • Запретить отображение сообщений об ошибках PHP для конечных пользователей 9000 5 display_errors = Выкл.
  • Ограничение внешнего доступа к вашей среде PHP safe_mode_allowed_env_vars = PHP_
  • Ограничение отправки обратно информации PHP expose_php = Off
  • Отключить регистрацию глобальных переменных для входных данных register_globals = Off
  • Запретить открытие удаленных файлов allow_url_fopen = Off
  • 90 080

    4. Чтобы получить дополнительную информацию о состоянии безопасности, включить следующие функции :

    • Обеспечить правильность перенаправления PHP cgi. force_redirect = 0
    • Включить все возможные ошибки ведение журнала log_errors = On

    :

    • Включить безопасный режим safe_mode = On
    • Включить SQL безопасный режим sql.safe_mode = On

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

    • Конфигурация сервера приложений PHP

    Необходимые настройки PHP | Руководство разработчика Adobe Commerce

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

    См. системные требования для поддерживаемых версий PHP.

    Убедитесь, что PHP установлен

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

     
     1
     
     php -v
     

    Если PHP установлен, отображается сообщение, подобное следующему:

     
     1
    2
    3
     
     PHP 7.3.0 (cli) (построено: 14 августа 2019 г., 16:42:46) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.1.0, авторское право (c), 1998–2018 гг. Zend Technologies с Zend OPcache v7.1.6, авторское право (c), 1999–2018 гг., Zend Technologies
     

    Если PHP не установлен или требуется обновление версии, установите его, следуя инструкциям для вашей конкретной версии Linux. В CentOS могут потребоваться дополнительные шаги.

    Проверка установленных расширений

    Magento требует установки набора расширений:

    • доб-бкмат

    • доб-ктип

    • завиток

    • доб-дом

    • доб-гд

    • доб-хеш

    • доб-значок

    • доб-внутренний

    • доб-строка

    • доб-опенсл

    • доб-pdo_mysql

    • доб-симплексмл

    • доб-мыло

    • доб-xsl

    • ext-zip

    В командной строке введите:

     
     1
     
     php -м
     

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

    yum для установки PHP, модули PHP 7.3 можно добавить с помощью:

     
     1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     yum -y установить php73u
     -пдо php73u
     -mysqlnd php73u
     -opcache php73u
     -xmlphp73u
     -gd php73u
     -разработать php73u
     -mysql php73u
     -Интернет php73u
     -mbstringphp73u
     -bcmathphp73u
     -jsonphp73u
     -значок php73u
     -мыло
     

    Проверить настройки PHP

    • Установка системного часового пояса для PHP; в противном случае ошибки, подобные следующему отображению во время установки, и операции, связанные со временем, такие как cron, могут не работать:
     
     1
     
     Предупреждение PHP: date(): Небезопасно полагаться на системные настройки часового пояса.  [следует больше сообщений]
     
    • Установите лимит памяти PHP.

      Наши подробные рекомендации:

      • Компиляция кода или развертывание статических ресурсов, 756M
        • Установка и обновление компонентов Magento из Commerce Marketplace, 2G
        • Тестирование, ~3-4G
    • Включить opcache.save_comments , что требуется для Magento 2.1 и более поздних версий.

      Мы рекомендуем включить PHP OPcache из соображений производительности. OPcache включен во многих дистрибутивах PHP.

      Magento 2.1 и более поздние версии используют комментарии кода PHP для генерации кода.

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

    Шаг 1. Найдите файлы конфигурации PHP

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

    Найти

    файл конфигурации php.ini

    Чтобы найти конфигурацию веб-сервера, запустите файл phpinfo.php в веб-браузере и найдите загруженный файл конфигурации следующим образом:

    Чтобы найти конфигурацию командной строки PHP, введите

     
     1
     
     php --ini | grep "Загруженный файл конфигурации"
     

    Если у вас есть только один файл php.ini , внесите изменения в этот файл. Если у вас есть два файла php.ini , внесите изменения в

    все файлы . Невыполнение этого требования может привести к непредсказуемой производительности.

    Найти параметры конфигурации OPcache

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

    Используйте следующие рекомендации, чтобы найти его:

    • Веб-сервер Apache:

      Для Ubuntu с Apache настройки OPcache обычно находятся в

      php.ini .

      Для CentOS с Apache или nginx настройки OPcache обычно находятся в /etc/php.d/opcache.ini

      Если нет, используйте следующую команду, чтобы найти его:

       
       1
       
       sudo find / -name 'opcache.ini'
       
    • веб-сервер nginx с PHP-FPM: /etc/php/7.2/fpm/php.ini

    Если у вас есть несколько opcache.ini , измените их все.

    Шаг 2. Как установить параметры PHP

    Чтобы установить параметры PHP:

    1. Откройте файл php.
      ini
      в текстовом редакторе.
    2. Найдите часовой пояс вашего сервера в доступных настройках часового пояса
    3. Найдите следующий параметр и при необходимости раскомментируйте его:

       
       1
       
       дата.часовой пояс =
       
    4. Добавьте настройку часового пояса, найденную на шаге 2.
    5. Изменить значение memory_limit на одно из значений в начале этого раздела.

      Например,

       
       1
       
       memory_limit=2G
       
    6. Сохраните изменения и выйдите из текстового редактора.
    7. Откройте другой php.ini (если они разные) и внесите в него такие же изменения.

    Шаг 3. Установите параметры OPcache

    Установить opcache.ini опции:

    1. Откройте файл конфигурации OPcache в текстовом редакторе:

      • opcache.