Установка PHP. Установка и настройка PHP Настроить файл php ini

Сайт разработчика: http://www.php.net/
Дистрибутив (VC9 x86 Thread Safe, Zip архив): http://windows.php.net/download/
Прямая ссылка: php-5.3.10-Win32-VC9-x86.zip
Заодно скачайте сразу и документацию на русском языке в формате.chm, она вам понадобится при изучении и работе: php_enhanced_ru.chm

Распакуйте архив в желаемый каталог (изначально предлагается «C:\php»). Откройте конфигурационный файл содержащий рекомендуемые настройки — «php.ini-development» (находящийся в корне дистрибутива), переименуйте его в php.ini и произведите следующие изменения.

Редакция php.ini:

  • Найдите строку:
    post_max_size = 8M
    Увеличьте до 16 Мбайт максимальный размер данных принимаемых методом POST, изменив ее на:
    post_max_size = 16M
  • Найдите строку:
    ;include_path = «.;c:\php\includes»
    Раскомментируйте ее, убрав перед строкой символ точки с запятой.
    (Внимание исключение! Обратные косые черты при указании пути):
    include_path = «.;c:\php\includes»
    Создайте пустой каталог «C:\php\includes», для хранения подключаемых классов.
  • Найдите строку:
    extension_dir = «./»
    Установите значением данной директивы путь к папке с расширениями:
    extension_dir = «C:/php/ext»
  • Найдите строку:
    ;upload_tmp_dir =
    Раскомментируйте ее и укажите в значении следующий путь:
    upload_tmp_dir = «C:/php/upload»
    Создайте пустую папку «C:\php\upload», для хранения временных файлов загружаемых через HTTP.
  • Найдите строку:
    upload_max_filesize = 2M
    Увеличьте максимально допустимый размер загружаемых файлов до 16 Мбайт:
    upload_max_filesize = 16M
  • Подключите, расскомментировав, данные библиотеки расширений:
    extension=php_bz2.dll
    extension=php_curl.dll
    extension=php_gd2.dll
    extension=php_mbstring.dll
    extension=php_mysql.dll
    extension=php_mysqli.dll
  • Найдите строку:
    ;date.timezone =
    Раскомментируйте и установите значением часовой пояс вашего местоположения (список часовых поясов можно найти в документации):
    date.timezone = «Europe/Moscow»
  • Найдите строку:
    ;session.save_path = «/tmp»
    Раскомментируйте и установите значением данной директивы такой путь:
    session.save_path = «C:/php/tmp»
    Создайте пустую папку «C:\php\tmp» для хранения временных файлов сессий.
  • Сохраните изменения и закройте файл php.ini.

    Далее необходимо добавить каталог с установленным PHP интерпретатором в PATH операционной системы. Для чего пройдите по пути «Start» («Пуск») -> «Control Panel» («Панель управления») -> «System» («Система»), откройте вкладку «Advanced» («Дополнительно»), нажмите кнопку «Environment Variables» («Переменные среды»), в разделе «System Variables» («Системные переменные») сделайте двойной щелчок на строке «Path», добавьте в поле «Variable Value» («Значение переменной»), к тому что там уже существует, путь к каталогу с установленным PHP, например, «C:\php» (без кавычек). Обратите внимание на то что символ точки с запятой разделяет пути. Чтобы внесенные изменения вступили в силу, перезагрузите операционную систему.

    Пример строки Path:
    %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\php;C:\Program Files\MySQL\MySQL Server 5.5\bin

    Установка и настройка PHP интерпретатора – завершена.

    Описание подключаемых библиотек:

    php_bz2.dll – С помощью данного расширения PHP сможет создавать и распаковывать архивы в формате bzip2.

    php_curl.dll – Очень важная и нужная библиотека, позволяющая соединяться и работать с серверами, с помощью огромного количества интернет-протоколов.

    php_gd2.dll – Ещё одна незаменимая библиотека, позволяющая работать с графикой. Вы думали на PHP можно только HTML странички генерировать? А вот и нет! С помощью PHP можно почти всё, в том числе и рисовать.

    php_mbstring.dll – Библиотека содержит функции для работы с много-байтными кодировками, к которым относятся кодировки восточных языков (японский, китайский, корейский), Юникод (UTF-8) и другие.

    php_mysql.dll – Имя библиотеки говорит само за себя — она необходима для работы с сервером MySQL.

    php_mysqli.dll – Данная библиотека является расширением предыдущей и содержит дополнительные функции PHP для работы с сервером MySQL версии 4.1.3 и выше.

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

    Оригинал статьи: http://php-myadmin.ru/learning/instrument-php.html

    В htmlAcademy и я работаю на нем наставником. Студентам в рамках интенсива предстоит поднять рабочее окружение и это заметка нацелена упростить эту нелегкую для новичка задачу. Есть разные способы поднятия полноценного LAMP стека, но мы пойдем классическим путем. Настроим все компоненты по отдельности (без применения готовых комбайнов) и начнем с PHP (обязательно будет заметка с рассмотрением готовых сборок LAMP). Поскольку я планирую работать наставникам на интесивах по PHP и дальше, я собираюсь написать подобные инструкции для повторения в других ОС (Linux, macOS). Как говорится, лучше один раз попотеть, но потом всем станет проще. Итак, приступаем.

    Загружаем PHP для Windows

    Заходим на официальный сайт и загружаем актуальную версию PHP. На момент написания заметки это – 7.1.4 . На странице доступно несколько вариантов дистрибутивов. У меня Windows 7 x64, соответственно я выбираю zip архив с VC14 x64 Thread Safe.

    Обратите внимание, для загрузки доступна два варианта дистрибутива: Thread-Safe (TS) и Non-Thread-Safe (NTS) . Выбор зависит от того как вы планируете применять интерпретатор. TS рекомендуется использовать для одного процесса веб-служб (например, настраивая через модуль mod_php для Apache). NTS рекомендуется для применения IIS (Internet Information Service) и альтернативных FastCGI веб-сервером (например, Apache с модулем FastCGI) и командной строки.

    Устанавливаем PHP 7.1

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

    В директории появится множество файлов, но нас больше всего интересуют:

    • go-pear.bat – сценарий для установки PEAR. Подробности о PEAR можно почитать в официальной документации .
    • php.exe – позволяет выполнять PHP сценарии из консоли;
    • php-win.exe - позволяет выполнять PHP сценарии без применения консоли;
    • php-cgi.exe – необходим для выполнения PHP кода в режиме FastCGI;
    • php7apache2_4.dll – модуль интеграции с веб-сервером Apache 2.4.X;
    • phpdbg.exe – отладчик;
    • php.ini-development – пример конфигурационного файла PHP для окружения разработчика (development)
    • php.ini-production – пример конфигурационного файла PHP для рабочего окружения (production)
    Подключаем конфигурационный файл

    Распакованный дистрибутив у нас есть, подключим для него конфигурационный файл. Мы собираемся ставить эксперименты, поэтому в качестве образца возьмем php.ini-development . Сделайте копию этого файла в директорию php (C:\php ) с именем php.ini . ВАЖНО! Делайте именно копию, не простое переименование. За время разработки вам может потребоваться изменять конфигурационный файл и есть все шансы совершить ошибку, которую трудно будет обнаружить.

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

    Тестируем PHP из командной строки

    На этом шаге, так называемая «установка» завершена. Откройте консоль (cmd.exe , ярлык доступен в меню «Стандартные») и введите команду:

    C:\php\php.exe --version

    Результат будет примерно таким:

    PHP 7.1.4 (cli) (built: Apr 11 2017 19:54:37) (ZTS MSVC14 (Visual C++ 2015) x64) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

    Результат подтверждает, что PHP работает. Попробуйте для примера создать новый файл-сценарий (я создал файл “test.php” прямо в корне диска “C:”) и поместить в него текст:


    < configuration >
    < system.webServer >
    < handlers >
    < add name =«PHP» path ="*.php" verb ="*"
    modules =«FastCgiModule» scriptProcessor ="C:\Web\PHP\php-cgi.exe "
    resourceType =«Unspecified» />



    Теперь можно переходить к проверке работоспособности PHP.
    Шаг 3. Проверяем корректность настройки
    В директории узла для которого мы сконфигурировали PHP создаем файл
    index.php:

    И обращаемся к этому файлу через HTTP запрос. В результате, если все хорошо и
    наша карма не испорчена, запрос будет корректно обработан:

    Разумеется, при использовании PHP на
    IIS7 могут возникать подводные камни, с которыми нужно
    бороться, чтобы достичь ожидаемого результата (замечательной работы
    PHP приложений на Windows).
    Молотки для разбивания часто встречающихся камней приведены ниже.Частота перезапуска процессов PHP

    Поскольку при использовании PHP на
    IIS7 с использованием FastCGI
    модуля, сам модуль FastCGI берет на себя
    управление процессами и ресурсами, необходимо убедится, что механизм перезапуска
    процессов (recycling) в PHP
    не будет мешать FastCGI. Это легко сделать, если
    настроить FastCGI так, чтобы он всегда перезапускал
    процессы раньше, чем это сделает PHP.
    В настройках FastCGI существует настройка
    instanceMaxRequests, определяющая после обработки какого количества запросов,
    процесс будет перезапущен. В PHP аналогичный параметр
    задается значением переменной PHP_FCGI_MAX_REQUESTS. Очевидно, чтобы дать
    возможность FastCGI рулить процессом, достаточно
    установить instanceMaxRequests
    < application fullPath ="C:\inetpub\php\php-cgi.exe "
    maxInstances =«4» instanceMaxRequests =«10000» >
    < environmentVariables >
    < environmentVariable name =«PHP_FCGI_MAX_REQUESTS» value =«10000» >


    Использование нескольких версий PHP Поскольку разные версии PHP могут использоваться в
    приложениях, которые размещаются на сервере, то хорошо бы было дать возможность
    использовать разные версии для разных сайтов.
    В файле конфигурации applicationHost.config
    достаточно определить секции для разных версий PHP:
    < fastCgi >
    < application fullPath =«C:\inetpub\php\php-cgi.exe» >
    ...

    < application fullPath =«C:\inetpub\php4\php4.exe» >
    ...

    < application fullPath =«C:\inetpub\php41\php41.exe» >
    ...


    * This source code was highlighted with . А уже для каждого из сайтов конфигурируется модуль, использующий ту или иную
    версию (можно использовать интерфейс, который описан выше, а можно
    отредактировать конфигурацию в тексте):
    < handlers >
    < add name =«PHP4» path ="*.php" verb ="*" modules =«FastCgiModule»
    scriptProcessor ="C:\inetpub\php\php41.exe "
    resourceType =«Unspecified» />

    * This source code was highlighted with . Использование разных наборов настроек PHP Если есть желание настраивать PHP по-разному для
    разных сайтов, то опять же все это можно описать через настройки конфигурации в
    applicationHost.config.
    < fastCgi >

    < application fullPath ="C:\inetpub\php\php-cgi.exe "

    arguments ="-d my.website=wordpress" >

    < environmentVariables >

    < environmentVariable name =«PHPRC» value =«C:\inetpub\wordpress» />





    < application fullPath ="C:\inetpub\php\php-cgi.exe "

    arguments ="-d my.website=phpsite" >

    < environmentVariables >

    < environmentVariable name =«PHPRC» value =«C:\inetpub\phpsite» />






    * This source code was highlighted with .
    После этого, настройки связываются с соответствующими сайтами в
    web.config:
    < system.webServer >

    < handlers accessPolicy =«Read, Script» >
    < add name =«PHP» path ="*.php" verb ="*" modules =«FastCgiModule»
    scriptProcessor ="C:\inetpub\php\php-cgi.exe|-d my.website=wordpress "

    resourceType =«Unspecified» requireAccess =«Script» />




    * This source code was highlighted with .
    В соответствии с приведенной конфигурацией, php.ini
    нужно разместить в директории каждого из сайтов.
    При редактировании настроек, стоит строго соблюдать совпадение путей к
    соответствующей версии PHP и с
    applicationHost.config и в web.config, чтобы
    избежать неожиданных результатов, если пути будут перепутаны.
    На первый взгляд редактирование конфигурации может показаться сложным и
    неудобным процессом, но как только вы привыкните к конфигурации в
    XML и распространению настроек методом
    Ctrl+C, Ctrl+V, вы будете удивляться наличию других
    способов конфигурации:)Настройки безопасности PHP В php.ini мноо разных настроек, многие из которых
    влияют на безопасность использования PHP. Настроить
    все подходящим образом, достойное дело.
    Set allow_url_fopen=Off
    ; использование URL для операций с файлами
    Set allow_url_include=Off
    register_globals=Off
    ; отмена регистрации глобальных переменных
    open_basedir=«c:\inetpub\» ;
    ограничение на директорию, в которой работает PHP

    Max_execution_time=30 ; ограничение
    времени выполнения скриптов
    max_input_time=60
    memory_limit=16M ;
    ограничение на размер используемой памяти
    upload_max_filesize=2M
    post_max_size=8M
    max_input_nesting_levels=64
    display_errors=Off
    ; отключение сообщений об ошибках
    log_errors=On
    error_log=«C:\error.log»
    expose_php=Off
    ; скрыть присутствие PHP

    Заключение PHP на Windows - это не
    просто интересно и удобно, главное, что это работает. А команда
    IIS работает над тем, чтобы PHP
    работал на Windows не хуже, чем на
    Unix/Linux (конечно, стараются сделать лучше).
    Поскольку это новая тема для Microsoft, то мы можем
    сделать какие-то ошибки, можем чего-то не замечать и не понимать, поэтому нам
    очень важно получать комментарии от вас - разработчиков и администраторов.
    Пишите в комментариях ваши пожелания и проблемы, которые вы видите сейчас в
    PHP на Windows, а мы будем
    стараться проблемы решать, а пожелания реализовывать.

    Теги: Добавить метки

    Если вы установили PHP как модуль Apache , перед вами открываются дополнительные возможности: вы можете задавать значения некоторых директив прямо в файлах httpd.conf или .htaccess . В силу специфики синтаксиса файлов конфигурации Apache, для отделения имени директивы и ее значения нужно использовать пробел, а не знак =. Кроме того, имена директив PHP должны быть предварены префиксом php_ . Например, директива из php.ini auto_prepend_file=top.html будет выглядеть в httpd.conf или .htaccess так: php_auto_prepend_file top.html.

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

    Файл php.ini

    ;;;;;;;;;;;;;;;;;
    ; Об этом файле;
    ;;;;;;;;;;;;;;;;;

    ; Этот файл содержит большинство установок PHP. Чтобы PHP смог его
    ; обнаружить, он должен называться "php.ini". Интерпретатор ищет файл в
    ; текущем каталоге, в случае неудачи - в каталоге, указанном в
    ; переменной окружения PHPRC, и, наконец, в каталоге, заданном при
    ; компиляции и сборке PHP (именно в таком порядке).
    ; В системе Windows путь, указанный при компиляции PHP,
    ; соответствует каталогу Windows (в большинстве случаев это
    ; c:\windows). Папка, в которой будет производиться поиск файла
    ; "php.ini", может быть также определена с использованием ключа –c
    ; командной строки.
    ;
    ; Синтаксис файла крайне прост. Пробельные символы (то есть, пробелы,
    ; символы табуляции и т. д.), строки, начинающиеся с точки с запятой (;)
    ; игнорируются (как вы, наверное, уже догадались). Заголовки секций
    ; (например, ) также пропускаются, но, возможно, будут учитываться
    ; в будущих версиях PHP.
    ;
    ; Директивы задаются примерно так:
    ; directive=value
    ; Имена директив чувствительны к регистру символов - foo=bar не то же
    ; самое, что FOO=bar.
    ;
    ; Значение value может быть строкой, числом, константой PHP (например,
    ; E_ALL или M_PI), одной из INI-констант (On, Off, True, False, Yes, No
    ; или None), выражением (например, E_ALL & ~E_NOTICE), а также строкой
    ; в кавычках ("foo").
    ;
    ; В выражениях могут использоваться только побитовые и логические
    ; операторы, а также скобки:
    ; | поразрядное ИЛИ (OR)
    ; & поразрядное И (AND)
    ; ~ поразрядное НЕ (NOT)
    ; ! логическое отрицание (NOT)
    ;
    ; В качестве логических флагов со значением "истина" могут быть
    ; использованы значения 1, On, True или Yes. Значение "ложь" дают 0, Off,
    ; False и No.
    ;
    ; Пустая строка может быть задана, если "не указать ничего" после знака
    ; равенства, или же указать слово None:
    ; foo= ; устанавливаем foo равным пустой сторке
    ; foo=none ; аналогично
    ; foo="none" ; устанавливаем foo равным строке "none"
    ;
    ; Если вы используете константы в качестве части значения директивы и эти
    ; константы определяются в каком-нибудь динамически загружаемом
    ; расширении (модуле PHP или Zend), вы можете указывать их только после
    ; строки, которая загружает расширение.
    ;
    ; Все значения в файле php.ini-dist соответствуют встроенным значениям
    ; по умолчанию. Если php.ini не задействуется, или же вы удалите из него
    ; некоторые строки, будут установлены значения по умолчанию.

    ;;;;;;;;;;;;;;;;;;;
    ; Настройки языка;
    ;;;;;;;;;;;;;;;;;;;

    ; Разрешает работу PHP для сервера Apache.
    engine=On
    ; Разрешает использовать короткие тэги , допустим и здесь.
    highlight.string=#DD0000
    highlight.comment=#FF8000
    highlight.keyword=#007700
    highlight.bg=#FFFFFF
    highlight.default=#0000BB
    highlight.html=#000000
    ; Другие директивы
    ; Следующая директива указывает, должен ли PHP добавлять заголовок
    ; X-Powered-by в заголовки, посылаемые браузеру, и, таким образом,
    ; обнаруживать себя. Это никак не может повлиять на безопасность
    ; сценария, однако позволяет пользователю определить, использовался
    ; ли PHP для генерации страницы, или нет.
    expose_php=On

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

    ; Максимальное возможное время выполнения сценария в секундах. Если
    ; сценарий будет выполняться дольше, PHP принудительно завершит его.
    max_execution_time=30
    ; Максимальный объем памяти, выделяемый сценарию (8MB)
    memory_limit=8M


    ; Обработка ошибок и подключений;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; Директива error_reporting должна задаваться в виде битового
    ; поля. Его значение можно устанавливать с помощью следующих констант,
    ; объединенных оператором | (OR):
    ; E_ALL - Все предупреждения и ошибки.
    ; E_ERROR - Критические ошибки времени выполнения.
    ; E_WARNING - Предупреждения времени выполнения.
    ; E_PARSE - Ошибки трансляции.
    ; E_NOTICE - Замечания времени выполнения (это такие
    ; предупреждения, которые, скорее всего,
    ; свидетельствуют о логических ошибках в
    ; сценарии, - например, использовании
    ; неинициализированной переменной).
    ; E_CORE_ERROR - Критические ошибки в момент старта PHP.
    ; E_CORE_WARNING - Некритические предупреждения во время старта PHP.
    ; E_COMPILE_ERROR - Критические ошибки времени трансляции.
    ; E_COMPILE_WARNING - Предупреждения времени трансляции.
    ; E_USER_ERROR - Сгенерированные пользователем ошибки.
    ; E_USER_WARNING - Сгенерированные пользователем предупреждения.
    ; E_USER_NOTICE - Сгенерированные пользователем замечания.
    ; Пример:
    ; показывать все ошибки, за исключением замечаний
    ; error_reporting = E_ALL & ~E_NOTICE
    ; показывать только сообщения об ошибках
    ; error_reporting=E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
    ; отображать все ошибки, предупреждения и замечания
    error_reporting= E_ALL
    ; Печать ошибок и предупреждений прямо в браузер.
    ; Для готовых сайтов рекомендуется отключать следующую директиву и
    ; использовать вместо нее журнализацию (см. ниже). Включенная директива
    ; display_errors в "рабочих" сайтах может открыть доступ пользователю к
    ; секретной информации: например, полному пути к документу, используемой
    ; базе данных и т. д.
    display_errors=On
    ; Даже если display_errors включена, ошибки, возникающие во время старта
    ; PHP, не отображаются. Рекомендуется устанавливать следующую директиву
    ; в выключенное состояние, за исключением случая, когда вы применяете
    ; ее при отладке.
    display_startup_errors=On
    ; Сохранять ли сообщения об ошибках в файле журнала. Журнал может
    ; определяться настройками сервера, быть связанным с потоком stderr
    ; или же задаваться директивой error_log, описанной ниже. Как уже было
    ; сказано, в коммерческих проектах желательно использовать именно
    ; журнализацию, а не отображать ошибки в браузер.
    log_errors=Off
    ; Сохранять ли последнее сообщение об ошибке или предупреждение в
    ; переменной $php_errormsg
    track_errors=On
    ; Строка, которая выводится перед сообщением об ошибке.
    ;error_prepend_string=""
    ; Строка, которая отображается после сообщения.
    ;error_append_string=""
    ; Раскомментируйте, чтобы вести журнал в указанном файле.
    ;error_log=filename;
    ; Раскройте, чтобы использовать системный журнал.
    ;error_log=syslog
    ; Предупреждать, когда оператор + применяется к строкам.

    ;;;;;;;;;;;;;;;;;;;;
    ; Обработка данных;
    ;;;;;;;;;;;;;;;;;;;;

    ; Замечание: track_vars всегда включена, начиная с PHP 4.0.3.
    ; Следующая директива определяет, в каком порядке PHP будет
    ; регистрировать данные, полученные методами GET, POST, а также
    ; переменные окружения и встроенные переменные (соответственно, значение
    ; задается буквами G, P, C, E и S, например, EGPCS или GPC). Регистрация
    ; производится на основе чтения этой строки слева направо, новые значения
    ; переопределяют старые.
    variables_order="EGPCS"
    ; Должен ли PHP регистрировать EGPCS-переменные как глобальные
    ; переменные. Возможно, вы захотите отключить эту возможность, если не
    ; хотите "засорять" глобальную область видимости сценария. Это имеет
    ; смысл, если вы используете директиву track_vars - в этом случае вы
    ; можете получить доступ к GPC-данным через массив $HTTP_???_VARS.
    ; Желательно так писать сценарии, чтобы они по возможности
    ; старались обходиться без директивы register_globals. Использование
    ; данных, поступивших из формы, как глобальных переменных, потенциально
    ; может породить проблемы в защите сценария, если программист не особенно
    ; позаботится об их устранении.
    register_globals=On
    ; Следующая директива указывает PHP, обязан ли он создавать переменные
    ; $argv и $argc на основе информации, поступившей методом GET. Если вы не
    ; используете эти переменные, отключите директиву register_argc_argv для
    ; небольшого убыстрения работы PHP.
    register_argc_argv=On
    ; Максимальный размер данных POST, который PHP сможет принять.
    post_max_size=8M
    ; Следующая директива устарела - используйте variables_order.
    gpc_order="GPC"
    ; Автоматическая обработка кавычек и апострофов:
    ; использовать ли автокавычки для входящих GET/POST/Cookie данных
    magic_quotes_gpc=Off
    ; заключать ли данные в автокавычки во время выполнения, например,
    ; для данных из SQL, exec() и т. д.
    magic_quotes_runtime=Off
    ; Нужно ли PHP оформлять автокавычки в стиле Sybase-style (заменять "
    ; на "", а не на \")
    magic_quotes_sybase=Off
    ; Следующие директивы указывают PHP, содержимое каких файлов он должен
    ; обрабатывать до и после вывода сценария.
    auto_prepend_file=
    auto_append_file=
    ; Начиная с версии 4.0b4, PHP всегда сообщает браузеру об используемой
    ; кодировке в заголовке Content-type. Для того чтобы запретить это,
    ; просто установите следующую директиву пустой. По умолчанию
    ; используется text/html без указания кодировки.
    default_mimetype="text/html"
    ;default_charset="iso-8859-1"

    ;;;;;;;;;;;;;;;;;;;
    ; Пути и каталоги;
    ;;;;;;;;;;;;;;;;;;;

    ; Для UNIX: "/path1:/path2".
    ; Для Windows: "\path1;\path2"
    include_path=
    ; Корневой каталог для PHP-сценариев.
    ; Игнорируется, если значение равно пустому "".
    doc_root=
    ; Каталог, который PHP использует при открытии сценария вида
    ; /~username. Не оказывает действия, если значение равно "".
    user_dir=
    ; Каталог, в котором хранятся динамически загружаемые расширения.
    extension_dir=C:/Program Files/PHP4/extensions
    ; Следующая директива разрешает или запрещает использование функции dl().
    ; Функция dl() работает неправильно в многопоточных Web-серверах,
    ; например, в IIS или Zeus, и автоматически отключается для них.
    enable_dl=On

    ;;;;;;;;;;;;;;;;;;
    ; Закачка файлов;
    ;;;;;;;;;;;;;;;;;;

    ; Разрешает PHP обрабатывать закачку файлов
    file_uploads=On
    ; Каталог для временных файлов, в который PHP помещает закачанные
    ; файлы (используется системный временный каталог, если в директиве
    ; указана пустая строка)
    ;upload_tmp_dir=
    ; Максимальный размер закачанного файла
    upload_max_filesize=2M


    ; Динамически загружаемые расширения;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ; Если вы хотите, чтобы какие-то модули загружались автоматически,
    ; задавайте директиву extension в формате:
    ; extension=modulename.extension
    ; Например, для Windows:
    ; extension=msql.dll
    ; или для UNIX:
    ; extension=msql.so
    ; Должно быть указано только имя, без пути. Чтобы задать
    ; каталог, в котором расположены расширения, используйте директиву
    ; extension_dir, описанную выше.
    ; Модули для Windows
    ; Замечание: поддержка MySQL и ODBC теперь включена в ядро PHP, так что
    ; для нее уже не нужны никакие библиотеки DLL.
    ;extension=php_cpdf.dll
    ;extension=php_cybercash.dll
    ;extension=php_db.dll
    ;extension=php_dbase.dll
    ;extension=php_domxml.dll
    ;extension=php_dotnet.dll
    ;extension=php_exif.dll
    ;extension=php_fdf.dll
    ;extension=php_gd.dll
    ;extension=php_gettext.dll
    ;extension=php_ifx.dll
    ;extension=php_imap.dll
    ;extension=php_interbase.dll
    ;extension=php_java.dll
    ;extension=php_ldap.dll
    ;extension=php_mhash.dll
    ;extension=php_mssql65.dll
    ;extension=php_mssql70.dll
    ;extension=php_oci8.dll
    ;extension=php_oracle.dll
    ;extension=php_pdf.dll
    ;extension=php_pgsql.dll
    ;extension=php_sablot.dll
    ;extension=php_swf.dll
    ;extension=php_sybase_ct.dll
    ;extension=php_zlib.dll

    ;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Установки для модулей;
    ;;;;;;;;;;;;;;;;;;;;;;;;;

    ; Нужно или нет определять различные переменные Syslog, такие как
    ; $LOG_PID, $LOG_CRON и т. д. Для ускорения работы рекомендуется
    ; выключать следующую директиву. Во время выполнения сценария вы
    ; можете включить или выключить директиву путем вызова
    ; функции define_syslog_variables().
    define_syslog_variables=Off

    ; Только для Win32 - используемый SMTP-сервер.
    SMTP=mail.mail.zz
    ; Только для Win32 - поле From: по умолчанию.
    sendmail_from= [email protected]
    ; Только для UNIX - задает путь и аргументы программы sendmail (по
    ; умолчанию - "sendmail -t -i").
    ;sendmail_path=

    ;debugger.host=localhost
    ;debugger.port=7869
    ;debugger.enabled=False

    ; Следующие директивы используются сценарием-примером.
    ; При потребности в детальном описании см. examples/README.logging.
    ;logging.method=db
    ;logging.directory=/path/to/log/directory

    ;java.class.path=.\php_java.jar
    ;java.home=c:\jdk
    ;java.library=c:\jdk\jre\bin\hotspot\jvm.dll
    ;java.library.path=.\

    sql.safe_mode=Off

    ;uodbc.default_db=Not yet implemented
    ;uodbc.default_user=Not yet implemented
    ;uodbc.default_pw=Not yet implemented
    ; Разрешает или запрещает устойчивые соединения
    uodbc.allow_persistent=On
    ; Проверка доступности соединения перед его использованием.
    uodbc.check_persistent=On
    ; Макс. число устойчивых соединений. -1 означает, что ограничений нет.
    uodbc.max_persistent=-1
    ; Макс. число соединений (устойчивых + неустойчивых).
    uodbc.max_links=-1
    ; Установки для LONG-полей.
    uodbc.defaultlrl=4096
    ; Установки для бинарных данных. 0 означает режим passthru, 1 – режим
    ; as is, 2 – преобразование в символы.
    uodbc.defaultbinmode=1
    ; См. документацию по odbc_binmode и odbc_longreadlen для более
    ; детального разъяснения смысла директив uodbc.defaultlrl и
    ; uodbc.defaultbinmode.

    mysql.allow_persistent=On
    mysql.max_persistent=-1
    mysql.max_links=-1
    ; Порт по умолчанию для функции mysql_connect(). Если не задан, функция
    ; попытается использовать переменную $MYSQL_TCP_PORT или запись mysql-tcp
    ; в /etc/services, а также заданную во время компиляции PHP константу
    ; MYSQL_PORT (именно в таком порядке). К PHP для Win32 применимо только
    ; последнее.
    mysql.default_port=
    ; Определяет имя сокета для локальных соединений MySQL. Если он не задан,
    ; использует встроенное значение по умолчанию.
    mysql.default_socket=
    ; Хост по умолчанию для mysql_connect() (не работает в безопасном
    режиме).
    mysql.default_host=
    ; Пользователь по умолчанию (не работает в безопасном режиме).
    mysql.default_user=
    ; Пароль по умолчанию (не работает в безопасном режиме).
    ; Замечание: идея хранить пароль в этом файле просто отвратительна. Любой
    ; пользователь, который может запускать PHP, сможет узнать пароль путем
    ; выполнения:
    ; echo cfg_get_var("mysql.default_password")
    ; Конечно, узнать пароль сможет также и пользователь, который имеет права
    ; на чтение для файла php.ini.
    mysql.default_password=

    msql.allow_persistent=On
    msql.max_persistent=-1
    msql.max_links=-1

    pgsql.allow_persistent=On
    pgsql.max_persistent=-1
    pgsql.max_links=-1

    sybase.allow_persistent=On
    sybase.max_persistent=-1
    sybase.max_links=-1
    ;sybase.interface_file="/usr/sybase/interfaces"
    ; Максимальный уровень серьезности отображаемых ошибок.
    sybase.min_error_severity=10
    ; Минимальный уровень серьезности отображаемых ошибок.
    sybase.min_message_severity=10

    ; Если следующая директива установлена в On, PHP будет автоматически
    ; присваивать тип результату на основе его типа в Sybase, вместо того,
    ; чтобы преобразовывать полученные значения в строки. Этот режим
    ; совместимости, возможно, в будущем не будет поддерживаться, так что
    ; лучше исправьте свои сценарии, если вам он нужен.
    sybase.compatability_mode=Off

    sybct.allow_persistent=On
    sybct.max_persistent=-1
    sybct.max_links=-1
    sybct.min_server_severity=10
    sybct.min_client_severity=10

    ; Число десятичных цифр для всех bcmath-функций.
    bcmath.scale=0

    ; browscap=extra/browscap.ini

    ifx.default_host=
    ifx.default_user=
    ifx.default_password=
    ifx.allow_persistent=On
    ifx.max_persistent=-1
    ifx.max_links=-1
    ; Если следующая директива установлена в On, выражение select возвращает
    ; содержимое поля типа text blob вместо его идентификатора.
    ifx.textasvarchar=0
    ; Заставляет команду select возвращать значение поля типа byte blob
    ; вместо его идентификатора.
    ifx.byteasvarchar=0
    ; Принуждает PHP удалять завершающие пробелы из колонок с типом char
    ; фиксированного размера. Может помочь пользователям Informix SE.
    ifx.charasvarchar=0
    ; Если установлена, содержимое полей text и byte сохраняется в файле,
    ; вместо того, чтобы храниться в памяти.
    ifx.blobinfile=0
    ; Если установлена в 0, значения NULL возвращаются как пустые строки,
    ; иначе они возвращаются как строки "NULL".
    ifx.nullformat=0

    ; Определяет режим хранения данных сессий.
    session.save_handler=files
    ; Следующая директива задает аргумент, передаваемый save_handler-у.
    ; В случае режима сохранения в файлах здесь должен указываться каталог,
    ; в который будут помещены файлы сессий.
    session.save_path=C:\Program Files\PHP4\sessiondata
    ; Должен ли PHP использовать Cookies.
    session.use_cookies=1
    session.name=PHPSESSID
    ; Инициализировать ли сессии при старте.
    session.auto_start=0
    ; Время жизни Cookie для сессии. Если до закрытия браузера, то 0.
    session.cookie_lifetime=0
    ; Путь для Cookie с идентификатором сессии.
    session.cookie_path=/
    ; Домен для Cookie с идентификатором сессии.
    session.cookie_domain=
    ; Функция, используемая для сериализации данных. Значение php задает
    ; стандартную функцию.
    session.serialize_handler=php
    ; Вероятность того, что при очередном запуске сценария, работающего с
    ; сессиями, будет вызвана функция "сборки мусора" для очистки сессий,
    ; которые пользователь уже покинул.
    session.gc_probability=1
    ; После указанного здесь промежутка времени сохраненные
    ; данные будут удалены автоматически сборщиком мусора.
    session.gc_maxlifetime=1440
    ; Проверять ли HTTP Referer на предмет того, не является ли ID сессии
    ; "фальшивым".
    session.referer_check=
    ; Указывает, сколько байтов читать из файла.
    session.entropy_length=0
    ;session.entropy_length=16
    ; Файл, используемый для генерации идентификаторов сессии.
    session.entropy_file=
    ;session.entropy_file=/dev/urandom
    ; Установите одно из значений nocache, private, public для определения
    ; аспектов кэширования HTTP.
    session.cache_limiter=nocache
    ; Документ будет считаться устаревшим по истечении заданного
    ; здесь количества минут
    session.cache_expire=180
    ; Использовать ли поддержку "переходящих" SID. Действует, если PHP был
    ; скомпилирован с включенной опцией --enable-trans-sid.
    session.use_trans_sid=1

    ;extension=php_mssql.dll
    mssql.allow_persistent=On
    mssql.max_persistent=-1
    mssql.max_links=-1
    mssql.min_error_severity=10
    mssql.min_message_severity=10
    ; Режим совместимости со старыми версиями PHP 3.0.
    mssql.compatability_mode=Off

    ;assert.active=On
    ; Генерирует предупреждения PHP для каждых неудавшихся проверок
    ; выражений.
    ;assert.warning=On
    ; По умолчанию не завершать программу в случае неудачи.
    ;assert.bail=Off
    ; Пользовательская функция, которая будет вызвана при неудаче проверки.
    ;assert.callback=0
    ; Вычислять выражения в eval с использованием текущих установок
    ; error_reporting. Установите в true, если вы хотите, чтобы действие
    ; режима error_reporting(0) было сохранено и при переходе через
    ; границу eval().
    ;assert.quiet_eval=0

    ingres.allow_persistent=On
    ingres.max_persistent=-1
    ingres.max_links=-1
    ; База данных по умолчанию (формат: dbname
    ingres.default_database=
    ingres.default_user=
    ingres.default_password=

    pfpro.defaulthost="test.signio.com"
    pfpro.defaultport=443
    pfpro.defaulttimeout=30
    ; IP-адрес proxy-сервера по умолчанию (если требуется).
    ; pfpro.proxyaddress=
    ; Порт proxy-сервера по умолчанию
    ; pfpro.proxyport=
    ; Логин для proxy-сервера по умолчанию
    ; pfpro.proxylogon=
    ; Пароль для proxy-сервера по умолчанию
    ; pfpro.proxypassword=

    5.2K

    Конфигурационный файл 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

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

    safe_mode = Off

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

    safe_mode_exec_dir =

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

    safe_mode_allowed_env_vars =

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

    safe_mode_protected_env_vars =

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

    disable_functions =

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

    max_execution_time = 30

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

    error_reporting = E_ALL & ~E_NOTICE

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

    error_prepend_string = [«»]

    Вместе с » используется со строками, как при формировании значения поля формы.

    variables_order = EGPCS

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

    register_globals = Off

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

    gpc_order = GPC

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

    magic_quotes_gpc = On

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

    magic_quotes_runtime = Off

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

    magic_quotes_sybase = Off

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

    auto-prepend-file =

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

    auto-append-file =

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

    include_path =

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

    doc_root =

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

    file_uploads =

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

    upload_tmp_dir =

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

    session.save-handler = files

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

    ignore_user_abort =

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

    Случайные статьи

    Вверх