Przesunięty przez: arcy 26-03-2009, 00:01 |
[gotowa modyfikacja] Spider Friendly - poprawki i odmulanie |
Autor |
Wiadomość |
Centurion
Pomógł: 543 razy Posty: 1972
|
Wysłany: 09-02-2009, 01:23 [gotowa modyfikacja] Spider Friendly - poprawki i odmulanie
|
|
|
UWAGA! Poniższa modyfikacja była tylko tymczasowym rozwiązaniem problemu z obciążeniem związanym z modem SPIDER FRIENDLY i nie będzie już rozwijana. Link do tematu z ostatecznym rozwiązaniem:
http://www.przemo.org/php...pic.php?t=69660
Mimo wszystko poniższy sposób poprawnie i może być stosowane na forach!
Piszę tutaj bo temat ze Spider Friendly jest standowczo za długi a problem jest dość poważny, w każdym razie Crack powinien coś z tym zrobić, ja podam tylko moje rozwiązanie
Problem występuje przy włączonej opcji przepisywanie ze słowami kluczowymi, mianowicie, przy dość dużej ilości tematów na forum każdorazowo przy zapisywaniu cache tworzy się lista wszystkich tematów i jest zapisywana do pliku. Pliki te potrafią mieć nawet po kilkaset kb i skutecznie zamulić serwer przy includowaniu. Dlatego lepiej trzymać tą wygenerowaną listę tematów w bazie danych, gdyż baza danych jest zawsze szybsza niż wczytywanie plików.
Oto moje rozwiązanie, które odmuliło już 4 fora:
Kod: | nadpisz plik includes/spider_friendly (jest w załączniku)
#--- [ SQL ] ---
CREATE TABLE `phpbb_sf_cache` (
`id` tinyint(1) NOT NULL auto_increment,
`text` longtext NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO phpbb_sf_cache VALUES (1, '');
INSERT INTO phpbb_sf_cache VALUES (2, '');
INSERT INTO phpbb_sf_cache VALUES (3, '');
#--- [ OPEN ] ---
includes/constants.php
#--- [ FIND ] ---
?>
#--- [ BEFORE ADD ]---
define('SF_CACHE', $table_prefix . 'sf_cache');
#--- [ OPEN ] ---
includes/function_post.php
#--- [ FIND AND REMOVE ] ---
sql_cache('clear', 'multisqlcache_topics_sf');
#--- [ FIND ] ---
$topic_id = $db->sql_nextid();
}
#--- [ AFTER ADD ] ---
$sql = "UPDATE " . SF_CACHE . " SET text = ''";
$result = $db->sql_query($sql);
#--- [ OPEN ] ---
.htaccess
#--- [ FIND ] ---
RewriteRule ^cat([0-9]*)\.htm$ ./index.php?c=$1 [L,QSA]
#--- [ AFTER ADD ] ---
RewriteRule ^(cat|.*-cat)([0-9]+)\.htm$ ./index.php?c=$2 [L,QSA]
#--- [ OPEN ] ---
admin/admin_forums.php
#--- [ FIND ] ---
//należy dodać po każdym wystąpieniu tego - 7 razy
sql_cache('clear', 'forum_data');
#--- [ AFTER ADD ] ---
$sql = "UPDATE " . SF_CACHE . " SET text = ''";
$db->sql_query($sql); |
I to wszystko. Gwarantuję Wam że wasz serwer odetchnie.
Dodatkowo dodałem funkcję przepisywania nazw kategorii.
Uwaga.
Jeśli wyskoczy Wam błąd z max_allowed_packet skontaktujcie się z hosterem żeby ustawił większą wartość, aczkolwiek nie sądze żeby się to Wam przytrafiło.
Do Cracka: chyba sensowniej by było zrobić dodatkową komórkę w tabeli z tematami z przepisanym urlem nazwy tematu, generowanym przy pisaniu/edycji posta-tematu. Wydaje mi się że byłoby to nieporównywalnien optymalniejsze niż robienie listy tematów za każdym razem. |
_________________ Poza forum pomagam tylko odpłatnie
• przenoszenie/łączenie/naprawianie baz danych
• instalacja/pisanie modów, aktualizacja for z zachowaniem modów
• programowanie php/mysql |
Ostatnio zmieniony przez arcy 05-03-2009, 09:17, w całości zmieniany 5 razy |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
lui754
Pomógł: 591 razy Posty: 2699
|
Wysłany: 12-02-2009, 17:11
|
|
|
Centurion, ta poprawka nie działa poprawnie. Zainstalowałem to u siebie i na jakims forum i na początku jest ok ale póxniej powstaje problem bo nie da się napisać tematu. To znaczy wysyła wszystko ok ale jak chcemy wejść w temat to go nie ma na liście. Przy synchronizacji bazy za pomocą check_files wsykakuje lista tematów które są "puste"
Tak więc zobacz co jest nie tak. Tematów nie da się pisać a posty da. |
_________________ lui754 |
|
|
|
|
smyku2
Pomógł: 2 razy Posty: 114
|
Wysłany: 12-02-2009, 17:44
|
|
|
Na localhoście to sprawdzałem z ciekawości i był problem podobny, tylko, że przy pisaniu tematu wyskakiwało info że temat został napisany, po czym strona się odświeżała i witał nas komunikat "Taki temat lub post nie istnieje, albo został przed chwilą skasowany", i temat faktycznie znikał bez śladu. |
|
|
|
|
Centurion
Pomógł: 543 razy Posty: 1972
|
Wysłany: 12-02-2009, 17:58
|
|
|
to może być związane z max_allowed_packet, patrz wyżej |
_________________ Poza forum pomagam tylko odpłatnie
• przenoszenie/łączenie/naprawianie baz danych
• instalacja/pisanie modów, aktualizacja for z zachowaniem modów
• programowanie php/mysql |
|
|
|
|
cv65
Czarna lista
Pomógł: 16 razy Posty: 207
|
Wysłany: 12-02-2009, 21:33
|
|
|
Centurion,
a mógłbyś napisac dokładnie co zmieniłęs w pliku
spider_friendly.php
Pzdro |
_________________ Mam na sprzedaż mody
charts (obsługa filmików z youtube, okładek, pobieranie tekstów piosenek z tekstowo.pl )
Ajaxowa paginacja w tematach
Pytaj na gygy |
|
|
|
|
Seba123
Pomógł: 74 razy Posty: 868
|
Wysłany: 12-02-2009, 22:00
|
|
|
A porównać pliki to łaska ? |
_________________ Fejs |
|
|
|
|
Centurion
Pomógł: 543 razy Posty: 1972
|
Wysłany: 12-02-2009, 22:35
|
|
|
Słuchajcie sprawdzcie proszę w includes/function_post.php
przenieście Kod: | $sql = "UPDATE " . SF_CACHE . " SET text = ''";
$result = $db->sql_query($sql); |
POD
Kod: | $topic_id = $db->sql_nextid();
} |
|
_________________ Poza forum pomagam tylko odpłatnie
• przenoszenie/łączenie/naprawianie baz danych
• instalacja/pisanie modów, aktualizacja for z zachowaniem modów
• programowanie php/mysql |
|
|
|
|
silversurfer
Posty: 49
|
Wysłany: 13-02-2009, 19:02
|
|
|
Centurion, Hm nie mam pewności czy wprowadzić zmiany, gdy wystąpią błędy da się jakoś cofnąć, pomijam skopiowanie wcześniej pliku .php mowa o zapytaniu sql. |
|
|
|
|
kevin_
Pomógł: 768 razy Posty: 2680
|
Wysłany: 13-02-2009, 19:21
|
|
|
silversurfer, sądzę że wystarczy zapytanie:
Kod: |
DROP TABLE `phpbb_sf_cache`
|
bo utworzyliśmy NOWĄ TABELE i dodaliśmy do niej wpisy, więc sądzę że powinno być później "skutków ubocznych" |
_________________ Prezes |
|
|
|
|
Centurion
Pomógł: 543 razy Posty: 1972
|
Wysłany: 14-02-2009, 09:41
|
|
|
dokładnie jak kevin_ napisał, możesz potem tę tabelę spokojnie skasować jak coś pójdzie nie tak |
_________________ Poza forum pomagam tylko odpłatnie
• przenoszenie/łączenie/naprawianie baz danych
• instalacja/pisanie modów, aktualizacja for z zachowaniem modów
• programowanie php/mysql |
|
|
|
|
szafa81
Pomógł: 1 raz Posty: 62
|
Wysłany: 14-02-2009, 16:31
|
|
|
mod zainstalowany... poki co zadnych klopotow
nie wiem czy to zwiazane z nim ale mocno skrocil sie czas otwarcia strony podawany na dole forum |
_________________ Pozdrawiam, szafa. |
|
|
|
|
MagicalFire
Pomógł: 980 razy Posty: 4353
|
Wysłany: 14-02-2009, 17:15
|
|
|
Cytat: | nie wiem czy to zwiazane z nim ale mocno skrocil sie czas otwarcia strony podawany na dole forum |
tak to jest zasługa tego uzasadnienie
Centurion napisał/a: | mianowicie, przy dość dużej ilości tematów na forum każdorazowo przy zapisywaniu cache tworzy się lista wszystkich tematów i jest zapisywana do pliku. Pliki te potrafią mieć nawet po kilkaset kb i skutecznie zamulić serwer przy includowaniu. Dlatego lepiej trzymać tą wygenerowaną listę tematów w bazie danych, gdyż baza danych jest zawsze szybsza niż wczytywanie plików. |
|
_________________ nie za takie Przemo walczyliśmy |
|
|
|
|
lui754
Pomógł: 591 razy Posty: 2699
|
Wysłany: 14-02-2009, 22:35
|
|
|
Teraz działa jak należy Forum działa nieco szybciej. Dziękujemy |
_________________ lui754 |
|
|
|
|
Centurion
Pomógł: 543 razy Posty: 1972
|
Wysłany: 14-02-2009, 23:16
|
|
|
Jeśli Crack nie zmieni tego przez jakiś czas to zrobię alternatywą wersję która będzie trzymać wygenerowany url w tabeli z tematami (generowany przy tworzeniu i edycji tematu) i wywalę wogóle tworzenie tej listy tematów za każdym razem. Będzie to najoptymalniejsze z możliwych rozwiązań chyba, aczkolwiek będzie wymagało dużych zmian w kodzie SF, a generalnie niechałbym wchodzić Crackowi w drogę. |
_________________ Poza forum pomagam tylko odpłatnie
• przenoszenie/łączenie/naprawianie baz danych
• instalacja/pisanie modów, aktualizacja for z zachowaniem modów
• programowanie php/mysql |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
miszko
Pomógł: 10 razy Posty: 352
|
Wysłany: 15-02-2009, 12:48
|
|
|
A co z bazą danych?
Jak duże mniej więcej generowane jest dodatkowe obciążenie dla bazy? |
|
|
|
|
|