Oc-windows.ru

IT Новости из мира ПК
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Configuration file php ini path

Настройка файла 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 вы можете включить вывод только определенных типов ошибок:

Если нужно объединить несколько типов ошибок, то используйте символ &, а для отключения отображения поставьте перед типом знак

. Приведенный выше пример отображает все ошибки (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 menuid guardant register

Директории по умолчанию

Файл настройки 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

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

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

    Создаем php-файл (имя может быть любое, но мы берем для примера myphpinfo.php), и добавляем в него следующие строки:

Как настроить php.ini?

Файл php.ini имеет такие правила синтаксиса «директива = значение». Если вы хотите добавлять комментарии (например, в которых указываете на что влияет данная настройка), то делайте после точки с запятой (все, что идет после этого знака не учитывается как команда). Вот пример:

max_execution_time = 40 ; Максимальное кол-во секунд исполнения скрипта

Далее рассматриваем основные настройки, которые можно сделать в файле php.ini:

Общие настройки

PHPengine = On ; Работа PHP-скриптов включена.

short_open_tag = On ; Разрешает упрощенно обрамлять PHP-код тагами

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_ нужно через запятую записать классы, вызов которых вы хотите запретить (обычно это делается для безопасности)

Ограничение ресурсов

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 ; Максимальное число символов, которое может составлять длинна журнала.

track_errors = On ; Последние сообщение об ошибки сохранится в переменную $php_errormsg

html_errors = On ; Разрешен вывод сообщений об ошибках в HTML.

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 должен обрабатывать соответственно ПОСЛЕ выполнения сценария.

Читать еще:  Php and mysql

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.use_cookies = 1 ; Разрешает использование cookie в сессиях

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).

Configuration file php ini path

Apache_2.2.4 , php-5.2.3, при конфигурации был указан параметр —with-config-file-path=/usr/local/etc’, но phpinfo(); пишет следуюющее:
Configuration File (php.ini) Path /usr/local/etc
Loaded Configuration File (none)
После нескольких часов гугления, пробовал указывать другие пути как в формате —with-config-file-path=/etc/php.ini, так и без указания самого имени файла, но результат тот же.
В чем может быть проблема?
На всякий случай привожу опции конфигурирования php :
./configure —with-config-file-path=/usr/local/etc —with-apxs2=/usr/local/apache2/bin/apxs —enable-ftp —with-oci8=/usr/local/oracle8-client/ —enable-reflection —enable-dbase —enable-xslt —with-xslt-sablot=/usr/local/sablot/

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

  • Не подгружается php.ini , WhitePangolin, 10:33 , 17-Июл-07, (1)
    • Не подгружается php.ini , Overdose, 15:13 , 17-Июл-07, (2)
      • Не подгружается php.ini , Lucf3r, 15:21 , 17-Июл-07, (3)
        • Не подгружается php.ini , Overdose, 15:36 , 17-Июл-07, (4)
  • Не подгружается php.ini , Overdose, 15:47 , 17-Июл-07, (5)
    • Не подгружается php.ini , www, 14:39 , 28-Май-08, ( 6 )
    • Не подгружается php.ini , Ihor Filakhtov, 15:42 , 07-Авг-08, ( 7 )
      • Не подгружается php.ini , vis, 11:53 , 27-Янв-09, ( 8 )
        • Не подгружается php.ini , Тимур Усманов, 18:10 , 28-Апр-09, ( 9 )

Сообщения по теме[Сортировка по времени | RSS]

>при конфигурации был указан параметр —with-config-file-path=/usr/local/etc.

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

1. «Не подгружается php.ini «
Сообщение от WhitePangolin (ok) on 17-Июл-07, 10:33
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. «Не подгружается php.ini «
Сообщение от Overdose (??) on 17-Июл-07, 15:13

