Настройка PHP
PHP имеет множество настроек, которые может изменить Администратор или Пользователь ISPmanager. При этом набор значений зависит от режима работы. В режимах работы PHP «CGI», «FastCGI (Apache)» и «FastCGI (Nginx + PHP-FPM)» используются пользовательские значения. В режиме «Модуль Apache» — значения, указанные администратором. Если пользователь не изменял значение параметра, то вместо пользовательского значения переменной будет использоваться значение, указанное администратором.
Значения переменных выделены цветами:
- Красный — параметры, значения которых не определены в конфигурационном файле PHP и получены непосредственно от самого интерпретатора PHP.
- Зелёный — параметры, значения которых определены в глобальном конфигурационном файле PHP для администратора и в пользовательском для пользователя.
- Синий — параметры, значения которых не определены.
- Жёлтый — параметры, значения которых доступны пользователю только для чтения.
Изменение значений переменных
Чтобы изменить значение переменной:
-
Под администратором перейдите в Настройки web-сервера → PHP → Настройка. Под пользователем перейдите в WWW → PHP → Настройка.
Обратите внимание!
Администратор определяет значения каких переменных отображаются пользователям по умолчанию. Для настройки перейдите в Настройки web-сервера → PHP → Настройка, выберите переменную и нажмите Показать.
Глобальный конфигурационный файл настроек хранится в:
- CentOS: /etc/php.ini для нативной версии PHP и в /opt/ /etc/php.ini для альтернативных версий.
- Debian: для каждого режима работы PHP индивидуальный файл. /etc/php5/apache2/php.ini, /etc/php5/cgi/php.ini и /etc/php5/fpm/php.ini.
Пользовательские конфигурационные файлы хранятся в /var/www/ / /php.ini. Настройки, которые изменял пользователь, хранятся в этой же директории в конфигурационном файле изменённых параметров .php.ini.
Чтобы изменить пользовательские конфигурационные файлы вручную, отредактируйте файл php.ini и продублируйте изменения в файле /var/www/ /data/ /.php.ini.
Шаблон создания конфигурационных файлов
Файл /usr/local/mgr5/etc/templates/php.ini используется как шаблон создания пользовательских конфигурационных файлов. При создании нового пользователя настройки PHP для него изменяются в соответствии с шаблоном. По умолчанию шаблон содержит строки:
Шаблон пользовательских конфигурационных файлов
session.save_path = "$HOMEDIR/bin-tmp/" upload_tmp_dir = "$HOMEDIR/bin-tmp/" sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@example.com
$HOMEDIR — макрос, который при создании пользователя заменяется на его домашнюю директорию.
Обратите внимание!
Если вы хотите изменить шаблон, то сделать это нужно на мастер-сервере. Чтобы синхронизировать изменения с узлами кластера, выполните на каждом узле команду:
/usr/local/mgr5/sbin/mgrctl -m ispmgrnode exit
Применение настроек для режимов работы PHP «CGI» и «FastCGI (Apache)»
Если пользователь ISPmanager сохраняет изменения настроек PHP:
- Изменённые значения переменных записываются в конфигурационный файл изменённых параметров.
- Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
- Значения из конфигурационного файла изменённых параметров заменяют соответствующие значения в пользовательском конфигурационном файле.
Если администратор ISPmanager сохраняет изменения настроек PHP:
- Значения записываются в глобальный конфигурационный файл.
- Для каждого пользователя ISPmanager:
- Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
- Значения из конфигурационного файла изменённых параметров пользователя заменяют соответствующие значения в пользовательском конфигурационном файле.
Применение настроек для режима работы PHP «FastCGI (Nginx + PHP-FPM)»
Если пользователь ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в конфигурационный файл PHP-FPM пользователя соответствующей версии PHP.
Если администратор ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в глобальный конфигурационный файл PHP-FPM соответствующей версии PHP.
Применение настроек для режима работы PHP «модуль Apache»
Пользователь не имеет доступа к изменению настроек PHP для этого режима.
Если администратор ISPmanager сохраняет изменения настроек PHP, изменённые значения переменных записываются в глобальный конфигурационный файл модуля Apache соответствующей версии PHP.
Первоначальная настройка PHP
Чтобы упростить первоначальную настройку PHP основные параметры сгруппированы:
- Перейдите в Настройки web-сервера → PHP → Настройка → Основные.
- Выберите Временную зону, которая будет использоваться по умолчанию всеми функциями даты и времени. Указывается в переменной «date.timezone».
- Укажите Время выполнения PHP-скрипта в секундах. Если за это время загрузка скрипта не происходит, его работа завершается. Указывается в переменной «max_execution_time».
- Укажите ограничение на Макс. размер запроса в МиБ. Оно определяет максимально допустимый размер данных, отправляемых методом POST. Указывается в переменной «post_max_size».
- Укажите ограничение на Макс. размер файлов в МиБ. Оно определяет максимальный размер загружаемых с помощью PHP-скриптов файлов. Указывается в переменной «upload_max_filesize».
- Укажите Лимит памяти в МиБ. Он определяет максимальный объём оперативной памяти, который может использовать PHP-скрипт. Указывается в переменной «memory_limit».
- Чтобы выводить сообщения об ошибках вместе с остальным выводом PHP-скрипта, включите опцию display_errors. Рекомендуем использовать эту опцию только для отладки скриптов и отключать её после завершения работы.
- Чтобы ISPmanager вёл журнал работы PHP-скриптов, включите опцию log_errors. Настройте список ошибок, записываемых в журнал. Для этого включите опцию Вывод всех ошибок и в поле Выбор флагов для игнорирования при выводе ошибок выберите исключения, которые не будут записываться.
В конфигурационный файл php.ini добавляются строки вида: Конфигурационный файл php.ini
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT.E_ALL — включает вывод всех ошибок.& ~E_DEPRECATED & ~E_STRICT — исключаемые ошибки, указанные через «& ~».
Или отключите опцию Вывод всех ошибок и в поле Выбор флагов для вывода ошибок выберите ошибки, которые будут записываться в журнал.
В конфигурационный файл php.ini добавятся строки вида: Конфигурационный файл php.ini
error_reporting = E_ERROR | E_NOTICE_ERROR | E_NOTIC — журналируемые ошибки, указанные через » | «.
Восстановление значения переменной
Чтобы восстановить значение переменной под администратором:
- Нажмите Настройки web-сервера → PHP → Восстановить.
- Изменённое значение удаляется из глобального конфигурационного файла PHP.
- Для каждого пользователя ISPmanager:
- Содержимое пользовательского конфигурационного файла полностью заменяется на содержимое глобального файла.
- Значения из конфигурационного файла изменённых параметров пользователя заменяют соответствующие значения в пользовательском конфигурационном файле.
Чтобы восстановить значение переменной под пользователем:
- Нажмите WWW → PHP → Восстановить.
- Изменённое значение удаляется из пользовательского конфигурационного файла PHP.
В этой статье
- Изменение значений переменных
- Шаблон создания конфигурационных файлов
- Применение настроек для режимов работы PHP «CGI» и «FastCGI (Apache)»
- Применение настроек для режима работы PHP «FastCGI (Nginx + PHP-FPM)»
- Применение настроек для режима работы PHP «модуль Apache»
- Первоначальная настройка PHP
- Восстановление значения переменной
Настройка файла php.ini
PHP — это один из самых популярных языков программирования для создания сайтов и веб-приложений. На нем разработано множество готовых систем управления контентом для блогов, сайтов фирм или даже интернет-магазинов. Несмотря на то что у этого языка есть свои недостатки, он достаточно прост в освоении и поэтому очень часто используется для разработки новых сайтов.
Интерпретатор php может поставляться в виде модуля для Apache, выполнять скрипты из командной строки или в виде отдельного сервиса php-fpm. Эти сервисы отличаются своими возможностями, и предназначением, но для любого вида интерпретатора нужно задать базовые настройки, например, рабочая папка, включенные расширения, отображение ошибок и так далее. Все эти настройки задаются через файл php.ini. В этой инструкции мы рассмотрим как выполняется настройка файла php.ini в операционных системах Linux, хотя все информация подойдет и для Windows.
Если у вас еще не установлен интерпретатор языка программирования php, то вы можете ознакомиться со статьей установка lamp в Ubuntu 16.04.
Расположение и синтаксис php.ini
Для каждой версии интерпретатора конфигурационный файл php.ini находится в отдельной папке. Но все конфигурационные файлы находятся в папке /etc/php, например, /etc/php5:
Папка conf.d содержит общие настройки для различных расширений и модулей, они не будут нас сейчас интересовать. Более интересны следующие три папки — apache, cli и fpm. В них содержатся конфигурационные файлы php.ini для каждого из этих интерпретаторов.
Если вы собираетесь использовать несколько из этих интерпретаторов, то вам придется указывать настройки для каждого из них отдельно. Вы можете убедиться, что в каждой из папок лежит файл php.ini.
Что касается синтаксиса файла, то он разделен на секции, сначала идет секция настройки php, которая разделена на подсекции в зависимости от типа настроек, дальше идут секции настройки разных модулей. Синтаксис самих настроек очень прост, он соответствует привычному синтаксису ini файлов. Строка начинается с имени настройки, затем следует знак равно, а за ним значение:
имя_настройки = значение_параметра
Символами [] обозначается имя секции, например, [PHP], а символ ; означает комментарий, он и все символы после него не читаются интерпретатором. А теперь рассмотрим как выполняется настройка php.ini и переберем самые важные параметры.
Настройка файла php.ini
Для удобства ориентирования мы разобьем все параметры по категориях в зависимости от их назначения. Вам будет достаточно найти нужный параметр и изменить его значение. А теперь откройте файл настроек php, например, для модуля apache и перейдем к настройке. Чтобы избежать ошибок не добавляйте новые строки, а ищите уже существующие и изменяйте значения на нужные:
sudo gedit /etc/php5/apache/php.ini

