2009. jún. 14.

OpenID hackolás WordPress-ben

Most nem akarom nagyon részletezni a dolgot, hogy mi is az az OpenID, meg ilyenek, csak leírom, hogyan sikerült rávennem a WordPress-t, hogy működjön a myopenid-s account-ommal.
Először is le kell tölteni az openid-s plugint: http://wordpress.org/extend/plugins/openid/
A telepítés a http://wordpress.org/extend/plugins/openid/installation/ oldalon olvasható módon történik.
Ezek után a probléma a delegálással lehet. Nekem a myopenid-s acc-cal nem működött elsőre. Azt hinné az ember, hogy ha a WordPress-ben bele megy a Felhasználók részben, ott rákattint a fiókjának szerkesztésére, majd az "OpenID Delegation" résznél megadja az openid-ját, akkor már szuperül megy a dolog. Hát nem! :(
A delegálás valami miatt itt nem jó. Ugyan elmentődik, meg minden, de ha megpróbálok bejelentkezni, akkor vagy error-t dob, vagy egy új user-t regel be, attól függően, hogy a beállításoknál engedélyezve van-e a regisztráció.
Az egész dolog csak akkor működik, ha a felhasználói fiók szerkesztésekor a Users menü résznél a "Your OpenIDs" pontra kattintva veszünk föl account-okat. Ezután rendesen megy a login.
Nem tudom, hogy ez csak a myopenid miatt van-e (írtak fórumon, vagy valahol, valami SSL-es bugot), vagy a centaur-os home-os cím miatt, de sikerült megoldani, szóval most boldog vagyok. :)

Igen, fizikát kéne tanulni :S

2009. jún. 6.

WordPress permalink beállítások Centaur-on

Azzal a problémával fordult hozzám az egyik felhasználó, hogy WordPress-t húzott fel a home-jába, de nem működik neki rendesen. Hiába állította be a permalink-et, a linkek nem mutattak sehova.
A beállítások látszólag jók voltak, a WordPress-nek volt írási joga is (ez sem egyszerű ám nálunk), létrejött a .htaccess fájl. Az Apache konfigurációjába is engedélyezve voltak a szükséges dolgok, amik a
http://codex.wordpress.org/Using_Permalinks linken szerepelnek (mod_rewrite engedélyezve, FollowSymLink opció bekapcsolva, AllowOverride FileInfo, AllowOverride All, minden, ami kell), és mégsem működött jól az átírási szabály, a linkek halottak voltak.
Odáig fajult a dolog, hogy én is feltettem egy WordPress-t a home-omba (mindig ez a vége, ha megakarom oldani a dolgot), és elkezdtem játszani a home-omra vonatkozó Apache beállításokkal. A globális opciókat felülírva, csak az én könyvtáramra vonatkozóan beállítottam csak azokat a dolgokat, amiket a leírás is mondott, és láss csodát, működött.
Következő lépésként egyessével kapcsolgattam vissza a globális opciókat, és kiderült a hiba oka. Az Apache beállításokban engedélyezve volt a MultiViews opció, ami logikusan okozta a hibát. Kikapcsolás után rendesen működött a felhasználónak is.

Összefoglalva: ha nem megy a Permalink WordPress alatt, annak ellenére, hogy minden be van állítva (mod_rewrite, FollowSymLink, AllowOverride FileInfo, AllowOverride All), ellenőrizzük a MultiViews opciót is.

2009. ápr. 1.

Elegem van

Ma reggel mikor loginoltam Centaur-ra ez a kép fogadott:


Én nem értem, hogy történhetett már megint. Szilárd account-jával beléptek, és valahogy benne volt a sudoers-ben. A többit ki lehet találni.
Nincs sem időm, sem kedvem ehhez az egészhez. Azon gondolkodom, hogy lemondok a posztomról.

Április bolondja :)

Tudom, hogy most valami komoly dolgot kellene írnom, amiről később kiderül, hogy kamu, de nem így teszek. Helyette csak egy kis kódot írtam a megfelelő helyre.

A kódért köszönet Dolgos Dánielnek, és Tolnai Gábornak.

Hasonló megborulások várhatóak több KSzK által hostolt, üzemeltetett honlapon is a nap folyamán. :)

2009. febr. 14.

Címjegyzék visszaállítása a Roundcube Webmail-ben manuálisan