>а php.ini там был?
Конечно был! Стал бы тогда вопрос подымать?! На другой машине была похожая проблема — phpinfo(); показывала (php.ini) Path /usr/local/etc, но файл не пдгружала, но когда я скопировал php.ini в директорию /usr/local/lib, то файл загрузился и вывелась следуюющая инфа
(php.ini) Path /usr/local/etc
Loaded Configuration File /usr/local/lib/php.ini
хотя файлы абсолютно одинаковые!
На этой же машине такое не канает — я уже раз 5 менял путь к файлу конфигурации, но ничего не изменилось. chown и chmod также не помог.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. «Не подгружается php.ini «
Сообщение от Lucf3r (??) on 17-Июл-07, 15:21

>>а php.ini там был?
>Конечно был! Стал бы тогда вопрос подымать?! На другой машине была похожая
>проблема — phpinfo(); показывала (php.ini) Path /usr/local/etc, но
>файл не пдгружала, но когда я скопировал php.ini в директорию /usr/local/lib,
>то файл загрузился и вывелась следуюющая инфа
>(php.ini) Path /usr/local/etc
>Loaded Configuration File /usr/local/lib/php.ini
>хотя файлы абсолютно одинаковые!
>На этой же машине такое не канает — я уже раз 5
>менял путь к файлу конфигурации, но ничего не изменилось. chown и
>chmod также не помог.
>
>ЗЫ: OS FreeBSD 6.2

А если положить php.ini в prefix+»lib/»?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. «Не подгружается php.ini «
Сообщение от Overdose (??) on 17-Июл-07, 15:36

>А если положить php.ini в prefix+»lib/»?
Дык пробовал. Нашел в ./configure —help что по дефолту файл будет подгружатся из PREFIX/lib но у меня не хочет.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. «Не подгружается php.ini «
Сообщение от Overdose (??) on 17-Июл-07, 15:47

Проблема решилась ламерским способом — поудалял все php-шные файлы и либы, сконфигурировал с путем конфигурационного файла по дефолту, файл грузитсо из /usr/local/php5/lib. Чето с параметром —with-config-file-path не ладно, на разных машинах разные траблы. Если у кого-то есть размышления по этому поводу, буду весьма благодарен.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6 . «Не подгружается php.ini «
Сообщение от www (??) on 28-Май-08, 14:39

>Проблема решилась ламерским способом — поудалял все php-шные файлы и либы, сконфигурировал
>с путем конфигурационного файла по дефолту, файл грузитсо из /usr/local/php5/lib. Чето
>с параметром —with-config-file-path не ладно, на разных машинах разные траблы. Если
>у кого-то есть размышления по этому поводу, буду весьма благодарен.

можно через дерективу PHPIniDir. у меня например так

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

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

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

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

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

Ссылка на основную публикацию
Adblock
detector
×
×
7 . «Не подгружается php.ini «
Сообщение от Ihor Filakhtov on 07-Авг-08, 15:42

>Проблема решилась ламерским способом — поудалял все php-шные файлы и либы, сконфигурировал
>с путем конфигурационного файла по дефолту, файл грузитсо из /usr/local/php5/lib. Чето
>с параметром —with-config-file-path не ладно, на разных машинах разные траблы. Если
>у кого-то есть размышления по этому поводу, буду весьма благодарен.

Знакомая проблема. Решение, как не странно очень «тупое»:
ВАРИАНТ 1: Директива PHPInDir в Apache (httpd.conf) чтото типа:

PHPIniDir «usr/local/bin»

З.Ы. Здесь IfModule — чисто для себя, поражать 😉

ВАРИАНТ 2: Не указывая PHPInDir, хоть застрелись PHP.ini должен лежать в папке с APACHE (или usr/local/php5/lib) ((
Вот такая борода.

ВАРИАНТ 3: Использовать PHP с Apache в виде CGI-модуля, тогда PHP «хавает» свое окружения (Результат — очень долгое мученье с настройкой Apache)

Так что господа, выбирайте. Тут все дело в Apache ))

Configuration file php ini path

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel