Раздер Название темы Ответов Последний
Графика для сайта Shareman 3.70 RUS/2010 0 mandelsonsouggisse
Изготовление контента Нужен контент 10 ali7875
DataLife Engine Проблема регистрации. 1 JimaX
DataLife Engine Модальное окно в DataLife Engine 3 lionprizrak
DataLife Engine Настройка robots.txt 8 Prizrak_2012
Стол заказов на cmsko.ru Мини-чат. 2 JimaX
Общение пользователей Статьи 3 nastroenie
Хостинг TneHost - Хстинг провайдер 10 ali7875
DataLife Engine Установка банеров 9 JimaX
DataLife Engine Помогите с установой. dle95 2 nastroenie
Яндекс Apdate
Апдейты Яndex тИЦ
17.07.2012Последний |
06.06.2012
13.04.2012
Апдейты Яndex выдачи
14.08.2012Последний |
04.08.2012
31.07.2012
Апдейты ЯКаталога
16.08.2012Последний |
15.08.2012
14.08.2012
JimaX: Насчет оптимизации это все зависит от твоего сайта, ну примерная цена хорошей оптимизации от 700 рублей. ab
JimaX: ali7875, уникализировать в каком смысле ? Для поисковиков или для людей, то есть сам шаблон изменить. laughing
ali7875: да и сделать внутреннюю оптимизацию сайта?
ali7875: JimaX: Привет, сколько примерно будет стоить уникализировать шаблон?
lionprizrak: написал на форуме http://cmsko.ru/forum/topic_29
JimaX: lionprizrak,в чате просто не изложишь всю суть поставленного вопроса.
JimaX: lionprizrak, не надо постоянно засорять чат мусором который вы здесь пишите, создайте просто тему на форуме и все, ждите пока ответят. В следующий раз получите Бан. banned
lllekojladka: без \\
lllekojladka: lionprizrak: scroll=\"yes\"
lllekojladka: scroll=\"yes\"
lionprizrak: help_mehelp_mehelp_me
lionprizrak: Мне здесь кто нибудь ответит плиз (Модальное окно в DataLife Engine) А как сделать что бы внутри появлялась справа прокрутка, при большом объёме текста.
Prizrak_2012: JimaX нужна помошь по одному делу .... не бесплатно конечно. если можешь помочь отпишись на ящик мне.
Frenk: lionprizrak, я себе тоже его установил, и нечего не слетело smile-15 просто ты может что то не так сделал fellow
lionprizrak: После установки этого модуля dude Smart Leech у меня слетело подтверждение сайта на yandexe
JimaX: ali7875,тегов noindex будет достаточно, ну мы еще используем модуль dude Smart Leech, для скрытия и обработки внешних ссылок.
ali7875: JimaX: тегов noindex и nofollow хватит или еще что-то надо?
ali7875: JimaX: как правильно отредактировать код в витрине ссылок, чтобы поисковики не ругались?
lionprizrak: (Модальное окно в DataLife Engine) А как сделать что бы внутри появлялась справа прокрутка, при большом объёме текста.
ali7875: nastroenie: для начала нужно в админпанели создать категории, а вообще создай темку в форуме, там проще будет писать))
Информация
Главная страница » DLE » DLE Хаки » Альтернатива файловому кешу, APC (Advanced PHP Cache)
Альтернатива файловому кешу, APC (Advanced PHP Cache)
» Просмотров: 636 » Дата: 5-01-2011, 13:14 » Автор: NeoMurderer
Описание: Данных хак заменяет систему кэширования DLE на более мощную и продвинутую APC
Автор: сущность

Конфиг PHP модуля:
extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.shm_size=256M; 256
apc.ttl=180
apc.user_ttl=120
apc.gc_ttl=120
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
apc.rfc1867=1
apc.localcache=1
apc.file_update_protection=30
apc.include_once_override=1
apc.stat_ctime=1
apc.slam_defense=Off
;apc.lazy_classes=1
;apc.lazy_functions=1


установить желательно из СВН (Linux, FreeBSD, etc..):
svn co 'http://svn.php.net/repository/pecl/apc/trunk/' 'pecl-apc'
# whereis php-config
php-config: /usr/local/bin/php-config
./configure --enable-apc --enable-apc-mmap --with-php-config='/usr/local/bin/php-config'


Начинаем установку хака

1. Открыть файл engine/init.php

- найти
require_once ENGINE_DIR . '/modules/gzip.php';


- добавить
require_once ENGINE_DIR . '/classes/APC.php'; // Advanced PHP byte code cached

$apc_cache = new cache_apc();


2. Открыть файл engine/modules/functions.php

Найти

function set_vars($file, $data) {
    
    $fp = fopen( ENGINE_DIR . '/cache/system/' . $file . '.php', 'wb+' );
    fwrite( $fp, serialize( $data ) );
    fclose( $fp );
    
    @chmod( ENGINE_DIR . '/cache/system/' . $file . '.php', 0666 );
}


заменить на


function set_vars($file, $data) {
    global $apc_cache;

    $apc_cache->set($file, $data);
}


найти

function get_vars($file) {
    
    return unserialize( @file_get_contents( ENGINE_DIR . '/cache/system/' . $file . '.php' ) );
}


заменить на
function get_vars($file) {
    global $apc_cache;

    return $apc_cache->get($file);
}


