Я должен явиться олицетворением PHP через FastCGI?

Просто столкнулся с этой проблемой самостоятельно на CentOS 5.4, у меня не было openssl-devel установленным! Так выполнение:

yum install openssl-devel

зафиксированный это для меня

Или если Вы находитесь на чем-то находящемся в debian:

sudo apt-get install libssl-dev

16
задан 13 April 2017 в 15:14
2 ответа

13 месяцев спустя я хотел вернуться к своему собственному вопросу. За это время я перевел полдюжины веб-сайтов с IIS 6 на IIS 7.5 и настроил их с помощью предпочитаемого мной метода. Все, что я могу сказать, это то, что веб-сайты работают, у них не было никаких проблем с безопасностью (не то чтобы это были популярные сайты), и, на мой взгляд, настройка более безопасна, чем то, что рекомендует learn.iis.net.

Для потомков , вот соответствующие настройки. В INI PHP:

cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 0

В IIS:

  • Пул приложений> Идентификация> ApplicationPoolIdentity
  • Веб-сайт> Аутентификация> Анонимная аутентификация> Конкретный пользователь: IUSR

Разрешения NTFS и где их применять их:

  • IUSR - разрешить чтение, запретить запись
    • Корневой каталог веб-сайта IIS. Например, в проекте Zend Framework это будет каталог / public.
    • Если ваше приложение загружает файлы и сохраняет их в общедоступном каталоге, вам необходимо применить это разрешение к временному каталогу загрузки. Это потому, что move_uploaded_file сохранит разрешения каталога загрузки. Это самый большой недостаток этой настройки разрешений, который я обнаружил.
  • ApplicationPoolIdentity ( IIS AppPool \ <> ) - Grant Read & List
    • Корневой каталог вашего PHP-приложения. Например, в проекте Zend Framework это будет весь проект.
    • Любые внешние библиотеки (Zend, Doctrine и т. Д.), Включенные в ваше приложение, которых нет в папке приложения.
  • ApplicationPoolIdentity - Grant Изменить
    • Любое место, куда ваше приложение будет записывать, например upload_tmp_dir , session.save_path и error_log .
    • Иногда мне нужно добавить это разрешение в корень приложения PHP в моей среде разработки для поддержки таких вещей, как Doctrine, автоматическое создание прокси .
  • ApplicationPoolIdentity - Список грантов
    • Если ваше приложение находится в виртуальном каталоге, вам нужно будет добавить это разрешение в корень веб-сайта. Это позволяет вашему приложению читать свой родительский файл web.config. Например, если корнем вашего приложения является http://example.com/MyPHPApp , установите это разрешение в веб-каталоге example.com. В частности, вам нужно применить только «Эта папка и файлы», «только в этом контейнере».

Надеюсь, это поможет любому, кто решит, что инструкции learn.iis.net не идеальны.

17
ответ дан 2 December 2019 в 20:42

См.: http://www.php.net/manual/en/install.windows.iis6.php

Олицетворение и доступ к файловой системе

Рекомендуется включить олицетворение FastCGI в PHP при использовании IIS. Этим управляет fastcgi.impersonate директива в файле php.ini. Когда олицетворение будет включено, PHP выполнит все операции файловой системы от имени учетной записи пользователя, которая была determinedby аутентификацией IIS.

На документацию это просто разрешает fastcgi действовать от имени клиента, использующего все те же полномочия (в Вашем случае, чтобы быть, что похоже на учетную запись IUSR). Другими словами, для выполнения всех действий, обычно позволенных клиенту (или anon's), владеют учетными данными. Ни больше, ни меньше. Без этого набора я предполагаю, что плохой fastcgi оставили бы хромым.

1
ответ дан 2 December 2019 в 20:42

Теги

Похожие вопросы