#php #.htaccess
#php #.htaccess
Вопрос:
кто-нибудь знает, возможно ли включить функцию php parse_ini_file(), переопределяющую настройки php.ini в .htaccess? Если да, то как это можно сделать?
Спасибо всем за помощь
Комментарии:
1. Можете ли вы быть более конкретным? Что вы подразумеваете под «в .htaccess»? Чего вы пытаетесь достичь? Вы можете изменить некоторые настройки PHP во время выполнения с помощью
ini_set
.parse_ini_file
предназначен для синтаксического анализа текстовых файлов произвольного формата INI, а не для настройки сервера в реальном времени.2. Параметр ini не влияет
parse_ini_file()
напрямую.3. Спасибо за ваш ответ. Я пытаюсь установить Joomla 1.6.1 на бесплатный хостинг, и если не удается, потому что parse_ini_file, вероятно, отключен в php.ini. Из-за того, что я не могу изменить php.ini, я узнал на некоторых веб-сайтах, что некоторые настройки php можно переопределить с помощью файла .htaccess. Итак, я спрашиваю, можно ли это сделать и как.
4. Странно. Пока вы не можете получить доступ к чужим файлам, я не вижу никаких проблем с безопасностью или производительностью
parse_ini_file()
. Вы можете спросить своего хостера, хотят ли они изменить ini для вас. По моему мнению, нет особого смысла отключать эту функцию. Начиная с версии 5.3parse_ini_string()
. Вы можете попробовать, работает ли эта функция в сочетании сfile_get_contents()
🙂 (если у вас установлен php >= 5.3)5. Я понимаю. Я попробую обратиться к хостеру. Я думаю, что другие пользователи сталкиваются с этой проблемой. Спасибо вам всем за помощь!
Ответ №1:
Если он был отключен с помощью disable_functions
, вы не можете повторно активировать его с помощью .htaccess
php_value
директивы. См http://php.net/manual/en/ini.core.php
Ответ №2:
Насколько я знаю, parse_ini_file() является основной функцией, встроенной в PHP, поэтому на самом деле ее нельзя включить. Я предполагаю, что вы столкнулись с одной из таких ситуаций:
-
Ваш хост отключил его по соображениям безопасности (:-?), используя директиву disable_functions.
-
Вы указываете URL-адрес в
$filename
параметре, и ваш хост отключил загрузку или удаленные файлы с помощью директивы allow_url_fopen. -
Вы читаете файл *.ini, к которому у вас нет доступа.
В общем, все три случая подразумевают, что вам просто не разрешено это делать. Даже если вам удастся найти способ взлома и обойти ограничение, возможно, вы нарушаете условия использования вашего хостинга. Как бы то ни было, возможно, вы просто пытаетесь сделать что-то не то:
- Локальные файлы могут быть прочитаны с диска, нет необходимости использовать HTTP.
- Вы должны иметь возможность читать свои собственные файлы, учитывая, что им предоставлены соответствующие разрешения.
Ответ №3:
Я добавил копию php.ini в папку, в которую приложение хочет вызвать parse_ini_file()
, и это помогло, но мой хостинг-провайдер «выделяет» файл php.ini в каталог, поэтому каждое приложение может использовать разные настройки.
В этом случае приложение жаловалось PHP function parse_ini_file is not available
не потому, что метод был отключен, а потому, что оно не смогло найти php.ini для синтаксического анализа.