Сначала идет немного информации о самом файле в виде комментариев, затем интересующие нас настройки.
Вывод ошибок в php
Настройка php 7 обычно начинается с конфигурации вывода ошибок. Все настройки вывода ошибок находятся в разделе Error handling and logging. По умолчанию вывод ошибок на экран во время выполнения скрипта отключен. Это сделано для того, чтобы пользователи не смогли увидеть ничего лишнего. Вместо этого, все ошибки записываются в лог файл. Если вы используете php на домашнем компьютере, то такие меры не нужны и вы можете сразу выводить все на экран:

Замените off на on. В php используются различные типы ошибок, например, критические, предупреждения, ошибки синтаксиса, с помощью строки error_reporting вы можете включить вывод только определенных типов ошибок:
error_reporting = E_ALL & ~E_DEPRECATED
Если нужно объединить несколько типов ошибок, то используйте символ &, а для отключения отображения поставьте перед типом знак ~. Приведенный выше пример отображает все ошибки (E_ALL), кроме сообщений об устаревших функциях (E_DEPRECATED). Вы можете отключить все типы использовав 0:
Включите запись ошибок php в лог файл, если не выводите их на экран:
Чтобы не засорять лог однотипными сообщениями можно игнорировать повторяющиеся ошибки в пределах одного исполнения:
Ограничения ресурсов

Если бы скрипты php никак не ограничивались в ресурсах, то они запросто могли бы перегрузить сервер и не дать ему нормально работать. Поэтому, по умолчанию php устанавливает жесткие ограничения, но, возможно, вам нужно будет их немного ослабить.
По умолчанию максимальное время выполнения скрипта — 30 секунд, сделаем минуту:
Если указать 0, то скрипт может выполняться бесконечно. Вы также можете ограничить время, на протяжении которого скрипт будет загружать данные, 60 секунд:
Максимальное количество переменных в GET и POST:
Следующий параметр задает максимальное количество памяти, которую может использовать один скрипт во время своего выполнения, в мегабайтах:
Максимальный размер данных, передаваемых в POST запросе тоже ограничивается, размер по умолчанию — 8 Мегабайт:
Вы можете ограничить область действия php в системе с помощью опции openbase_dir, она указывает папку, выше которой скрипт не может получить доступ к файловой системе:
С помощью директив disable_functions и disable_classes вы можете отключить использование в скриптах определенных функций или классов, например, это может быть полезно для веб-хостингов. В этом примере мы отключаем использование функции ini_set, которая позволяет менять настройки php из скрипта:
Директории по умолчанию

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

Для того чтобы пользователи могли загружать свои файлы на сервер, например, фото, нужно включить эту функцию в php:
Максимальный размер загружаемого файла:
Максимальное количество файлов, которые может загрузить один скрипт:
Настройка php.ini практически завершена, нам остались лишь расширения.
Настройка расширений
Расширения позволяют очень сильно увеличить функциональность php. Например, благодаря расширениям вы можете использовать в своих скриптах базы данных mysql, postgresql, mysqli, sqlite, графическую библиотеку gd и многое другое. Все это включается в этом разделе.
Для включения расширения достаточно убрать комментарий перед строкой с его командой, например:
extension=php_mysql.so
extension=php_mbstring.so
extension=php_pgsql.so
Обратите внимание, что для windows расширение будет иметь формат dll, но для linux нужно использовать so. В следующих секциях идет настройка каждого из расширений, но мы их рассматривать не будем потому что они обычно не требуют настройки.
Выводы
В этой статье мы рассмотрели как выполняется настройка php на сервере или обычном компьютере для разработки веб-сайтов. Файл настроек php имеет довольно простую структуру и с ним довольно не сложно справиться. После завершения всех настроек и сохранения изменений не забудьте перезагрузить веб-сервер или сервис php-fpm.
Вообще говоря, php-fpm это отдельная тема, потому что там есть много дополнительных настроек, и, возможно, мы рассмотрим его в одной из следующих статей. Если у вас остались вопросы, спрашивайте в комментариях!
Где найти файлы php.ini И my.cnf
Уважаемые форумчане, скачал виртуальную машину на virtualbox, и сразу столкнулся с проблемой, нужно подправить параметры mysql и php, в тех файлах которые идут по умолчанию в centos вношу изменения перезапускаю службы но потом смотрю что в битриксе они не поменялись. Спасибо за помощь)
Постоянный посетитель
Сообщений: 166 Баллов: 14 Регистрация: 12.02.2012
12.12.2014 11:01:48- MySQL — /etc/mysql/conf.d/z_bx_custom.cnf
- PHP — /etc/php.d/z_bx_custom.ini
- Apache — /etc/httpd/bx/conf/z_bx_custom.conf
Постоянный посетитель
Сообщений: 219 Баллов: 34 Регистрация: 01.06.2011
16.12.2014 11:27:35Цитата Евгений Гриневич написал:
Читайте официальные руководства там всё есть.
MySQL — /etc/mysql/conf.d/z_bx_custom.cnf
PHP — /etc/php.d/z_bx_custom.ini
Apache — /etc/httpd/bx/conf/z_bx_custom.confЭти файлы давно нашел, вношу в них изменения но битрикс показывает что нечего не поменялось и показывает старые параметры
Администратор
Сообщений: 1233 Баллов: 106 Регистрация: 27.11.2007
16.12.2014 11:40:14Цитата Евгений Гриневич написал:
Читайте официальные руководства там всё есть.
MySQL — /etc/mysql/conf.d/z_bx_custom.cnf
PHP — /etc/php.d/z_bx_custom.ini
Apache — /etc/httpd/bx/conf/z_bx_custom.confа рестарт MySQL, PHP и Apache делали?
Заглянувший
Сообщений: 4 Регистрация: 26.09.2008
27.05.2015 15:36:01Цитата Серге Кот написал:
Уважаемые форумчане, скачал виртуальную машину на virtualbox, и сразу столкнулся с проблемой, нужно подправить параметры mysql и php, в тех файлах которые идут по умолчанию в centos вношу изменения перезапускаю службы но потом смотрю что в битриксе они не поменялись. Спасибо за помощь)лежат они тут /etc/bvat/default
я так понимаю берется конфиг подходящий под текщие параметры сервера и копируется в /etc/mysql/conf.d/Постоянный посетитель
Сообщений: 297 Баллов: 25 Регистрация: 18.10.2016
05.06.2020 11:44:45Цитата Антон Вороханов написал:
лежат они тут /etc/bvat/defaultнет такого каталога
Посетитель
Сообщений: 33 Баллов: 5 Регистрация: 30.06.2016
26.10.2020 16:12:36где лежит php.ini на виртуальной машине bitrix 7.4.3
phpinfo() говорит что /etc/php.iniно изменение в нем ничего не дает
Сообщений: 1140 Баллов: 196 Регистрация: 15.05.2007
26.10.2020 16:24:06
Может рестартануть apache2/nginx нужно после изменений?
Администратор
Сообщений: 1233 Баллов: 106 Регистрация: 27.11.2007
27.10.2020 12:46:07
Постоянный посетитель
Сообщений: 109 Баллов: 10 Регистрация: 27.10.2007
28.05.2022 19:47:46
Та же проблема, что у топик стартера. Есть VMBitrix и есть ошибка при обновлении Битрикс:Цитата Для обновления продукта необходимо удалить настройку PHP mbstring.func_overload. Пожалуйста, внесите необходимые изменения или обратитесь в службу технической поддержки вашего хостинга.. Файла /etc/php.d/z_bx_custom.ini не обнаружил.
А, соответственно, если его создавать, то как указать отсутствующую директиву в пустом файле?) Или нужно разыскать текущий php.ini,
скопировать его сюда /etc/php.d/z_bx_custom.ini и закомментить в нем mbstring.func_overload ? (Если да, то сделал это, но в нем и так закомменчено http://joxi.ru/KAgJYnPi5LjZn2 )Сообщений: 232 Баллов: 58 Регистрация: 15.08.2017
28.05.2022 19:53:48Цитата Василий написал:
если его создавать, то как указать отсутствующую директиву в пустом файлеТак и указать
Выполнить в консоли:echo "mbstring.func_overload = 0" >> /etc/php.d/z_bx_custom.ini service httpd reload
Постоянный посетитель
Сообщений: 109 Баллов: 10 Регистрация: 27.10.2007
28.05.2022 20:36:16Все, получилось! Спасибо! Комментарий для ищущих — нужно не Удалить директиву, а установить ее на «0», т.е. если у вас тоже не было кастомного файла /etc/php.d/z_bx_custom.ini , то нужно его создать с одной строкой: mbstring.func_overload = 0 ( http://joxi.ru/DrlMzybfKw5qjm )
Посетитель
Сообщений: 33 Баллов: 5 Регистрация: 07.12.2021
08.02.2023 16:34:20Здравствуйте!
Есть вирт. машина битрикса, папки под сайты, в одной из которых разворачиваю бэкап. При распаковке архива мастер попросил подправить пару настроек. А именно: «Сайт работал в кодировке UTF-8. Конфигурация сервера не соответствует требованиям. Для продолжения установите настройки PHP: mbstring.func_overload=2 и mbstring.internal_encoding=UTF-8.» Посредством «гугления» и функции phpinfo понял, что мне нужен вроде бы файл php.ini — путь к нему /etc/php.ini. Допустим, я в нём пропишу требуемые настройки, но это же повлияет и на остальные сайты и они лягут или нет?
Или мне, как вопрошавшему выше, нужно создать по пути /etc/php.d/z_bx_custom.ini файл с требуемыми настройками? Но опять же как тогда система поймет, что это настройки именно для одного из сайтов?
Извиняюсь, если туманно объяснил, но пока я лишь вхожу в тему и с вирт. машинами вообще не работал.Сообщений: 232 Баллов: 58 Регистрация: 15.08.2017
08.02.2023 16:45:04Цитата Думаренок Александр написал:
что это настройки именно для одного из сайтов?Если нужно только для одного сайта, то в /etc/httpd/bx/conf/
Найти конфиг сайта в этой директории и добавить опции.php_admin_value mbstring.func_overload 2 php_admin_value mbstring.internal_encoding UTF-8
В конфигах уже есть несколько параметров с php_admin_value, можно добавить новые под ними.
После этого перезагрузить конфиг.service httpd reload
Посетитель
Сообщений: 33 Баллов: 5 Регистрация: 07.12.2021
08.02.2023 17:01:29Цитата Думаренок Александр написал:
что это настройки именно для одного из сайтов?Если нужно только для одного сайта, то в /etc/httpd/bx/conf/
Найти конфиг сайта в этой директории и добавить опции.php_admin_value mbstring.func_overload 2 php_admin_value mbstring.internal_encoding UTF-8
В конфигах уже есть несколько параметров с php_admin_value, можно добавить новые под ними.
После этого перезагрузить конфиг.service httpd reload
спасибо, добрый человек!)
Например, по указанному пути нашел требуемый файл, нашел место с php_admin_value и дописал там требуемое, а сейчас самый главный вопрос от нуба, как сделать безболезненно service httpd reload ?)) Заранее спасибо за ответ!Как узнать конфигурацию PHP?
Для установки WebAsyst и решения различных технических проблем бывает необходимо знать текущую конфигурацию интерпретатора PHP. Для получения этой информации можно воспользоваться PHP-функцией phpinfo(), отображающей такие параметры в виде таблицы, как описано ниже:
-
Создайте файл с расширением .php следующего содержания, например, info.php:
phpinfo();
?>
- Что такое «ключ базы данных»?
- Что такое WebAsyst Installer?
- Как изменить пароль для входа в Installer
- Цветовое обозначение прав доступа в WebAsyst Installer
- Кто такой «главный пользователь»?
- Для чего нужны разные данные доступа?
- В каких папках хранятся файлы, загруженные в аккаунт?
- В каких файлах хранятся параметры подключения к базе данных?
- Для чего нужен файл php.ini?
- Как узнать конфигурацию PHP?
- Как изменить параметр в конфигурации PHP?
- Как загрузить файлы на сервер по FTP?
- По FTP не виден файл .htaccess
- Добавление собственных записей в файл .htaccess
- Как проверить работу функции mail()?
- Как проверить работу mod_rewrite?
- Что такое chmod?
- Права доступа к файлам и директориям в UNIX-подобных системах
- Не могу удалить файлы с сервера
- Как убрать PHPSESSID=. из адресов страниц?
- Надпись «SMS запрещены» в аккаунте
- Перевод интерфейса аккаунта на другие языки
- Перевод интерфейса новых приложений WebAsyst
© 2003—2013 WebAsyst
WebAsyst®, Shop-Script®, You online®
являются зарегистрированными товарными знаками компании WebAsyst, LLC.
