#1 2009-05-05 01:39

101-s
Пользователь

Проблема с установкой на Мастерхост

Установил магазин на мастерхосте, и вылезает такая надпись:

Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/./templates/tmpl1//./templates/tmpl1/index.tpl.html) is not within the allowed path(s): (/home/логин/) in /home/логин/магазиин.ru/www/smarty/core/core.get_include_path.php on line 34

в чем может быть дело?

Неактивен

 

#2 2009-05-05 13:30

101-s
Пользователь

Re: Проблема с установкой на Мастерхост

Пришло сообщение от службы поддержки Мастерхоста:

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

1. Один из способов решения этой проблемы - это включить путь к домашней
директории в список путей, читаемых PHP скриптом (указанных параметром
open_basedir). Например, чтобы указать, что скрипт PHP имеет право читать
файлы из папок  /home/логин, /home/логин/магазин.ru и
/home/логин/tmp используйте синтакс:

    open_basedir
=/home/логин:/home/логин/магазин.ru:/home/логин/tmp

2. Так же вы можете изменить в php.ini строку display_errors = On на
display_errors = Off. Для этого Вам потребуется собственный PHP-CGI интерпретатор.
О том, как собрать свой интерпретатор или установить готовый, Вы можете узнать
по ссылке:
* http://masterhost.ru/support/doc/php/#compile

3. Или добавить в .htaccess строку php_flag display_errors off, если Вы не можете
самостоятельно собрать интерпретатор.

В связи с этим вопрос - где найти php.ini? ИЛИ  Какой из способов самый лучший?

Отредактировано 101-s (2009-05-05 13:34)

Неактивен

 

#3 2009-06-09 19:37

101-s
Пользователь

Re: Проблема с установкой на Мастерхост

Проблема решена другим способом, закомментировал одну хрень в файле
www/smarty/core/core.get_include_path.php
вот это:
    /*foreach ($_path_array as $_include_path) {
        if (file_exists($_include_path . DIRECTORY_SEPARATOR . $params['file_path'])) {
               $params['new_file_path'] = $_include_path . DIRECTORY_SEPARATOR . $params['file_path'];
            return true;
        }
    }*/

в связи с этим вопрос для тех кто разбирается в пхп - зачем нужна была эта хрень, если все прекрасно работает и без этого? Может шопскрипт несовместим с более поздними версиями пхп?

нашел тут еще одно, более изящное решение проблемы тут
всего лишь меняется file_exists(... на @file_exists(... и все пашет.

и вот еще одно решение тоже с этого форума:

Eugeny, еще раз спасибо. После обращения к хостеру получил ответ:
<<Исправили. Отключили open_basedir restriction для данного аккаунта.
И все стало на свои места.

Отредактировано 101-s (2009-06-09 19:50)

Неактивен

 

Board footer

Powered by PunBB