Php ini где лежит ubuntu

Обновлено: 03.07.2024

PHP – это серверный язык сценариев для быстрого построения динамических страниц. PHP используется многими блог-платформами и системами управления контентом (например, WordPress и Drupal). Также PHP является одним из компонентов программных стеков LAMP и LEMP.

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

Данное руководство научит просматривать и обновлять текущие настройки PHP.

Требования

  • Сервер Ubuntu 14.04.
  • Не-root пользователь с доступом к sudo (подробнее – здесь).
  • Базовые навыки редактирования файлов в Linux.
  • Предустановленный веб-сервер и PHP (например, стек LAMP).

Примечание: Данное руководство подходит для стеков LAMP и LEMP, WordPress, PHPMyAdmin, Magento, Joomla, Drupal, Mediawiki и ownCloud.

Данное руководство предназначено для Ubuntu 14.04. в других системах содержимое файла php.ini будет таким же, однако его местонахождение может отличаться.

Просмотр конфигураций PHP

Чтобы просмотреть текущие параметры PHP, создайте страницу с функцией phpinfo.

Сначала откройте каталог, в котором хранятся файлы сайта. К примеру, стандартным каталогом Apache на сервере Ubuntu 14.04 является /var/www/html/:

В этом каталоге создайте файл info.php:

sudo nano /var/www/html/info.php

Вставьте в него такой код:

Примечание: Иногда файл info.php хранится в каталоге сайта по умолчанию.

После этого посетите страницу info.php в браузере:

На экране появится страница, содержащая подробности окружения PHP, версию ОС, пути и значения параметров конфигурации.

Файл справа от строки Loaded Configuration File – это тот файл, который содержит текущие настройки PHP.

Данная страница отображает текущие параметры веб-сервера. При помощи функции поиска в браузере можно найти параметры post_max_size и upload_max_filesize, которые ограничивают размеры загружаемых файлов.

Изменение настроек PHP

Некоторым PHP-приложениям необходимо иметь возможность подгружать более объёмные файлы (например, темы и плагины для WordPress). Для этого нужно отредактировать php.ini:

sudo nano /etc/php5/apache2/php.ini

Примечание: В команде указан стандартный путь к файлу Apache в Ubuntu 14.04. В случае необходимости измените его.

За объём подгружаемых файлов отвечают параметры:

post_max_size = 8M
upload_max_filesize = 2M

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

post_max_size = 30M
upload_max_filesize = 30M

Также в файле можно изменить объём памяти, доступный PHP.

Директива max_execution_time определяет, сколько секунд может длиться процесс PHP:

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

Перезапустите веб-сервер, чтобы обновить настройки.

sudo service apache2 restart

Теперь создайте новую страницу info.php, чтобы убедиться, что настройки были приняты программой.

Примечание: Не забудьте удалить страницу после проверки.

Заключение

Многим приложениям на основе PHP не подходят стандартные параметры PHP. С помощью функции phpinfo конфигурации можно отладить согласно требованиям того или иного приложения.

Работа с файлами сайта, размещенного на хостинге или собственной виртуальной машине, рано или поздно приведет вас к файлу основных настроек языка PHP. Узнать, где лежит php ini, можно несколькими способами, которые зависят от операционной системы. Если вы уже используете хостинг на Windows или Linux, информация по поиску и использованию данного файла вам пригодится.

Расположение файла редко зависит от того, какой конструктор сайтов или оболочку вы используете. Вордпресс, Джумла и другие оболочки будут использовать стандартный php.ini, доступный в ОС сервера, либо тот, что поставляется вместе с инструментарием Denver.

Причины для поиска php.ini

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

Как найти данный файл

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

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

Основное правило при использовании Apache, Denver и других оболочек для виртуального сервера: вы фактически работаете с тем же Linux’ом, поэтому пути находятся стандартными для этой системы (и для самого PHP) способами, и, скорее всего, содержат соответствующие названия в именах папок. Если советы, касающиеся конкретных CMS, не помогли, просто ищите файл стандартным способом через создание страницы с phpinfo().

Ищем файл настроек PHP в популярных CMS


Даже пользователю-новичку может быть нужно найти, где находится php ini в Wordpress или Joomla. Эти CMS дружелюбны к новым пользователям, но изменения параметров PHP все равно могут потребоваться по разным причинам. Файл обычно располагается в \usr\local\php5 относительно корневой папки, которую вам предоставляет хостинг, или папки, которая является рабочей для вашего внутреннего сервера. Метод с созданием проверочного файла, описанный выше, отлично работает в этом случае. Сами CMS обычно не вносят изменения в расположение php ini.

Будьте внимательны, когда заказываете хостинг веб сайтов – в некоторых случаях провайдер может ограничить или запретить изменение важных файлов, в том числе конфигурационных файлов PHP. Если возникают проблемы с поиском или открытием файла, есть смысл обратиться в техподдержку хостинга напрямую и уточнить, какие возможности вам доступны. В работе с собственным виртуальным сервером на Denver/Apache вас никто не ограничивает.

