Archives 2013

WordPress – dezactivarea rapida a unui plugin direct din baza de date

Recent, din cauza unei erori aparute intr-un plugin WordPress, nu se mai incarca nicio pagina si era afisat un mesaj cu eroarea aparuta si pluginul cu problema. Pentru ca nu mai aveam acces la interfata de administrare a trebuit sa caut o alta solutie ca sa dezactivez pluginul respectiv.

O solutie relativ simpla pentru rezolvarea unei astfel de situatii presupune accesul la baza de date si efectuarea unei modificari care va avea ca efect dezactivarea unuia sau a tuturor plugin-urilor din WordPress.

Read More

Mutarea tabelelor dintr-o baza de date in alta baza de date

Pentru baze de date de dimensiuni mari (zeci de tabele si dimensiuni de cateva sute de MB) cel mai comod si rapid este ca mutarea/copierea tuturor tabelelor dintr-o baza de date (database1) in alta (database2), aflate pe acelasi server, sa se execute din linie de comanda direct pe server. Mai intai se face un dump al database1 intr-un fisier local, apoi acel fisier se importa in database2.

Read More

PHP max_input_vars

Pentru firma unde lucrez am dezvoltat o aplicatie care permite crearea rapida si usoara a ofertelor de pret pentru clientii nostri. Aplicatia permite introducerea unuia sau a mai multor coduri de produs, apoi interogheaza baza de date SAP si returneaza date despre produse (7 campuri pentru fiecare produs): producator, denumire, pret, stoc disponibil, etc…

Recent, un coleg a avut de facut o oferta care continea aprox 200 de coduri de produs. Dar in urma interogarii erau returnate informatiile doar pentru aprox 160 de produse. Am inceput sa fac tot felul de teste sa vad de unde apare limitarea.

Read More

Trimitere email cu autentificare prin SMTP

La unul din proiectele din trecut am avut nevoie de o clasa pentru trimiterea email-urilor cu autentificare prin SMTP. Cineva mi-a recomandat clasa Mail din PEAR Framework. Clasa permite destul de multe operatiuni si pana in urma cu cateva zile am fost multumit de ea.

