Раздел содержит общие вопросы о способах установки PHP.
   Дистрибутивы PHP совместимы с большей частью операционных систем и веб-серверов.
  
  
    - 
     
      Почему лучше не пользоваться веб-сервером Apache2 с многопоточным модулем MPM (event, worker)
      в производственной среде?
     
    
- 
     
      PHP — связующее звено. Это связующее звено помогает создавать крутые веб-приложения
      путём объединения десятков сторонних библиотек в единое целое
      за счёт интуитивно понятного и простого в освоении языкового интерфейса.
      Гибкость и сила PHP основана на стабильности и устойчивости, лежащей в основе платформы.
      Чтобы всё работало, нужна рабочая операционная система, рабочий
      веб-сервер и рабочие сторонние библиотеки. Когда один элемент перестаёт
      работать, PHP нуждается в способах выявления и безотлагательного исправления проблем.
      И когда разработчик усложняет базовый фреймворк тем, что не изолирует
      исполняемые потоки и сегменты памяти, и не даёт потокам отдельных
      изолированных «песочницы», — ослабляется вся PHP-система.
      
      Посмотрите на конфигурацию протокола FastCGI,
      в которой PHP выполняется в своём пространстве памяти,
      если требуется подключить многопоточный модуль MPM.
      
    - 
     
      ОС Unix и Windows: Где искать файл php.ini?
     
    
- 
     
      По умолчанию в Unix файл лежит в каталоге /usr/local/lib,
      который соответствует пути <установочный-путь>/lib.
      Этот путь разрешается изменять в момент компиляции через флаг
      --with-config-file-path
       Например, так:
       --with-config-file-path=/etc 
--with-config-file-scan-dir=PATH 
      В ОС Windows путь к файлу php.ini по умолчанию — путь
      к директории Windows. При работе с веб-сервером Apache файл php.ini
      лежит по пути: ?\program files\apache group\apache\.
      Поэтому для разных версий Apache на одном компьютере разрешается создавать разные файлы php.ini.
      
     Смотрите также: файл настроек.
      
    - 
     
      Unix: Я установил PHP, но при каждом открытии какого-либо документа
      вижу «Document Contains No Data», что это значит?
     
    
- 
     
      Это значит, что, возможно, PHP столкнулся с проблемой и падает в core-dump.
      Просмотрите логи ошибок сервера, чтобы проверить это, а затем попытайтесь воспроизвести
      цепочку шагов, которые привели к ошибке; например, создав отдельную тестовую программу.
      И если вы умеете пользоваться отладчиком gdb, то это поможет получить стек вызовов функций (backtrace) для
      включения его в отчёт об ошибке, чтобы упростить выявление причин проблемы
      разработчикам. Следующие рекомендации бывают полезны, если PHP работает как модуль для веб-сервера Apache:
       
       - 
        
         Остановите httpd-процессы
         
- 
        
         gdb httpd
         
- 
        
         Вновь остановите httpd-процессы
         
- 
        
         > run -X -f путь_к_httpd.conf
         
- 
        
         Затем скопируйте URL-адрес, который вызвал проблему в браузере
         
- 
        
         > run -X -f путь_к_httpd.conf
         
- 
        
         О событиях core dump сообщит отладчик gdb
         
- 
        
         Введите bt
         
- 
        
         Включите backtrace в отчёт об ошибке и отправьте трассировку по адресу:
         » https://github.com/php/php-src/issues
         
 
      Проверьте, с одинаковыми ли пакетами обработки RegEx скомпилировали PHP и Apache,
      если скрипт использует регулярные выражения наподобие тех, с которыми работает
      функция preg_match() и подобные.
      При работе PHP с веб-сервером Apache 1.3.x это выполняется автоматически.
      
    - 
     
      Unix: Я установил PHP через менеджер пакетов RPMS, но Apache не обрабатывает
      PHP-страницы, в чём дело?
     
    
- 
     
      Раскомментируйте или добавьте каждую или часть следующих строк в файл httpd.conf,
      если и Apache, и PHP установили из RPM-пакетов:
       
# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c
# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so 
 И добавьте:
AddType application/x-httpd-php .php 
 …в глобальные свойства или в свойства того виртуального домена VirtualDomain,
      для которого требуется включить поддержку PHP.
    - 
     
      Unix: Я исправил Apache модулем FrontPage и теперь PHP не работает.
      Получается, PHP несовместим с модулями Apache FrontPage?
     
    
- 
     
      Нет, PHP отлично работает с модулями FrontPage. Проблема в том, что
      патч FrontPage изменяет ряд структур Apache, на которые полагается PHP.
      Перекомпиляция PHP командой «make clean ; make» после установки патча FP решит
      проблему.
      
    - 
     
      Unix и Windows: Я установил PHP, но при попытке открыть PHP-файл
      в браузере вижу пустой экран.
     
    
- 
     
      Выберите в браузере опцию «Посмотреть исходный код» и, возможно, увидите свой PHP-код.
      Это значит, что веб-сервер не передал скрипт интерпретатору PHP. Что-то
      не так с конфигурацией сервера. Внимательно проверьте конфигурацию
      сервера на соответствие инструкциям по установке PHP.
      
    - 
     
      Unix и Windows: Я установил PHP, но когда пытаюсь посмотреть созданную PHP-страницу
      в браузере, получаю ошибку 500.
     
    
