Перейти к контенту
  • 0

Проблема с AJAX


Chib@

Вопрос

По делу:

 

Жил форум 3.0.2 и жил, всё работало норм. После краха браузера (одиночный вылет из Firefox). в то время когда была открыта страница админки, ajax пахать наотрез отказался....

 

Выдержка из консоли ошибок:

<b>Warning</b>:  is_file() [<a href='function.is-file'>function.is-file</a>]: open_basedir restriction in effect. File(/var/tmp/minify_e97322a96caa006fd23ae80beb784580) is not within the allowed path(s): (/home/***) in <b>/home/***/***/forum/public/min/lib/Minify/Cache/File.php</b> on line <b>71</b><br />
<br />
<b>Warning</b>:  is_file() [<a href='function.is-file'>function.is-file</a>]: open_basedir restriction in effect. File(/var/tmp/minify_e97322a96caa006fd23ae80beb784580) is not within the allowed path(s): (/home/***) in <b>/home/***/***/forum/public/min/lib/Minify/Cache/File.php</b> on line <b>33</b><br />
<br />
<b>Warning</b>:  is_file() [<a href='function.is-file'>function.is-file</a>]: open_basedir restriction in effect. File(/var/tmp/minify_e97322a96caa006fd23ae80beb784580.gz) is not within the allowed path(s): (/home/***) in <b>/home/***/***/forum/public/min/lib/Minify/Cache/File.php</b> on line <b>33</b><br />

 

Собсно строки из /public/min/lib/Minify/Cache/File.php (думаю мало чем помогут, файл оригинальный и не редактировался)

С 28 по 72 строку:

	public function store($id, $data)
{
	$flag = $this->_locking
		? LOCK_EX
		: null;
	if (is_file($this->_path . '/' . $id)) {
		@unlink($this->_path . '/' . $id);
	}
	if (! @file_put_contents($this->_path . '/' . $id, $data, $flag)) {
		return false;
	}
	// write control
	if ($data !== $this->fetch($id)) {
		@unlink($file);
		return false;
	}
	return true;
}

/**
 * Get the size of a cache entry
 *
 * @param string $id cache id (e.g. a filename)
 * 
 * @return int size in bytes
 */
public function getSize($id)
{
	return filesize($this->_path . '/' . $id);
}

/**
 * Does a valid cache entry exist?
 *
 * @param string $id cache id (e.g. a filename)
 * 
 * @param int $srcMtime mtime of the original source file(s)
 * 
 * @return bool exists
 */
public function isValid($id, $srcMtime)
{
	$file = $this->_path . '/' . $id;
	return (is_file($file) && (filemtime($file) >= $srcMtime));
}

 

Подскажите в чём может быть проблема.

 

P.S: Пробовал перезаливать папку js (как админки, так и паблика)- эффекта ноль.

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

а) проблема не в браузере, а в сервере

Просто в браузере у вас был закеширован рабочий скрипт. После краха кэш сбросился, и вы получили с сервера текущую версию с ошибкой.

 

б) откуда появилась ошибка на сервере?

Ошибка возникла после того, как вы в настройках форума в разделе "Производительность" включили галку "сжимать javascript".

 

в) как убрать ошибку?

Тут два варианта:

1) отключить сжатие javascript на сервере

2) исправить неверную настройку хостинга *

 

--------------------------

* подробнее про неверную настройку:

"open_basedir restriction in effect" - ошибка, возникающая при попытке PHP-скрипта обратиться к файлу, находящемуся вне директории, прописанной в параметре open_basedir. Данный параметр прописывается в конфигурации apache или .htaccess файле и служит для безопасности виртуального хостинга - не позволяет скриптам забираться в другие директории, кроме самой директории сайта. Как видим, библиотека Minify использует системный путь /var/tmp/, находящийся вне пределов вашей директории, из-за чего и возникает ошибка.

 

пути решения:

а) отключить ограничение open_basedir;

б) поправить путь временной (tmp) директории в настройках библиотеки.

 

 

Дополнительные уточнения:

 

а) настройка, вызывающая ошибку:

Настройки и инструменты > Системные настройки > Производительность > Сжать javascript?

Вы можете включить сжатие javascript и CSS для уменьшения HTTP запросов к серверу.

 

б) как прописать свой путь временной директории для библиотеки Minify:

/public/min/config.php

/**
* For best performance, specify your temp directory here. Otherwise Minify
* will have to load extra code to guess. Some examples below:
*/
//$min_cachePath = 'c:\\WINDOWS\\Temp';
//$min_cachePath = '/tmp';
//$min_cachePath = preg_replace('/^\\d+;/', '', session_save_path()

 

1) создайте директорию внутри папки с форумом с названием, например, tmp,

2) выставите на нее права 777,

3) расскоментируйте и измените строку:

//$min_cachePath = '/tmp';

на:

$min_cachePath = '/home/***/***/forum/tmp';

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ritsuka, спасибо огромное за столь детальное разъяснение :D

 

Изменить open_basedir возможности нет, поэтому решил менять путь в конфиге.

 

Делаю всё по инструкции. Эффекта ноль. Тот же эррор. Ругается на /var/tmp/

Ссылка на комментарий
Поделиться на других сайтах

  • 0

не могу добраться до

Настройки и инструменты > Системные настройки > Производительность > Сжать javascript?

 

Нажатие на Производительность ни к чему не приводит, т.к. js не пашет

 

путь к временной директории ничего не изменил

Ссылка на комментарий
Поделиться на других сайтах

  • 0

При открытых менюшках, все настройки идут без вкладок на одной странице, смотрите ниже на странице "Системные настройки".

Ritsuka: большое спасибо, получилось по Вашей инструкции. :D

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.