Если вы работаете в CMS Bitrix, вы можете и не найти файл настроек PHP в привычных директориях. Файл php ini в Bitrix лежит в разных папках в зависимости от версии самого Битрикса, поэтому создавайте тестовую страничку из первого примера и узнавайте точный путь оттуда. На некоторых хостингах вы можете найти путь /home/login, но туда обычно загружаются собственноручно созданные файлы, исходник для которых берется из /home/login/etc.

Расположение php.ini в ОС Linux разных версий и сборок


ОС Linux считается самой подходящей системой для регулярной работы с хостингом, сайтами на PHP и сопутствующими процессами. Если вы имеете непосредственный доступ к файловой системе сервера (являетесь его владельцем, например), то ищите php.ini по адресам /etc/, /usr/local/lib или /usr/local/php/etc/ – это самые распространенные места. PHP Zend размещает ини файл в /usr/local/Zend/etc/, учтите это, если используете данную оболочку. Вы можете задать и обычный поиск файла в системе, но так вы не узнаете, какой из нескольких файлов php.ini реально используется в данный момент для задания настроек сервера и сайта.

Вряд ли сложным исключением станет сборка ОС на базе Ubuntu. Место, где лежит php.ini в Ubuntu, определяется через phpinfo() и зависит от того, какой именно тип сервера вы используете. Для Apache это может быть /etc/php5/apache2, например. Если файл вовсе не удается обнаружить, то его можно создать вручную или скопировать из другого места, но только если знаете примерную структуру файла.

Как настроить php.ini под свои потребности?

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

Вот некоторые из настроек, которые можно изменить, если владелец хостинга разрешает использовать php.ini и редактировать его самостоятельно:

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

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

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

В статье описана настройка параметров PHP на сервере с операционными системами Ubuntu или Debian.

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

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

Определить точное расположение файла php.ini можно с помощью скрипта phpinfo.php.

Создание phpinfo-скрипта

Подключитесь к серверу по SSH и выполните следующие действия:

1. Перейдите в директорию сайта:

2. Создайте файл phpinfo.php:

3. Добавьте в него следующее содержимое:

4. Сохраните изменения (нажать Ctrl+x для выхода из nano, далее Y для сохранения изменений и Enter).

Путь к конфигурационному файлу php.ini можно найти в строке Loaded Configuration File:


Настройка параметров

Рассмотрим настройку на примере параметра mbstring.func_overload.

1. Найдите нужный параметр в php.ini при помощи команды:

Ключ -n покажет, в какой строке расположена директива, чтобы можно было перейти сразу к ней.


В данном случае номер строки - 1704.

2. Откройте файл в текстовом редакторе, указав номер нужной строки :

3. Отредактируйте строку: уберите знак комментария (;) и измените значение на нужное вам:


В данном случае мы указываем 2:


4. Сохраните изменения: нажмите Ctrl+x для выхода из nano, далее Y для сохранения изменений и Enter.

Школа хостинга Редактор: Марина Долгова 117718 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, если нет особых требований у разработчиков сайта.


//Я бы так искал, а phpinfo путь к конфигу разве не говорит?

Hoodoo ★★★★★ ( 19.11.12 22:40:58 )
Последнее исправление: Hoodoo 19.11.12 22:41:45 (всего исправлений: 1)

ты под веществами?


Лучше: strace -f -e open

по теме /etc/php5/apache2/conf.d тоже может быть, что есть симлинк на /etc/php5/conf.d


Ну я с эстрейсом недавно познакомился. Спасибо.

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


Например, в конфиге вихоста и даже htaccess значение этой директивы может быть переопределено

ты что, не видишь какие слова пишешь?

это транскрипция, т-щ никсман из города эни

зачем писать транскрипцию, вместо того, чтоб по сабжу ответить? раз уж нечего сказать по существу, наверное лучше промолчать ;)


но у меня нет '/etc/php.ini'

Я тебе два раза задал вопрос, на который ты не ответил. Телепатические навыки, уж извини, у меня развиты слабо.

на оба твоих вопроса, у меня один вопрос: кто такой 'вихеста' ? =)

в дебианах конфиг пхп обычно такой:

/etc/php5/apache2/php.ini
в него инклюдятся
/etc/php5/apache2/conf.d/*

в других папках php.ini будет для CLI и других демонов.

Так же опции пхп могут быть заданы в настройках апача:

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

Еще один вариант: непосредственно в папке сайта прописывается .htaccess с такими параметрами, при условии что в конфиге апача разрешен AllowOverride.

Давай вывод:
grep -re 'display_errors' /etc/php5/apache2/*
grep -re 'display_errors' /etc/apache2/sites-enabled/*
grep -re 'display_errors' /var/www/*

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