<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>in Web we Trust &#187; phing</title>
	<atom:link href="http://blog.danilosanchi.net/tag/phing/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.danilosanchi.net</link>
	<description>storie, pensieri, idee...</description>
	<lastBuildDate>Tue, 22 Apr 2025 13:55:16 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.39</generator>
	<item>
		<title>La mia macchina</title>
		<link>http://blog.danilosanchi.net/2012/12/05/la-mia-macchina/</link>
		<comments>http://blog.danilosanchi.net/2012/12/05/la-mia-macchina/#comments</comments>
		<pubDate>Wed, 05 Dec 2012 20:00:11 +0000</pubDate>
		<dc:creator><![CDATA[Danilo]]></dc:creator>
				<category><![CDATA[Sviluppo]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[capifony]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[phing]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://blog.danilosanchi.net/?p=28</guid>
		<description><![CDATA[Tempo fa mi sono fatto un reference con tutto ciò che devo fare per configurare la una macchina di sviluppo e ho pensato che, riadattandolo un po&#8217;, sarebbe stato bello condividerlo. Questo reference è per coloro che sviluppano in PHP &#8230; <a href="http://blog.danilosanchi.net/2012/12/05/la-mia-macchina/">Continua a leggere <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.danilosanchi.net/current/wp/wp-content/uploads/2012/11/Bianchina_bda-vi.jpg"><img class="alignright size-medium wp-image-87" title="Bianchina" alt="" src="http://blog.danilosanchi.net/current/wp/wp-content/uploads/2012/11/Bianchina_bda-vi-300x194.jpg" width="300" height="194" /></a>Tempo fa mi sono fatto un <em>reference</em> con tutto ciò che devo fare per configurare la una <strong><em>macchina di sviluppo</em></strong> e ho pensato che, riadattandolo un po&#8217;, sarebbe stato bello condividerlo. Questo reference è per coloro che sviluppano in <strong><em>PHP</em></strong> e vogliono dedicarsi all&#8217;aspetto creativo di questa attività, lasciando le cose ripetitive alle macchine come è giusto che sia.<br />
Sicuramente non è completo, e qualcuno salterà alcuni passi che riterrà poco utili.<br />
Potrà subire aggiornamenti. Osservazioni ed obiezioni saranno ben gradite.</p>
<p><span id="more-28"></span></p>
<p><em>Nota: quando un comando apre un editor di testo segue il testo da inserirvi indentato.</em></p>
<h2>Hardware</h2>
<p>Un portatile Asus X54C con <strong> disco a stato solido </strong> e 6Gb di RAM.</p>
<p>Il DSS è un buon investimento dato che fa risparmiare da subito tanto tempo e stress/frustrazione, quindi lo consiglio vivamente.</p>
<h2>Sistema Operativo</h2>
<p>Ubuntu 12.x</p>
<h2>LAMP</h2>
<p>L&#8217;installazione di un sistema LAMP si trova ovunque come per esempio <a href="http://www.howtoforge.com/ubuntu_lamp_for_newbies"> qui </a> . Ecco i comandi in rapida sequenza senza ulteriori spiegazioni:</p>
<pre class="font:courier-new toolbar:2 striped:false lang:sh highlight:0 decode:true crayon-selected">sudo apt-get install apache2</pre>
<p><em> verifica: Apache funziona?<br />
</em> <span style="font-family: 'courier new', courier;"> Browser -&gt; http://localhost </span></p>
<pre class="nums:false decode-attributes:false lang:sh decode:true">$ sudo apt-get install php5 libapache2-mod-php5
$ sudo service apache2 restart
$ sudo gedit /var/www/testphp.php
    &lt;?php phpinfo(); ?&gt;</pre>
<p><em> verifica: PHP funziona?<br />
</em><span style="font-family: 'courier new', courier;">Browser -&gt; http://localhost/test.php</span></p>
<pre>$ sudo apt-get install mysql-server
$ sudo apt-get install libapache2-mod-auth-mysql php5-mysql
$ sudo apt-get install phpmyadmin
$ sudo service apache2 restart</pre>
<h2>PhpMyAdmin</h2>
<p>Abbiamo già installato PHPMyAdmin. Rendiamolo accessibile da<br />
<span style="font-family: 'courier new', courier;">http://phpmyadmin</span></p>
<pre>$ sudo gedit /etc/apache2/sites-available/phpmyadmin
    &lt;VirtualHost *:80&gt;
        ServerAdmin myemail@email.com
        ServerName phpmyadmin
        ServerAlias phpmyadmin.local.com
        DocumentRoot /usr/share/phpmyadmin
        DirectoryIndex app.php index.php index.html
        &lt;Directory /usr/share/phpmyadmin&gt;
            AllowOverride all
        &lt;/Directory&gt;
        ErrorLog ${APACHE_LOG_DIR}/phpmyadmin.error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg
        LogLevel notice
        CustomLog ${APACHE_LOG_DIR}/phpmyadmin.access.log combined
    &lt;/VirtualHost&gt;
$ sudo a2ensite phpmyadmin
$ sudo gedit /etc/hosts
    127.0.0.1 phpmyadmin
$ sudo a2enmod rewrite
$ sudo service apache2 restart</pre>
<p><em> verifica: PhpMyAdmin funziona?<br />
</em><span style="font-family: 'courier new', courier;">Browser -&gt; http://phpmyadmin</span></p>
<h2>NetBeans</h2>
<p>Per lo sviluppo PHP, l&#8217;IDE che ho scelto, dopo anni di Eclipse, è NetBeans.</p>
<p>Download Netbeans:<br />
<span style="font-family: 'courier new', courier;">Browser -&gt; <a href="http://netbeans.org/downloads/start.html?platform=linux&amp;lang=en&amp;option=php">http://netbeans.org/downloads/start.html?platform=linux&amp;lang=en&amp;option=php</a></span></p>
<pre>$ cd ~/Scaricati
$ sudo chmod 777 netbeans-7.1-ml-php-linux.sh
$ ./netbeans-7.1-ml-php-linux.sh</pre>
<h2>Permissions</h2>
<p>Il vostro utente dovrebbe essere proprietario della cartella www</p>
<pre>$ sudo chown -R myuser /var/www</pre>
<p><em> Nota: recentemente l&#8217;ho spostata in ~/www e quindi è già di proprietà del l&#8217;utente. </em></p>
<h2>Symfony2</h2>
<p>Installando Symfony potrò usarne il tool di configurazione e ottimizzare il sistema per ospitarlo. Per un&#8217;applicazione complessa <a href="http://symfony.com/"> Symfony 2 </a> è il framwork ideale. Per qualcosa di un po&#8217; più semplice c&#8217;è <a href="http://silex.sensiolabs.org/"> Silex </a></p>
<h3>donwload</h3>
<p><span style="font-family: 'courier new', courier;">Browser -&gt; </span><a href="http://symfony.com/download"><span style="font-family: 'courier new', courier;">http://symfony.com/download</span></a></p>
<pre>$ cd ~/Scaricati
$ cp Symfony_Standard_Vendors_2.0.x.tgz /var/www/
$ cd /var/www/
$ tar -xf Symfony_Standard_Vendors_2.0.x.tgz</pre>
<p><span style="font-family: 'courier new', courier;">Browser -&gt; http://localhost/Symfony/web/config.php</span></p>
<pre>$ cd /var/www/Symfony</pre>
<h3>permissions</h3>
<pre>$ chmod -R 777 app/cache
$ chmod -R 777 app/logs</pre>
<p>Lanciando Symfony (ma anche qualsiasi altro script PHP) da client (per i test ad esempio) l&#8217;utente è quello di sistema, mentre da browser è www-data; i file scritti in cache nel primo non sono accessibili nel secondo e viceversa creando non pochi problemi. Quindi:</p>
<pre>$ setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
$ setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs</pre>
<h3>configuration</h3>
<pre>$ sudo apt-get install php5-sqlite
$ cd /etc/php5/conf.d/
$ sudo mv sqlite.ini sqlite.ini~
$ sudo service apache2 restart</pre>
<pre>$ sudo apt-get install php-apc
$ sudo service apache2 restart</pre>
<pre>$ sudo apt-get install php5-intl
$ sudo service apache2 restart</pre>
<pre>$ sudo gedit /etc/php5/apache2/php.ini
   short_open_tag = Off
   date.timezone = Europe/Paris
$ sudo service apache2 restart</pre>
<h2>Git</h2>
<p>Dopo anni di SVN mi hanno fatto scoprire Git e l&#8217;ho scelto per la velocità e perché&#8230; c&#8217;è <a href="https://github.com/"> GitHub </a> . Insomma se non hai un account GitHub <em> sei fuori. <img src="http://blog.danilosanchi.net/current/wp/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </em></p>
<pre>$ sudo apt-get install git-core git-gui git-doc
$ sudo apt-get install gitg
$ git config --global color.ui true</pre>
<p><span style="font-family: 'courier new', courier;">Browser -&gt; </span><a href="http://help.github.com/linux-set-up-git/"><span style="font-family: 'courier new', courier;">http://help.github.com/linux-set-up-git/</span></a></p>
<h2>Pear</h2>
<p>Pear serve per reperire i pacchetti PHP presenti su Pear, fondamentalmente PHPUnit.</p>
<pre>$ sudo apt-get install php-pear
$ pear config-set auto_discover 1</pre>
<h2>PHPUnit</h2>
<p>Per testare il codice PHP lo standard de facto è PHPUnit. Per testare il proprio codice ci vuole disciplina, ma ancora prima è necessario che non ci siano ostacoli alla gestione di una suite di test. In questo Symfony  2 ci aiuta molto.</p>
<pre>$ sudo pear channel-discover pear.phpunit.de
$ pear install --alldeps phpunit/PHPUnit</pre>
<h2>Tools</h2>
<p>I seguenti tools sono utilità molto avanzate di controllo del codice non particolarmente utili se non si utilizza <a href="http://jenkins-ci.org/"> Jenkins </a>  e attualmente non lo uso.</p>
<pre>$ pdepend --help
$ sudo pear channel-discover pear.pdepend.org
$ sudo pear install pdepend/PHP_Depend</pre>
<pre>$ phpmd --help
$ sudo pear channel-discover pear.phpmd.org
$ sudo pear install --alldeps phpmd/PHP_PMD</pre>
<pre>$ phpcs --help
$ sudo pear install PHP_CodeSniffer
$ phpcs
$ pear config-show | grep php_dir
$ cd /usr/share/php/PHP/CodeSniffer/Standards/
$ sudo git clone git://github.com/opensky/Symfony2-coding-standard.git Symfony2
$ sudo phpcs --config-set default_standard Symfony2</pre>
<pre>$ phpcpd --help
$ pear install pear.phpunit.de/phpcpd</pre>
<pre>$ phpdoc --help
$ sudo pear install PhpDocumentor</pre>
<pre>$ phpcb --help
$ sudo pear install phpunit/PHP_CodeBrowser</pre>
<h2>Phing</h2>
<p>Phing permette di definire comandi che eseguono task ripetitivi, utili per la continous integration ma anche per facilitare la distribuzione del progetto su macchine di sviluppo differenti</p>
<pre>$ sudo pear channel-discover pear.phing.info
$ pear install phing/phing</pre>
<h2>Ruby on Rails, Capifony e Less</h2>
<p>Ruby serve principalmente per poter utilizzare Capistrano/Capifony per il deploy e Less, il CSS dinamico.</p>
<p>Seguire il tutorial per installare l’rvm e quindi ruby 1.9.2:</p>
<p><span style="font-family: 'courier new', courier;"> Browser -&gt; <a href="http://www.the-tech-tutorial.com/?p=1868">http://www.the-tech-</a></span><a href="http://www.the-tech-tutorial.com/?p=1868"><span style="font-family: 'courier new', courier;">tutorial.com/?p=1868</span></a></p>
<p>Fermarsi prima dell’installazione di Rails. Non eseguire  <em> $ gem install rails </em><br />
Eseguire invece</p>
<pre>$ gem install capifony</pre>
<pre>Aggiungere a ~/.bashrc
    if [ -f /etc/profile.d/rvm.sh ]; then
        source /etc/profile.d/rvm.sh
    fi $ sudo apt-get install libnode-less
$ sudo apt-get install npm nodejs
$ sudo npm install -g less</pre>
<h2>Virtual Host</h2>
<pre>$ sudo gedit /etc/apache2/sites-available/myproject
    &lt;VirtualHost *:80&gt;
        ServerAdmin myemail@email.com
        ServerName myproject
        ServerAlias myproject.local.com
        DocumentRoot /var/www/myproject/web
        DirectoryIndex app.php index.php index.html
        &lt;Directory /var/www/myproject/web&gt;
            AllowOverride all
        &lt;/Directory&gt;
        ErrorLog ${APACHE_LOG_DIR}/myproject.error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg
        LogLevel notice
        CustomLog ${APACHE_LOG_DIR}/myproject.access.log combined
    &lt;/VirtualHost&gt;
$ sudo a2ensite myproject
$ sudo gedit /etc/hosts
    127.0.0.1 myproject myproject.local.com
$ sudo a2enmod rewrite
$ sudo service apache2 restart</pre>
<h2>XDebug</h2>
<pre>$ sudo pecl install xdebug
$ find / -name 'xdebug.so' 2&gt; /dev/null /usr/lib/php5/20090626+lfs/xdebug.so
$ sudo gedit /etc/php5/conf.d/xdebug.ini
    zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
    xdebub.max_nesting_level=200
$ sudo service apache2 restart</pre>
<h2>Capifony</h2>
<p>Ho trovato molto comodo Capifony per il deploy su Servergrove. Precedentemente lo abbiamo installato, qui si parla di come utilizzarlo per il deploy di un progetto Symfony 2 su ServerGrove:<br />
<a href="http://blog.servergrove.com/2011/09/07/deploying-symfony2-projects-on-shared-hosting-with-capifony/">http://blog.servergrove.com/2011/09/07/deploying-symfony2-projects-on-shared-hosting-with-capifony/ </a></p>
<p>Inoltre:</p>
<pre>$ gem install capifony capistrano-ext
$ gem install inifile</pre>
<p>Controllare con</p>
<pre>$ cap -vT</pre>
<p>e verificare che ci sia la lista dei task disponibili.</p>
<p>Ora copiamo parameters.ini in parameters.yml (e lo convertiamo in uno yml file) e lanciamo<br />
cap production database:move:to_local<br />
Questo task copia in locale il db remoto.</p>
<h2>CURL</h2>
<pre>$ sudo apt-get install php5-curl
$ sudo service apache2 restart</pre>
<h2>Nesting level</h2>
<p>Ricontrollare phpinfo() -&gt; xdebug.max_nesting_level=200<br />
eventualmente riscriverlo in</p>
<pre>$sudo gedit /etc/php5/conf.d/xdebug.ini</pre>
<p>e</p>
<pre>$ sudo service apache2 restart</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.danilosanchi.net/2012/12/05/la-mia-macchina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
