wordpress memória használata

Van pár weboldal a szerveren ami WP-t használ. Ezeket rendszerint én tartom karban. Frissítéskor mindegyik elszáll mert nem elég neki 20 Mb memória. Megnéztem mit lehet javítani az ügyön.
A kódot megvizsgálva azt tapasztaltam, hogy a teljes zipet egyszer, és a teljes ziptartalmat még egyszer beolvassa memóriába. Namármost ez nem túl memóriabarát megoldás így kicsit átírtam (trac ide vonatkozó javítása, nevetséges).
A fő ághoz készült javítást megpróbálom majd keresztülnyomni a rendszeren, hátha elfogadják.

ráncfelvarrás

Kis ráncfelvarráson esett át a blog. Blogmotor frissítése, új téma, pár új bővítmény. A blogmotor az előző alatt nagyon régi volt már (2.0.x), és mivel nem sikerült úgy telepíteni, hogy 2.6 és aztán az upgrade script, egyesével kellett feltenni a 2.0.x és a 2.6 közti tizenakárhány verziót. Egy script-tel mindez 5 perc volt csak. 🙂
Jó munkás nagy munka után pihenni tér. Két hét szünet (az egyébként se gyakori posztolásban :)).

zene [frissítve]

Próbálgatom a wordpress bővítményeket, és a keresgélés próbálgatás közben akadtam az audio player-re amit rögtön ki is próbálok. A zenét a Szederinda együttes lemezéről koppintottam, Annus Réka énekel. Majd teszek fel olyat is amiben én is éneklek. 🙂
Ím a próba:

[audio:szeder.mp3]

Frissítés:
Közben rájöttem, hogy mi a gondja. Butított mp3-at le sem játszik. A minimum amivel tud mit kezdeni az a 128 kbps… Ehm Ehm… :/
Imhol vagyon még egy szépség:

[audio:szeder2.mp3]

spam áradat elleni harc

Az utóbbi időben, ahogy a google egyre jobban megismerte a blogomat, elindult a várva várt spamáradat a hozzászólásokba. Egy ideig azzal kísérleteztem, hogy mi van akkor ha a spammer fix wordpress felületet ismerve postolja el a szöveget. A bemenő form nevek megváltoztatása úgy tűnt, hogy nem túl sikeres megoldás, így más megoldás után kellett nézni. A következő ötletem az volt, hogy aki az oldalra üzenetet akar küldeni, az postoljon kétszer. Ilyet máshol még nem láttam és bíztam abban, hogy eredményes lesz. A megoldás valahogy úgy nézett ki, hogy a teljes post tömb tartalmából készített md5 hash-t elmentettem a session tömbbe, és ha már volt egyszer benne akkor beengedtem az üzenetet ha még nem akkor ismétlést kértem.
Rá pár napra észrevettem, hogy -igaz csekély mértékben- de egy bizonyos fajta spam még mindig érkezik. Akkor azt hittem a megoldásom nem eredményes, de most már tudom, hogy nem az a megoldás is lehet hatásos. Ezt akkor nem tudtam, így kerestem tovább, hogy mi lehet a hatásosabb védelem.
Következő “ötlet”, egy már ismert, viszonylag bevett védelem lett: Tegyél fel egy kérdést, amire ha jól válaszol, akkor engeded be az üzenetet. Ez lehet találós kérdés, matematika vagy egyéb mód (pl kitehettem volna egy képet rajta egy almát is). Biztos ami biztos, ha már ott voltam megcsináltam azt is, hogy jquery küldje el az üzenetet (ezt egyébként is akartam korábban).
Ez sem volt hatásos. Egy bizonyos ip címről továbbra is érkezett spam. De ekkor már kételkedtem abban, hogy a megoldásom lenne hatástalan, lévén, hogy magyar a kérdés és a válasznak is annak kell lennie, valahogy máshogy jön be az üzenet. Mivel az IP cím nem változik, tehettem volna azt hogy apacheból kitiltom az ip-t aztán csináljon amit akar, de mégis kíváncsi voltam, így nem ezt a módot választottam.
A logok átnézése után (nem kellett nagyon böngészni) ezt találtam:

user@merlin:~$ cat /var/log/apache2/blog.connor.hu_access.log | grep 82.146.53.67
82.146.53.67 - - [18/Mar/2007:07:12:22 +0100] "POST /2007/01/01/2006-volt-2007-lesz/trackback/ HTTP/1.1" 200 78 "-" "-"
82.146.53.67 - - [18/Mar/2007:08:14:03 +0100] "POST /2007/01/01/2006-volt-2007-lesz/trackback/ HTTP/1.1" 200 78 "-" "-"
82.146.53.67 - - [18/Mar/2007:15:15:23 +0100] "POST /2007/01/01/2006-volt-2007-lesz/trackback/ HTTP/1.1" 200 149 "-" "-"
82.146.53.67 - - [18/Mar/2007:15:46:12 +0100] "POST /2007/01/01/2006-volt-2007-lesz/trackback/ HTTP/1.1" 200 149 "-" "-"
82.146.53.67 - - [18/Mar/2007:16:33:56 +0100] "POST /2007/01/01/2006-volt-2007-lesz/trackback/ HTTP/1.1" 200 149 "-" "-"

És megvan! A trackback-on keresztül küldte el az üzenetet. Viszont itt már nem lehet akárhogy blokkolni a folyamatot, ha meg akarom tartani a funkciót. Valami más megoldást kell találni. Egyenlőre betettem egy fekete listát a küldő ip címével, de mivel hamisítható a REMOTE_ADDR így kizárt, hogy végső és jó megoldás lenne. De ezen elég akkor törpölni ha hatástalan lesz az is. Így tűnik a trackbackra spammelés még nem olyan elterjedt mód a spammerek körében.
Ím a kód (wp-trackback.php #8):

$black_list = array(
  'ipcim',
  'ipcim2',
  'ipcim3',
  );

if (in_array($_SERVER['REMOTE_ADDR'], $black_list)) exit;