Joomla.it Forum
Joomla! 3 => Installazione, migrazione e aggiornamento => : surferbloggy 13 Jan 2013, 18:03:34
-
Ciao ho trasferito un sito joomla 2.5 da un dominio ad un altro e nel nuovo dominio mi da errrore su
Fatal error: Call to undefined function apc_cache_info() in /home/hipkoder/public_html/miosito.com/libraries/joomla/cache/storage/apc.php on line 132
che sarebbe questa
$allinfo = apc_cache_info('user');
questa è la pagina apc.php
cosa dovrei fare???grazie dell'aiuto
<?php
/**
* @package Joomla.Platform
* @subpackage Cache
*
* @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die;
/**
* APC cache storage handler
*
* @package Joomla.Platform
* @subpackage Cache
* @see http://php.net/manual/en/book.apc.php
* @since 11.1
*/
class JCacheStorageApc extends JCacheStorage
{
/**
* Get cached data from APC by id and group
*
* @param string $id The cache data id
* @param string $group The cache data group
* @param boolean $checkTime True to verify cache time expiration threshold
*
* @return mixed Boolean False on failure or a cached data string
*
* @since 11.1
*/
public function get($id, $group, $checkTime = true)
{
$cache_id = $this->_getCacheId($id, $group);
return apc_fetch($cache_id);
}
/**
* Get all cached data
*
* @return array data
*
* @since 11.1
*/
public function getAll()
{
parent::getAll();
$allinfo = apc_cache_info('user');
$keys = $allinfo['cache_list'];
$secret = $this->_hash;
$data = array();
foreach ($keys as $key)
{
$name = $key['info'];
$namearr = explode('-', $name);
if ($namearr !== false && $namearr[0] == $secret && $namearr[1] == 'cache')
{
$group = $namearr[2];
if (!isset($data[$group]))
{
$item = new JCacheStorageHelper($group);
}
else
{
$item = $data[$group];
}
$item->updateSize($key['mem_size'] / 1024);
$data[$group] = $item;
}
}
return $data;
}
/**
* Store the data to APC by id and group
*
* @param string $id The cache data id
* @param string $group The cache data group
* @param string $data The data to store in cache
*
* @return boolean True on success, false otherwise
*
* @since 11.1
*/
public function store($id, $group, $data)
{
$cache_id = $this->_getCacheId($id, $group);
return apc_store($cache_id, $data, $this->_lifetime);
}
/**
* Remove a cached data entry by id and group
*
* @param string $id The cache data id
* @param string $group The cache data group
*
* @return boolean True on success, false otherwise
*
* @since 11.1
*/
public function remove($id, $group)
{
$cache_id = $this->_getCacheId($id, $group);
return apc_delete($cache_id);
}
/**
* Clean cache for a group given a mode.
*
* group mode : cleans all cache in the group
* notgroup mode : cleans all cache not in the group
*
* @param string $group The cache data group
* @param string $mode The mode for cleaning cache [group|notgroup]
*
* @return boolean True on success, false otherwise
*
* @since 11.1
*/
public function clean($group, $mode = null)
{
$allinfo = apc_cache_info('user');
$keys = $allinfo['cache_list'];
$secret = $this->_hash;
foreach ($keys as $key)
{
if (strpos($key['info'], $secret . '-cache-' . $group . '-') === 0 xor $mode != 'group')
{
apc_delete($key['info']);
}
}
return true;
}
/**
* Force garbage collect expired cache data as items are removed only on fetch!
*
* @return boolean True on success, false otherwise.
*
* @since 11.1
*/
public function gc()
{
$allinfo = apc_cache_info('user');
$keys = $allinfo['cache_list'];
$secret = $this->_hash;
foreach ($keys as $key)
{
if (strpos($key['info'], $secret . '-cache-'))
{
apc_fetch($key['info']);
}
}
}
/**
* Test to see if the cache storage is available.
*
* @return boolean True on success, false otherwise.
*
* @since 11.1
*/
public static function test()
{
return extension_loaded('apc');
}
/**
* Lock cached item - override parent as this is more efficient
*
* @param string $id The cache data id
* @param string $group The cache data group
* @param integer $locktime Cached item max lock time
*
* @return object Properties are lock and locklooped
*
* @since 11.1
*/
public function lock($id, $group, $locktime)
{
$returning = new stdClass;
$returning->locklooped = false;
$looptime = $locktime * 10;
$cache_id = $this->_getCacheId($id, $group) . '_lock';
$data_lock = apc_add($cache_id, 1, $locktime);
if ($data_lock === false)
{
$lock_counter = 0;
// loop until you find that the lock has been released. that implies that data get from other thread has finished
while ($data_lock === false)
{
if ($lock_counter > $looptime)
{
$returning->locked = false;
$returning->locklooped = true;
break;
}
usleep(100);
$data_lock = apc_add($cache_id, 1, $locktime);
$lock_counter++;
}
}
$returning->locked = $data_lock;
return $returning;
}
/**
* Unlock cached item - override parent for cacheid compatibility with lock
*
* @param string $id The cache data id
* @param string $group The cache data group
*
* @return boolean True on success, false otherwise.
*
* @since 11.1
*/
public function unlock($id, $group = null)
{
$unlock = false;
$cache_id = $this->_getCacheId($id, $group) . '_lock';
$unlock = apc_delete($cache_id);
return $unlock;
}
}
-
controllato con filezilla di aver trasferito effettivamente tutto?... che non siano rimasti files in "canna"?
-
vediamo provo a ritrasferire tutti i file grazie ciao :)
-
ho iscaricato tutto il sito dal vecchio dominio e riuplodato tutto nel nuovo dominio ma niente mi da sempre
Fatal error: Call to undefined function apc_cache_info() in /home/hipkoder/public_html/miosito.com/libraries/joomla/cache/storage/apc.php on line 132
mi aiutate????
-
apri il configuration.php con un editor utf-8 (notepad++)
controlla l'esatto path di tmp e cache poi prova
se ancora non funziona sempre nello stesso file prova a cambiare l'handler della cache da db a file o viceversa.
se ancora non funziona il server non è adatto a joomla poichè ha versioni sw troppo datate dove quell'handler di php non è gestito... apc dovrebbe riguardare PECL. Da php info controlla la versione di queste sul nuovo e comparale col vecchio
Non far ritornare l'errore è banale, basta mettergli un condizionale if function exist prima di caricarla a lla riga indicata come errore..... il problema è che non funzionerà anche altro
-
grazie ti posso chiedere se puoi guardare il phpinfo() allegato per capire se ci posso lavorare con joomla su questo server?? ti ringrazio
[allegato eliminato da un amministratore essendo vecchio più di un anno]
-
prova a chiedere all'hoster il perchè di quell'errore, pecl è alla versione giusta ma non vedo il supporto apc... che in verità anch'io non ho ma mi sembra di ricordare che il problema fosse su vecchie versioni debian.
Credo che l'hoster sia l'unico a poterti dare risposte sensate o cmq a poter risolvere