найти
function dle_cache($prefix, $cache_id = false, $member_prefix = false) {
    global $config, $is_logged, $member_id;
    
    if( $config['allow_cache'] != "yes" ) return false;
    
    if( $is_logged ) $end_file = $member_id['user_group'];
    else $end_file = "0";
    
    if( ! $cache_id ) {
        
        $filename = ENGINE_DIR . '/cache/' . $prefix . '.tmp';
    
    } else {
        
        $cache_id = totranslit( $cache_id );
        
        if( $member_prefix ) $filename = ENGINE_DIR . "/cache/" . $prefix . "_" . $cache_id . "_" . $end_file . ".tmp";
        else $filename = ENGINE_DIR . "/cache/" . $prefix . "_" . $cache_id . ".tmp";
    
    }
    
    return @file_get_contents( $filename );
}


заменить на

function dle_cache($prefix, $cache_id = false, $member_prefix = false) {
    global $config, $is_logged, $member_id, $apc_cache;
    
    if( $config['allow_cache'] != "yes" ) return false;
    
    if( $is_logged ) $end_file = $member_id['user_group'];
    else $end_file = "0";
    
    if( ! $cache_id ) {
        $filename = $prefix;
    } else {
        $cache_id = totranslit( $cache_id );

        if( $member_prefix ) $filename = $prefix . "_" . $cache_id . "_" . $end_file;
        else $filename = $prefix . "_" . $cache_id;
    }
    return $apc_cache->get( $filename );
}


найти

function create_cache($prefix, $cache_text, $cache_id = false, $member_prefix = false) {
    global $config, $is_logged, $member_id;
    
    if( $config['allow_cache'] != "yes" ) return false;
    
    if( $is_logged ) $end_file = $member_id['user_group'];
    else $end_file = "0";
    
    if( ! $cache_id ) {
        $filename = ENGINE_DIR . '/cache/' . $prefix . '.tmp';
    } else {
        $cache_id = totranslit( $cache_id );
        
        if( $member_prefix ) $filename = ENGINE_DIR . "/cache/" . $prefix . "_" . $cache_id . "_" . $end_file . ".tmp";
        else $filename = ENGINE_DIR . "/cache/" . $prefix . "_" . $cache_id . ".tmp";
    
    }
    
    $fp = fopen( $filename, 'wb+' );
    fwrite( $fp, $cache_text );
    fclose( $fp );
    
    @chmod( $filename, 0666 );

}


заменить на

function create_cache($prefix, $cache_text, $cache_id = false, $member_prefix = false) {
    global $config, $is_logged, $member_id,    $apc_cache;
    
    if( $config['allow_cache'] != "yes" ) return false;
    
    if( $is_logged ) $end_file = $member_id['user_group'];
    else $end_file = "0";
    
    if( ! $cache_id ) {
        $filename = $prefix;
    } else {
        $cache_id = totranslit( $cache_id );

        if( $member_prefix ) $filename = $prefix . "_" . $cache_id . "_" . $end_file;
        else $filename = $prefix . "_" . $cache_id . ".tmp";
    }

    $apc_cache->set($filename, $cache_text);
}


найти

function clear_cache($cache_area = false) {
    
    $fdir = opendir( ENGINE_DIR . '/cache' );
    
    while ( $file = readdir( $fdir ) ) {
        if( $file != '.' and $file != '..' and $file != '.htaccess' and $file != 'system' ) {
            
            if( $cache_area ) {
                
                if( strpos( $file, $cache_area ) !== false ) @unlink( ENGINE_DIR . '/cache/' . $file );
            
            } else {
                
                @unlink( ENGINE_DIR . '/cache/' . $file );
            
            }
        }
    }
}


заменить на

function clear_cache($cache_area = false) {
    global $apc_cache;

    $apc_cache->clear_cache();
}


Содержание файла engineclassesAPC.php
<?php
/*
=====================================================
DataLife Engine Advanced PHP Cache [mode] =:)
Coded by Pandora aka Denis
=====================================================
*/

if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

class cache_apc
{
    //var $used = true;

    function cache_apc ()
    {
        if (!$this->is_installed())
        {
            die('Error: APC extension not installed');
        }
    }

    // Fetch a stored variable from the cache
    function get ($name)
    {
        return apc_fetch($name);
    }

    //  Cache a variable in the data store
    function set ($name, $value, $ttl = 0)
    {
        return apc_store($name, $value, $ttl);
    }

    // Removes a stored variable from the cache
    function rm ($name)
    {
        return apc_delete($name);
    }
    
    // Clears the APC cache
    function clear_cache ($cache_type = NULL)
    {
        return apc_clear_cache($cache_type);
    }
    
    // Retrieves APC's Shared Memory Allocation information
    function sma_info($limited = false)
    {
        return apc_sma_info($limited);
    }

    // Defines a set of constants for retrieval and mass-definition
    function save_constants($key, $constants, $case_sensitive = true)
    {
        return apc_define_constants($key, $constants, $case_sensitive);
    }

    // Loads a set of constants from the cache
    function load_constants($key, $case_sensitive = true)
    {
        return apc_load_constants($key, $case_sensitive);
    }

    function is_installed ()
    {
        return function_exists('apc_fetch');
    }
}



Комментарии: 0 Теги: Альтернатива, файловому, кешу, Advanced, Cach
 (голосов: 0)
Уважаемый посетитель, Вы зашли к нам на сайт как незарегистрированный пользователь. Мы рекомендуем Вам бесплатно зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.