За последние 24 часа нас посетили 18916 программистов и 1605 роботов. Сейчас ищут 1157 программистов ...

В .user.ini (PHP 5.6.10 CGI) отключить обработку php

Тема в разделе "Установка PHP", создана пользователем lurii, 2 июл 2015.

  1. lurii

    lurii Активный пользователь

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
    http://php.ru/manual/configuration.file.per-user.html
    Кладу в папку файл .user.ini с содержимым:
    Код (Text):
    1. engine = Off
    2. upload_max_filesize = 200M
    3. short_open_tag = On
    и еще файлик i.php:
    Код (Text):
    1. <?phpinfo();?>
    При изменении upload_max_filesize и short_open_tag - работают, engine = Off - не влияет.
    Собственно и вопрос: как в файле .user.ini отключить обработку сценариев в этой папке?
    (в .htaccess была строка php_flag engine off, но при CGI она выдает 500-ю ошибку сервера - пришлось отключить)
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    В документации написано что engine только для Apache модуля PHP https://secure.php.net/manual/ru/apache.configuration.php
    Просто посмотри как с помощью Apache запретить обработку PHP в нужной директории.

    Ошибка 500, но в logs веб сервера или PHP что написано? Из-за чего она?
     
  3. lurii

    lurii Активный пользователь

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
    В этой папке (upload) всегда лежал .htaccess:
    Код (Text):
    1. Options -Indexes
    2. RewriteEngine on
    3. RewriteBase /
    4. php_flag engine off
    5. RemoveType .php .php3 .php4 .php5 .php6 .phtml .pl .asp .aspx .cgi .exe
    6. RemoveHandler .php .php3 .php4 .php5 .php6 .phtml .pl .asp .aspx .cgi .exe
    Поставил php5610 как CGI - при обращении к картинкам он начал выдавать 500, т.к. при CGI виновата строка "php_flag engine off" - отключил ее, но поставил под сомнение .php7 .php8 .php9 .php10 ...

    В логах апача:
    Код (Text):
    1. 127.0.0.1 - - [02/Jul/2015:12:07:39 +0500] "GET /img/upload/i.php HTTP/1.1" 500 539
    Код (Text):
    1. [Thu Jul 02 12:07:39 2015] [alert] [client 127.0.0.1] /img/upload/.htaccess: Invalid command 'php_flag', perhaps misspelled or defined by a module not included in the server configuration
    Ну в общем эта директива работает если PHP установлен как модуль, а вот обновил до 5.6 - там только CGI и столкнулся с такой проблемой ... а что если придется выкладывать на хостинг с CGI??
    Универсальное решение было - "php_flag engine off", теперь его нет ...
    Пытаюсь задать это настройками .user.ini - не получается.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    А вот теперь подумай,
    1. engine только для режима mod_php
    2. у тебя CGI и engine не будет работать
    3. через htaccess, то есть через Apache нет возможности указать engine
    4. Вот http://stackoverflow.com/a/18948152 попробуй так
     
  5. lurii

    lurii Активный пользователь

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
    Все манипуляции в .htaccess для апача понятны, вопрос в другом - что можно сделать в самом .user.ini ? (скажем серв IIS)
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    IIS подключает же как-то PHP, значит можно посмотреть документацию, как это происходит и вычитать там способы которыми ты можешь ограничить выполнение PHP при каких-то нужных тебе условиях.
    Лучше на форуме по IIS спросить как запретить в определённой папке выполнение CGI скриптов.
     
  7. lurii

    lurii Активный пользователь

    С нами с:
    30 сен 2008
    Сообщения:
    40
    Симпатии:
    0
    Дык это опять конфигурирование сервера (IIS или Apache), а тут выход на сам PHP - .user.ini - думал можно в нем engine=off и все дела ... на крайняк disable_functions = all