Az előző Roundcube-ról szóló postomban leírtam, hogyan tudjuk frissíteni a webmail-ünket. Sajnos egy csomó hiba generálódott, nem volt jó a karakterkódolás stb., ezért ma teljesen újratettem az egész kócerájt. Természetesen mindenről készítettem biztonsági mentést.

Jelen írás feltételezi, hogy rendelkezünk a régi adatbázisunkról biztonsági mentéssel!

A régi adatbázist elküldtem melegebb éghajlatra, és egy teljesen üreset hoztam létre. Ez természetesen azzal járt, hogy a benne levő címjegyzékek, felhasználók törlődtek. Tudom, hogy ennek sokan nem fognak örülni, de csak egy e-mail, és máris visszakerül minden szükséges, és pótolhatatlan adatuk.

Hogyan?

Egyszerűen. Tegyük fel, hogy megkaptuk Kala Pál nevű felhasználónktól a reklamációt, hogy márpedig nagyon gyorsan állítsuk helyre neki a címjegyzékét. A következőekben részletesen leírom, hogy miket kell végrehajtani, de előtte néhány megjegyzés a követhetőségért.

A roundcube_db a Roundcube-hoz tartozó aktuális adatbázisom neve, a roundcube_db_backup pedig a régi adatbázis, ezért ezeket tessék a saját konfigurációnknak megfelelőre cserélni. Az előforduló neveket, e-mail címeket szintén tessék cserélgetni értelem szerűen.


mysql -p

mysql>
USE roundcube_db_backup;
mysql> SELECT * FROM users WHERE username = "kala.pal";

Ezek után egy ehhez hasonló kimenetet kapunk:

+---------+-----------+-----------------+-------+---------------------+---------------------+----------+--------------- ---------------------------+

| user_id | username | mail_host | alias | created | last_login | language | preferences |
+---------+-----------+-----------------+-------+---------------------+---------------------+----------+--------------- ---------------------------+
| 641 | kala.pal | imap.sch.bme.hu | | 2008-10-29 19:06:13 | 2009-02-12 10:54:23 | hu_HU | a:2:{s:16:"mes e_sort_order";s:4:"DESC";} |
+---------+-----------+-----------------+-------+---------------------+---------------------+----------+--------------- ---------------------------+
1 row in set (0.00 sec)


Ebből nekünk a felhasználó azonosítójára van szükségünk, amit a user_id oszlop tartalmaz. Esetünkben ez a 641.

mysql> SELECT * FROM contacts WHERE user_id = "641";

+------------+---------------------+-----+------------+-----------------------+-----------+---------+-------+---------+
| contact_id | changed | del | name | email | firstname | surname | vcard | user_id |
+------------+---------------------+-----+------------+-----------------------+-----------+---------+-------+---------+
| 345 | 2009-02-14 13:48:52 | 0 | Gép Elek | gep.elek@email.cim.hu | | | NULL |
641 |
| 543 | 2009-02-14 13:48:55 | 0 | Halász Gabriella | gaboo.mano@sehol.se | | | NULL |
641 |
| 578 | 2008-11-08 21:33:23 | 0 | [kszk] | kszk@mail.cim.hu | | | NULL |
641 |
+------------+---------------------+-----+------------+-----------------------+-----------+---------+-------+---------+
3 rows in set (0.00 sec)


Ezeket a sorokat kell majd a roundcube_db contacts táblájába bele tenni, de előtte még szükségünk van Kala Pál azonosítóira az aktuális adatbázisunkban.

mysql> USE roundcube_db;
mysql> SELECT * FROM users WHERE username = "kala.pal";

mysql> SELECT * FROM contacts;

Az utolsó parancs kiadása után nézzük meg, hogy mi a legutolsó contact_id, mert nekünk eggyel nagyobb értéket kell megadnunk az új adatok megadásánál. Az utolsó oszlopban kala.pal user_id-ját kell megadni, ami esetünkben most 2.

mysql> INSERT INTO contacts (contact_id, changed, del, name, email, firstname, surname, vcard, user_id) VALUES(3,"2008-11-08 21:33:23",0,"[kszk]","kszk@mail.cim.hu","","",NULL,2);

Ezt minden egyes sorral elvégezve felhasználónk már használhatja is újra a címjegyzékét.