Recent, insa, am avut nevoie sa trimit email-uri catre mai multe adrese in Cc si Bcc. Aici aparea o anomalie si am gasit ca ar fi vorba de un bug inca nerezolvat (http://pear.php.net/bugs/bug.php?id=8047). Unii spun ca problema este din libraria Mail de la PEAR, altii spun ca problema ar fi la functia mail() din PHP si nu in libraria Mail. Oriunde ar fi problema, am consumat destul de mult timp incercand sa gasesc o solutie, insa fara succes. In final am renuntat la a mai utiliza aceasta librarie si am cautat solutii echivalente.

Read More

Configurare logrotation in Plesk

Cautarea in log-uri poate deveni extrem de greoaie daca dimensiunile acestora sunt mari. In plus spatiul ocupat pe disc de aceste fisiere va creste semnificativ si destul de repede pe un server web cu trafic intens (si nu numai), iar spatiul acesta de multe ori este ocupat in mod inutil. Folosind logrotation (“rotirea” logurilor) se va reduce spatiul ocupat si se va imbunatati durata analizarii acestor fisiere.

Read More

Activare GodMode in Windows 7 si Windows 8

GodMode aduna intr-un singur loc o multime de setari de peste tot din Windows.

Pentru activarea GodMode se creaza un folder pe Desktop cu denumirea GodMode.{ED7BA470-8E54-465E-825C-99712043E01C} . Imediat dupa ce este creat folder-ul isi va schimba pictograma, iar denumirea va deveni GodMode. Acest folder va contine aproximativ 270 de setari, care permit accesul rapid la tot felul de setari din Windows.

Sortare array multidimensional in PHP

Exista situatii in care anumite informatii sunt stocate intr-un array multidimensional, cum ar fi, de exemplu, continutul unui tabel care trebuie apoi afisat intr-o pagina. Daca tabelul are un numar considerabil de linii si coloane este posibil sa apara nevoia sortarii informatiei dupa anumite coloane.

In cazul in care informatia este adusa direct dintr-o tabela a unei baze de date, atunci lucrurile sunt destul de simple, pentru ca sortarea se poate face la momentul interogarii bazei de date. Insa, daca informatia de pe anumite coloane ale tabelului este calculata dupa anumite formule si nu poate fi regasita direct in baza de date interogata, atunci lucrurile se complica putin. In aceasta situatie, sortarea trebuie facuta direct pe array-ul multidimensional care contine informatia din tabelul de afisat.

Read More

Generare certificat VPN

In vederea realizarii unei conexiuni sigure prin VPN la un server care ruleaza OpenVPN (si nu numai) este necesara folosirea unui certificat. Acest certificat se genereaza pe server-ul de VPN iar apoi se copiaza pe calculatorul clientului si va fi utilizat in realizarea conexiunii.

In continuare vom lua ca exemplu generarea unui certificat VPN pentru utilizatorul lorand.szekely

Read More

Creare folder partajat CentOS

Windows partajeaza resursele cum ar fi imprimantele sau sistemul de fisiere (file system) folosind protocolul Server Message Block (SMB). Pentru ca un sistem de operare cum este CentoOS sa poata partaja aceste resurse intr-o retea cu sisteme Windows si invers, trebuie, prin urmare, sa suporte SMB. Acest lucru se poate realiza folosind Samba.

Samba permite atat sistemelor CentOS sa partajeze resurse cu un sistem Windows, cat sistemelor Windows sa partajeze resurse cu sistemele CentoS. CentOS acceseaza resursele Windows folosind pachetul samba-client. Pe de alta parte, resursele CentOS sunt partajate cu sistemele Windows folosind pachetul samba. In mod normal, pachetul samba-client este instalat si configurat by default si permite utilizatorului sa acceseze resursele partajate pe un sistem Windows fara alte configurari. In schimb, pentru a permite unui sistem CentOS sa partajeze resurse cu un sistem Windows sunt necesare cateva configurari suplimentare.

Read More

Fujitsu ServerView RAID Manager

Adaugare HDD hotplug la un server Fujitsu Primergy RX300.

– se insereaza HDD-ul in locasul sau
– intr-un browser se acceseaza adresa: http://ip-server:3173
– autentificarea se face cu un utilizator cu drepturi de administrator
– se creaza un nou LogicalDrive in care se adauga HDD-ul proaspat atasat
– click dreapta pe LogicalDrive -> Start Initialization
– dupa finalizarea initializarii HDD-ul va fi vizibil in Windows Server -> Manage -> Disk Drives
– se partitioneaza, se formateaza si este functional.

Revocare certificat in OpenVPN

Pentru revocarea certificatului unui client se foloseste comanda:

./revoke-full marco

Daca apare eroarea :

bash: ./revoke-full: Permission denied

atunci trebuie verificat ca accesul pe fisierul ./revoke-full  sa fie 0744  (implicit este 644 ).

De asemenea se poate da un restart la serviciu /etc/init.d/openvpn restart  si apoi rula comanda ./vars.

Mesajul care apare dupa revocare trebuie sa fie:

[root@gw openvpn]# ./revoke-full marco
Using configuration from /etc/openvpn/openssl.cnf
Revoking Certificate 0A.
Data Base Updated
Using configuration from /etc/openvpn/openssl.cnf
marco.crt: C = RO, ST = TM, O = Lintesa, CN = marco, emailAddress = email@domain.ro
error 23 at 0 depth lookup:certificate revoked

La revocarea unui certificat se genereaza fisierul crl.pem  care trebuie copiat in locatia /etc/openvpn/ , apoi in fisierul server.conf  se adauga linia crl-verify crl.pem . Fisierul crl.pem  este de tip append-only si este verificat de fiecare data cand un client se conecteaza prin openvpn, asa ca nu trebuie facut restart la serviciul openvpn dupa revocarea unui certificat.

Nota: Toate comenzile au fost executate in folderul /etc/openvpn .

Alte surse:
http://openvpn.net/index.php/open-source/documentation/howto.html#revoke
http://blog.abhijeetr.com/2012/06/revokeunrevoke-client-certificate-in.html

Inlocuire tastatura ASUS X51L

La laptopul ASUS X51L tastatura nu este prinsa in suruburi. In partea de sus si in partea dreapta sunt niste cleme mici de siguranta care trebuie impinse lateral sub carcasa de plastic a laptopului si care elibereaza tastatura sa vina in sus. Aceste cleme trebuie impinse cu o surubelnita subtire si actionate sensibil ca sa nu se rupa. Dupa ce tastatura este ridicata se scoate cablul din soclu si se inlocuieste tastatura. Pentru scoaterea cablului din soclu trebuie deschisa sigurant acestuia tragand usor de ea din fiecare capat.

Se introduce cablul de la noua tastatura in soclu, se inchide siguranta acestuia, iar la final, noua tastatura se apasa in jos pana se aud clicurile de la cele 4 cleme de siguranta.

Driver MSSQL pentru PHP

La unul din proiectele mele am avut nevoie sa extrag o serie de informatii din SAP si sa le introduc intr-o baza de date MySQL pe care apoi sa o extind cu informatii aditionale si sa creez/extrag diferite rapoarte. In configuratia clientului SAP folosea baze de date MSSQL, iar server-ul web pe care rula aplicatia rula CentOS administrat prin Plesk.

Pentru a se conecta la o baza de date MSSQL, PHP are nevoie de o extensie/un driver care sa-i permita acest lucru, la fel cum are nevoie de un driver pentru conectarea la o baza de date MySQL. Asa cum spune si documentatia PHP, driver-ul pentru MSSQL este disponibil numai pentru PHP care ruleaza pe Windows.

Read More