Перейти к контенту
  • 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

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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