Pagini

2014-01-31

PHP & Co

M-am apucat sa dandalesc prin Wordpress si PHP si m-am lovit de urmatoarele chestii:

Am uitat parola de administrator

Asta am rezolvat-o relativ usor intrand cu:

$ mysql -u root -p

Mi-a cerut parola de root, i-am dat-o, apoi:
mysql> show databases;
... printre care si baza de date a Wordpress
mysql> use wordpress;
mysql> show tables;

... era si una cu _users, si i-am zis atuncea:
mysql> update wp_users set user_pass = MD5('<noua parola>') where id = 1;
... adica se pastreaza MD5-urile parolelor
Si daca nu mai stii parola de root de la mysql? Pai opresti serviciul mysql, $ sudo service mysql stop sau ceva in genul asta, apoi repornesti mysqld cu optiunile --skip-grant-tables si --skip-networking (aceasta din urma pentru mai multa siguranta), pornesti mysql si ii zici
mysql> update mysql.user set password = PASSWORD('<noua parola>') where user = 'root';
mysql> flush privileges;

si iarasi opresti mysqld si-l repornesti, dar de data asta in mod normal.

Am vrut sa fac debug in PHP

In principiu pasii ar fi urmatorii:

  1. iei o extensie de depanare / debugging in PHP - eu am folosit xdebug
  2. descarci, apoi in php.ini ii zici unde sa gaseasca executabilul respectiv scriind acolo undeva zend_extension=/calea/completa/catre/dll/sau/so
  3. ii mai pui niste setari pe acolo:
    xdebug.remote_autostart=on
    xdebug.remote_enable=1
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000

  4. $ sudo service apache2 restart (ca sa reincarce php.ini)
  5. pornesti NetBeans cu suport PHP in care adaugi un proiect nou PHP cu surse existente, aratandu-i unde-s sursele, daca sa-l ruleze intr-un server web local, la distanta sau chiar in server-ul web din NetBeans (am mers pe prima varianta, Apache-ul local) si ce fisier index sa foloseasca
  6. eventual in NetBeans te duci la Tools / Options / PHP / Debugging si scoti "Stop at first line"
  7. pornesti sesiunea de debugging cu Debug / Debug project (CTRL + F5, gen)
Ce nu-mi mergea mie (statea agatat NetBeans in "waiting for connection netbeans-xdebug") pare ca a fost setarea xdebug.remote_enable, pe care o gasesti in unele documentatii cu on, in altele cu 1. Am gasit un raspuns cu 1 si se pare ca merge asa. La Xdebug pe site zice ca variabila e boolean, cu valoare implicita 0. Mda.
Acum poti sa pui breakpoint-uri, sa vezi variabile, chestii cu care esti obisnuit din debugger-e mai spalate. Ce nu-mi iese inca - afisarea propriu-zisa a unei pagini in sesiunea de debugging. De fapt, mai nuantat - am incercat sa pun breakpoint-uri in Wordpress si inca nu prea mi-a iesit.

Teme de Wordpress

Sugestia unora a fost sa incep cu tema copil - in wp-content/themes faci un folder, copil, in care pui un fisier style.css care sa contina macar urmatoarele:

/*
template <numele temei parinte>

*/
@import url("../parinte/style.css");


Mai revin cu informatii ... cand o sa le am!