- 
     
      Что-то пошло не так, когда сервер попытался запустить PHP. Чтобы увидеть
      исходную ошибку, которая возникла, в командной строке перейдите в директорию,
      в которой лежит исполняемый файл PHP (php.exe в Windows),
      и запустите команду php -i. Если есть какие-либо проблемы с
      запуском PHP, будет выведена соответствующая ошибка, которая подскажет, что
      надо исправить. Если вы увидите экран с HTML-кодом (вывод функции
      phpinfo()), значит, PHP работает нормально, и проблема
      связана с настройками веб-сервера.
      
    - 
     
      Отдельные операционные системы: Я установил PHP без ошибок,
      но когда пытаюсь запустить Apache, выводится ошибка:
      [mybox:user /src/php5] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress 
- 
     
      Это означает, что проблема не в PHP, а в клиентских библиотеках MySQL.
      Часть библиотек требуют сборки PHP с опцией --with-zlib.
      Этот нюанс описан в FAQ по MySQL.
      
    - 
     
      Windows: Я установил PHP, но когда пытаюсь открыть страницу скрипта
      в браузере, получаю ошибку:
      
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:
 
 
- 
     
      Это сообщение говорит о том, что PHP не справился с выводом данных в стандартный поток ввода-вывода.
      Чтобы увидеть понятное сообщение об ошибке, в командной строке перейдите в директорию,
      в которой лежит исполняемый файл PHP (php.exe в Windows),
      и запустите команду php -i. PHP выведет ошибку, которая связана с запуском PHP
      и которая подскажет, что требуется исправить. Экран с HTML-кодом, который вывела
      функция phpinfo()), сообщит, что PHP работает нормально.
      
      Как только PHP заработает в командной строке, попробуйте снова получить доступ
      к скрипту через браузер. Вероятные причины, по которым скрипт не сработает, состоят в следующем:
      
      - 
       
        Права на PHP-скрипт, файлы php.exe,
        php5ts.dll, php.ini или модули PHP,
        которые вы пытаетесь загрузить, не дают анонимному интернет-пользователю
        ISUR_<machinename>получить к ним доступ.
- 
       
        Файл скрипта отсутствует (или, возможно, лежит не там, где вы предполагали,
        относительно корневого каталога веб-сервера). Обратите внимание, что на веб-сервере IIS
        можно отловить ошибку, отметив опцию «check file exists» в настройках
        «script mappings» в Internet Services Manager. Если файл отсутствует, сервер вместо
        этого вернёт ошибку 404. Дополнительное преимущество состоит в том, что IIS будет выполнять
        необходимую аутентификацию на основе разрешений NTlanMan в файле сценария.
       
      
 
    - 
     
      Windows: Я всё сделал по инструкции, но PHP и сервер IIS не хотят работать вместе!
     
    
- 
     
      Убедитесь, что пользователи, которым может потребоваться запуск PHP-скрипта,
      имеют права на запуск php.exe! Веб-сервер IIS использует анонимного
      пользователя, который был создан при инсталляции. Этот пользователь должен иметь
      права на запуск файла php.exe. Так же, каждый авторизованный
      пользователь должен иметь права на запуск php.exe.
      А для IIS4 нужно сказать, что PHP — это скриптовый движок.
      Также прочтите этот FAQ.
      
    - 
     
      Когда я запускаю PHP как интерфейс CGI к веб-серверам IIS, PWS, OmniHTTPD или Xitami,
      получаю ошибку: Security Alert! PHP CGI
      cannot be accessed directly..
- 
     
      Вы должны установить опцию 
      cgi.force_redirect со значением 0.
      По умолчанию она равна1. Убедитесь, что она не закомментирована
      символом;. Как и остальные опции PHP, её настраивают в файле php.ini
 
      Поскольку опция по умолчанию равна 1, критически важно убедиться,
      что используется именно тот файл php.ini, который нужен.
      Этот FAQ рассказывает об этом подробнее.
 
    - 
     
      Как я могу понять, что файл php.ini найден и используется? Складывается впечатление,
      что вносимые изменения игнорируются.
     
    
- 
     
      Для проверки, какой именно файл php.ini подключается, запустите функцию
      phpinfo(). В верхней части вывода будет список с названием
      Configuration File (php.ini). Из него можно понять, какой
      именно файл php.ini подключён. Если указана только директория в PATH,
      а файл конфигурации не прочитан, то просто скопируйте его в эту директорию.
      Если php.ini включён в переменную окружения PATH — это значит, что он прочитан.
 
      Если файл php.ini читается и PHP запускается как модуль, то после
      внесения изменений в php.ini необходимо перезагрузить
      веб-сервер.
      
      Также смотрите описание php_ini_loaded_file().
      
    - 
     
      Как в Windows я могу сделать файл php.ini доступным для PHP?
     
    
- 
     
      Есть несколько способов сделать это. Если вы установили Apache,
      обратитесь к документации Apache, иначе вы должны установить
      переменную среды PHPRC.
      
    - 
     
      Можно ли использовать согласование контента Apache, которое настраивается опцией MultiViews,
      с PHP?
     
    
- 
     
      Всё будет работать правильно, если ссылки на PHP-файлы содержат расширения.
      Этот FAQ описывает конфигурацию, в которой ссылки не содержат расширения
      и требуется согласовывать контент для PHP-файлов из URL-адреса.
      Строку AddType application/x-httpd-php .phpзаменяют на следующие, если это так:
 
AddHandler php5-script php
AddType text/html php 
 Это решение не сработает с Apache 1, поскольку модуль PHP не отлавливаетphp-script.
    - 
     
      Ограничили ли PHP обработкой только HTTP-методов GET и POST?
     
    
- 
     
      Нет, можно обработать и другие методы запроса, например CONNECT.
      Правильный статус ответа нужно посылать через функцию
      header(). Если нужно, чтобы PHP работал только с
      методами GET и POST, необходимо сконфигурировать Apache так:
       
<LimitExcept GET POST>
Deny from all
</LimitExcept>