Php ini где лежит windows

Обновлено: 03.07.2024

Файл конфигурации ( php.ini ) считывается при запуске PHP. Для версий серверных модулей PHP это происходит только один раз при запуске веб-сервера. Для CGI и CLI версий это происходит при каждом вызове.

  • По месту расположения модуля SAPI ( PHPIniDir директива Apache 2, -c параметр командной строки CGI и CLI, php_ini параметр в NSAPI)
  • Переменная среды PHPRC . До PHP 5.2.0 поиск по переменной производился после поиска в реестре, указанном ниже.
  • Как и в PHP 5.2.0, местоположение файла php.ini может быть указано для различных версий PHP. Корневой ключ реестра зависит от разрядности операционной системы и установки PHP. Для 32-разрядного PHP на 32-разрядной Windows или 64-разрядного PHP и 64-разрядной Windows используйте [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] . Для 32-разрядного PHP на 64-разрядной Windows [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP] . Следующие ключи реестра исследуются при поиске для установок с совпадающей разрядностью: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z] , [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x] , где x, y и z подразумевают major, minor и release версии PHP. Для 32-разрядного PHP на 64-разрядной Windows ключи реестра будут другими: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z] , [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x] . Если также имеется значение IniFilePath в любом из этих ключей, то местонахождение php.ini будет определено первым ключом по порядку (только для Windows).
  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] или [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP] , значение IniFilePath (только для Windows).
  • Текущая директория (исключая CLI).
  • Директория веб-сервера (для модулей SAPI) или директория PHP (иначе в Windows).
  • В директории Windows ( C:\windows или C:\winnt ) (для Windows) или --with-config-file-path с выбором при компиляции.

Если файл php-SAPI.ini существует (где SAPI - это тип интерфейса, который используется, например, php-cli.ini или php-apache.ini ), то он используется вместо php.ini . Тип интерфейса между веб-сервером и PHP может быть определен с помощью функции php_sapi_name() .

Замечание:

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

В php.ini можно использовать переменные окружения, как показано ниже.

Директивы php.ini , обрабатываемые расширениями, описаны на соответствующих страницах расширений. Список директив ядра имеется в приложении. Не все директивы PHP документированы в этом руководстве: для ознакомления с полным списком директив доступных в вашей версии PHP, прочитайте комментарии вашего php.ini . Кроме того, вы можете найти полезной » последнюю версию php.ini из Git.

С версии PHP 5.1.0 стало возможным обращаться к существующим ini-переменным из ini-файлов. Пример: open_basedir = $ ":/new/dir" .

Сканирование директорий

Существует возможность сконфигурировать PHP для сканирования директорий в поисках .ini-файлов после считывания php.ini . Это можно сделать на моменте компиляции, указав опцию --with-config-file-scan-dir. В PHP 5.2.0 и выше, сканирование директорий может быть переопределено во время исполнения установкой переменной среды PHP_INI_SCAN_DIR .

Можно сканировать несколько директорий, разделяя их разделителем, используемом в вашей операционной системе ( ; в Windows, NetWare и RISC OS; : на всех остальных платформах; в PHP есть константа PATH_SEPARATOR , которую можно использовать) Если PHP_INI_SCAN_DIR пуста, то PHP также будет сканировать директорию, заданную на этапе компиляции с помощью --with-config-file-scan-dir.

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

Работа с файлами сайта, размещенного на хостинге или собственной виртуальной машине, рано или поздно приведет вас к файлу основных настроек языка 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 достаточно легковесны с точки зрения обычного пользователя.

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

Этот раздел содержит общие вопросы по установке PHP. PHP доступен практически для любой ОС (за исключением, может быть, MacOS предшествующей OSX) и любого web сервера.

Для установки PHP следуйте инструкциям в Установка и настройка.

Почему я не должен использовать Apache2 с потоковым MPM в промышленном окружении?

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

Если вы хотите использовать потоковый MPM, взгляните на конфигурацию с FastCGI, где вы можете запускать PHP в своем собственном пространстве памяти.

Unix/Windows: Где должен находиться файл php.ini ?

На Unix по умолчанию он должен находиться в директории /usr/local/lib , определяемой как <install-path>/lib . Большинство людей изменяют его во время компиляции с помощью опции --with-config-file-path Для примера, вы можете задать что-то типа:

Затем скопировать файл php.ini-development из дистрибутива в /etc/php.ini и отредактировать его для ваших локальных нужд.

На Windows по умолчанию php.ini находится в Windows директории. Если вы используете веб-сервер Apache, php.ini сначала ищется в директории, где был установлен Apache, например, c:\program files\apache group\apache . В этом случае на одной машине у вас могут быть разные файлы php.ini для разных версий Apache.

Затем вызовите URL, на котором возникает проблема, из вашего браузера

Если вы получаете дамп, gdb должен сейчас же сообщить вам об этом

