Installare XDebug in Ubuntu 14.04

Pubblicato il Scritto il da

XDebug, puoi solo amarlo od odiarlo, nessuna via di mezzo purtroppo.
Il noto debugger non è sicuramente un condensato di stabilità ed usabilità, ma di certo è l’unica alternativa free per migliorare i nostri sviluppi in PHP.

E ‘abbastanza facile installarlo su Ubuntu, vediamo come fare. Prima di tutto da console, lanciare il seguente comando:

sudo apt-get install php5-xdebug

Il quale installerà l’ultima versione, al momento della stesura di questo post è la 2.2.3. Ora aggiornare le opzioni in /etc/php5/apache2/php.ini:

# XDebug
 zend_extension="/usr/lib/php5/20121212/xdebug.so"
 xdebug.remote_enable=1
 xdebug.remote_handler=dbgp
 xdebug.remote_mode=req
 xdebug.remote_host=127.0.0.1
 xdebug.remote_port=9000
 xdebug.max_nesting_level=300

Riavviate Apache2:

sudo service apache2 restart

Ed il gioco è fatto. Buon debugging!

Phpmyadmin – Disabilitare i popup per la creazione di nuove tabelle

Pubblicato il Scritto il da

Phpmyadmin è una praticissima web application che ci permette di amministrare i nostri database MySQL.

Con l’avanza delle versioni si possono gustare nuova funzionalità, recentemente la sezione dedicata alla stored procedure è la mia preferita! 😉

Non mancano però alcuni punti poco attraenti dell’applicativo, uno fra tutti: l’utilizzo di pop-up modali per la creazione/modifica delle tabelle o delle procedure. A mio avviso non è il modo migliore per gestire questa funzionalità.

Fortunatamente c’è la possibilità di disabilitare questa opzione e di far aprire l’editor delle tabelle (o delle procedure) in una nuova pagina, vediamo come fare:

  • Apriamo il file “/var/lib/phpmyadmin/config.inc.php” con un utente amministratore, possiamo farlo digitando:
    sudo kate /var/lib/phpmyadmin/config.inc.php
  • Cerchiamo la configurazione:
    $cfg['AjaxEnable'] = true;

    e modifichiamola in questo modo, se il file è vuoto scriviamo “<?php” ed a seguire aggiungiamo:

    $cfg['AjaxEnable'] = false;
Bene, finito!
Riaprite il vostro phpmyadmin e buona interrogazione! 😉

PHP – Da XML ad array

Pubblicato il Scritto il da

Ho avuto un periodo nella mia vita in cui parsare file XML in PHP era diventata un’ossessione (vedi “PHP – HTML Parser (text node compresi)“).

E con questo secondo appuntamento cambiamo metodo: non più DOM, ma XML Parser.

Vediamo il codice:

<?php
$xml="<a:root>
        aaa
        <a1 ciao="bella">
	    <b1>
	        ff
	    </b1>
	</a1>
	<a2>
	    bb
	</a2>
      </a:root>";

$struct = array();
$xml_parser = xml_parser_create(); 

xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "data"); 

$parse = xml_parse($xml_parser,$xml); 

xml_parser_free($xml_parser); 

print("<pre>n");
print_r($struct);
print("</pre>n"); 

function startElement($parser, $name, $attrs)
{
    global $struct; 

    $tag = array("name"=>$name, "attributes"=>$attrs); 

    array_push($struct,$tag);
} 

function data($parser, $data)
{
    global $struct,$i; 

    if(trim($data)) {
        $struct[count($struct)-1]['data']=trim($data);
    }
} 

function endElement($parser, $name)
{
    global $struct; 

    $struct[count($struct)-2]['child'][] = $struct[count($struct)-1]; 

    array_pop($struct);
}
?>

Scusate, per l’ennesima volta, la ruzzezza del codice (“ma non avuto il tempo di farlo in scala e di dipingerlo” [cit] )

L’output risultate è il seguente:

Array
(
    [0] => Array
	(
		[name] => A:ROOT
		[attributes] => Array
		(
		)

		[data] => aaa
		[child] => Array
		(
			[0] => Array
			(
				[name] => A1
				[attributes] => Array
				(
					[CIAO] => bella
				)

				[child] => Array
				(
					[0] => Array
					(
						[name] => B1
						[attributes] => Array
						(
						)
						[data] => ff
					)
				)
			)

			[1] => Array
			(
				[name] => A2
				[attributes] => Array
				(
				)
				[data] => bb
			)
		)
	)
)

Sarebbe interessante effettuare dei benchmark.

Buon parse! 😉

Fonte: link.

PHP – Class ‘DOMDocument’ not found

Pubblicato il Scritto il da

Se vi imbattete in quest’errore mentre provate Apache sulla vostra Fedora, non preoccupatevi. Non sono state installate le librerie per l’interazione di PHP con XML.

Una piccola ricerca su Google ed ecco come risolvere il problema:

  • Aprite una console e digitare:
    sudo yum install php-xml
  • Riavviate il server apache:
    sudo service httpd restart

Fatto!

Buona programmazione! 😀

P.S.
A me questo problema bloccava l’esecuzione di un plugin di WordPress.
Al caricamento del blog compariva un errore  500.
Una rapida occhiata ai log di Apache mi hanno svelato il vero problema:  Class ‘DOMDocument’ not found.

Fedora – Apache, MySQL & PHP – Server Web Casalingo Facile e Veloce

Pubblicato il Scritto il da

Ci sono vari motivi per cui è utile/interessante crearsi un proprio server web casalingo, beh… io non li conosco tutti! 😛

Andiamo al dunque che è meglio. 😀

Installazione dei pacchetti/programmi/server necessari:

sudo yum install mysql mysql-server httpd 
php php-pear-MDB2-Driver-mysqli.noarch mcrypt
php-mysql.i686

Configurazione MySQL

Indichiamo al sistema in quali run level avviare MySQL:

sudo chkconfig --levels 235 mysqld on

Avviamo il server:

sudo /etc/init.d/mysqld start

Modifichiamo la password di amministratore del database server:

sudo mysqladmin -u root password yourrootsqlpassword

Configurazione Apache

Indichiamo al sistema in quali run level avviare MySQL:

sudo chkconfig --levels 235 httpd on

Avviamo il server:

sudo /etc/init.d/httpd restart

Buon test! 😀

Installare l’ultima versione di phpMyAdmin 3.4.0 in Fedora

Pubblicato il Scritto il da

E’ uscito il nuovo phpMyAdmin (3.4.0), WOW! Con dei ma…
Vuoi scoprire il significato di quei “ma“?
Allora segui la mia piccola guida per installarlo su Fedora (14).

Presuppongo che tu abbia installato la versione 3.3.x da repository.
Bene, anzi non proprio. 😛

Se hai già provato a copiare la directory dell’appena scaricato phpMyAdmin 3.4.0 in quella del server Apache, hai potuto notare che la versione che si avvia digitando l’indirizzo:

http::/127.0.0.1/phpmyadmin

non è l’ultima, ma quella installata da repository. Storia lunga sul perchè Fedora fa questo, te lo racconterò in un altro post.
Quello che devi fare è copiare il contenuto della cartella del tuo phpMyAdmin 3.4.0 in quella della versione installata da repository, in questo modo:

sudo cp  -rv /directory/sorgente/di/phpMyAdmin3.4.0/* /usr/share/phpMyAdmin

Aspetta qualche secondo, et voilà! All’indirizzo http://127.0.0.1/phpmyadmin, troverai la nuova versione fiammante del programma e potrai scoprire i suoi “ma“! 😉

Buona interrogazione! 😀