Если ваш скрипт использует функции регулярных выражений ( preg_match() и другие), то вам необходимо убедиться, что вы скомпилировали PHP и Apache с одним и тем же пакетом регулярных выражений. Это должно происходить автоматически для PHP и Apache 1.3.x

Unix: Я установил PHP с помощью RPMS, но Apache не обрабатывает PHP страницы! Что происходит?

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

Unix: Я установил заплатку в Apache для расширений FrontPage и неожиданно PHP перестал работать. Неужели PHP не совместим с FrontPage расширениями для Apache?

Unix/Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего браузера, я получаю пустой экран.

Unix/Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего браузера, я получаю ошибку сервера 500.

Некоторые операционные системы: Я установил PHP без ошибок, но когда я пытаюсь запустить Apache, я получаю ошибки "undefined symbol" (неопределенный символ):

На самом деле это связано с клиентскими библиотеками MySQL и не имеет никакого отношения к PHP. Одним нужна опция --with-zlib , другим - нет. Это также описано в MySQL FAQ.

Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего браузера, я получаю ошибку:

Как только PHP заработает из командной строки, попытайтесь опять вызвать скрипт из браузера. Если он все также не работает, то причина может быть одной из следующих:

Убедитесь что все пользователи, кому необходимо запускать PHP скрипты, имеют право выполнять php.exe ! IIS использует анонимного пользователя, который добавлен во время установки IIS. Этот пользователь должен иметь права на php.exe . Также любому аутентифицированному пользователю будут нужны права на выполнение php.exe . И для IIS4 вам необходимо сказать ему, что PHP является скриптовой системой. Также вам захочется прочитать это.

Вы должны установить директиву cgi.force_redirect в 0. По умолчанию она установлена в 1, поэтому убедитесь, что директива не закоммментирована (с ;). Как все директивы, она задается в php.ini

Так как значение по умолчанию 1, то очень важно быть уверенным на 100%, что был прочитан верный php.ini файл. Для подробностей читайте здесь.

Как узнать, что мой php.ini был найден и прочтен? Похоже, что мои изменения не были восприняты?

Чтобы убедиться, что PHP прочитал ваш php.ini , вызовите phpinfo() и недалеко от начала будет находиться строка, озаглавленная Configuration File (php.ini). Она скажет вам, где PHP ищет php.ini и был ли файл прочитан. Если указана только PATH директория, то файл не был прочитан и вы должны поместить ваш php.ini в эту директорию. Если php.ini включен в PATH , то он был прочитан.

Если php.ini был прочитан и вы запускаете PHP как модуль, то не забудьте перезапустить ваш web сервер после внесения изменений в php.ini .

Как на Windows добавить мою PHP директорию в PATH ?

Зайдите в Control Panel и откройте системную иконку (Start -> Settings -> Control Panel -> System, или просто Start -> Control Panel -> System for Windows XP/2003)

Перейдите в закладку Advanced

Найдите Path (возможно, вам придется сделать прокрутку, чтобы найти его)

Двойной щелчок на Path

Откройте Notepad (Start -> Run и введите notepad)

Откройте файл C:\autoexec.bat

Найдите строку с PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;. и добавьте в конец строки: ;C:\php

Сохраните файл и перезапустите ваш компьютер

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

Прежде в руководстве по PHP рекомендовалось копировать файлы в системную директорию Windows, так как эта директория ( C:\Windows , C:\WINNT и т.п.) входит в системный PATH по умолчанию. Копирование файлов в системную директорию Windows давно уже противопоказано и может вызвать проблемы.

Как в Windows сделать файл php.ini доступным для PHP?

Для этого есть несколько путей. Если вы используете Apache, то читайте инструкции по его установке (Apache 1, Apache 2), в ином случае, вы должны установить переменную окружения PHPRC :

Зайдите в Control Panel и откройте системную иконку (Start -> Settings -> Control Panel -> System, или просто Start -> Control Panel -> System for Windows XP/2003)

Перейдите в закладку Advanced

Нажмите OK и перезапустите ваш компьютер

Откройте Notepad (Start -> Run и введите notepad)

Откройте файл C:\autoexec.bat

Добавьте новую строку в конец файла: set PHPRC=C:\php (замените C:\php на директорию, где находится php.ini ). Учтите, что путь не должен содержать пробелы. Например, если вы установили PHP в C:\Program Files\PHP , вы можете вместо этого ввести C:\PROGRA

Сохраните файл и перезапустите ваш компьютер

Возможно ли использовать согласование содержания в Apache (опция MultiViews) c PHP?

Это решение не работает в Apache 1, так как в нем PHP модуль не ловит php-script.

PHP может обрабатывать только GET и POST запросы?

Нет, можно обрабатывать любые запросы, например, CONNECT. Необходимый статус ответа можно послать с помощью функции header() . Если нужно обрабатывать только GET и POST запросы, то этого можно достигнуть с помощью такой конфигурации Apache:

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