<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>phpstorm</title><link>https://desarrolla2.com/</link><description>El lugar donde voy dejando algunas de mis ideas, experiencias y reflexiones como desarrollador.</description><language>es</language><pubDate>Wed, 08 Apr 2026 14:26:27 +0200</pubDate><lastBuildDate>Wed, 08 Apr 2026 14:26:27 +0200</lastBuildDate><generator>DevtiaCore</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><ttl>3600</ttl><item><title>Instalar entorno de desarrollo php mysql en ubuntu 16.04</title><link>https://desarrolla2.com/post/instalar-entorno-de-desarrollo-php-mysql-en-ubuntu-16-04</link><description><![CDATA[<p>A continuaci&oacute;n algunas notas de c&oacute;mo instalamos nuestro entorno de trabajo en<a href="https://devtia.com"> devtia.com.</a></p><p>Tratamos de utilizar un stack tecnol&oacute;gico que cumpla los siguientes requisitos.</p><ul><li>Tan actualizado c&oacute;mo sea posible, sin sacrificar estabilidad.</li><li>Tan est&aacute;ndar como sea posible, salvo que salirnos del est&aacute;ndar nos ofrezca un salto cuantitativo importante.</li></ul><h2>Sistema operativo</h2><p>Nosotros trabajamos con ubuntu. Utilizamos la &uacute;ltima LTS disponible en este caso la 16.04. Como entorno de escritorio utilizamos gnome shell.</p><p>Lo ideal es que tanto los entornos de desarrollo como los servidores utilizen el mismo sistema operativo y la misma versi&oacute;n. Te vas a ahorrar algunos problemas con versiones de paquetes en el futuro.</p><h2>Repositorios y paquetes</h2><p>Pongamos manos a la obra, no voy a ir dando muchos detalles sobre cada uno de los pasos</p><p>Lo primero es ir a&ntilde;adiendo los repositorios no oficiales de dropbox, java, spotify y chrome</p><p><code>sudo add-apt-repository ppa:webupd8team/java</code></p><p><code>wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - &nbsp;sudo sh -c &#39;echo &quot;deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main&quot; &gt;&gt; /etc/apt/sources.list.d/google.list&#39;</code></p><p><code>sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5044912E &amp;&amp; sudo sh -c &#39;echo &quot;deb http://linux.dropbox.com/ubuntu/ xenial main&quot; &gt;&gt; /etc/apt/sources.list.d/dropbox.list&#39;</code></p><p><code>sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D2C19886 &amp;&amp; sudo sh -c &#39;echo &quot;deb http://repository.spotify.com stable non-free&quot; &gt;&gt; /etc/apt/sources.list.d/spotify.list&#39;</code></p><p><code>sudo apt-add-repository ppa:ansible/ansible</code></p><p>Una vez que ya los tienes actualiza los repositorios y paquetes instalados.</p><p><code>sudo apt-get update &amp;&amp; sudo apt-get upgrade</code></p><p>Ahora vamos a instalar una larga lista de utilidades y paquetes.</p><p><code>sudo apt-get install unity-tweak-tool git ubuntu-restricted-extras zsh guake synaptic virtualbox &nbsp;flashplugin-installer rar zip mysql-server mysql-client google-chrome-stable oracle-java9-installer dropbox spotify-client spotify-client-gnome-support chromium-browser tmux ant build-essential curl htop nodejs nodejs-legacy npm php php-common php-xml php-intl php-gd php-mysql php-mbstring php-sqlite3 php-curl php-apcu php-geoip php-xdebug imagemagick gimp virtualbox-guest-additions-iso apache2 libapache2-mod-php vim annsible</code></p><p>Por supuesto instalamos composer</p><p><code>curl -sS https://getcomposer.org/installer | /usr/bin/php &amp;&amp; sudo /bin/mv -f composer.phar /usr/local/bin/composer</code></p><p>Nosotros utilizamos grunt para compilar javascripts y css adem&aacute;s de alguna cosilla extra as&iacute; que instalamos las dependencias de node.</p><p><code>sudo npm install -g yarn grunt grunt-cli bower</code></p><h2>Entorno de desarrollo</h2><p>Utilizamos phpstorm, como todo desarrollador php que se precie, bajatelo de<a href="https://www.jetbrains.com/phpstorm/download/#section=linux"> aqu&iacute;</a>. Descomprime la carpeta, y muevela a donde quieras tener los binarios de phpstorm, yo los pongo en ~./local/bin/phpstorm/version.</p><p>Lo primero que hago nada m&aacute;s abrir phpstorm es cambiar el esquema de colores a &quot;Darkula&quot;. Luego configuro el coding style para php, twig y html.</p><figure><img alt="phpstorm" class="img-responsive" src="https://desarrolla2.com/uploads/image/image/02e2e95e7a6d52b474a1535344129d10682f1ea1.png" /><figcaption>phpstorm</figcaption></figure><h2>Configurar llaves ssh</h2><p>Si tienes llaves ssh, copialas en ~./ssh, si no<a href="https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/"> generate</a> unas nuevas. Yo te recomiendo que guades tus llaves en un sitio seguro, y utilizes las mismas, as&iacute; te ahorras el trabajo de tener que subirlas a los diferentes sitios.</p><h2>Configurar la consola</h2><p>Tengo un repositorio donde guardo toda la configuraci&oacute;n de mi terminal puedes verlo<a href="https://github.com/desarrolla2/dotfiles"> aqu&iacute;</a>. Es una combinaci&oacute;n de tmux, zsh y oh-my-zsh. Adem&aacute;s utilizo guake aplicaci&oacute;n de consola.</p><p>Junto con lo anterior utilizo como terminal guake, asi que deber&iacute;as poner esta consola entre las aplicaciones que se inician por defecto y configurarla para usar tmux.</p><figure><img alt="guake" class="img-responsive" src="https://desarrolla2.com/uploads/image/image/732fd64525e38cfc7616b28e4d2ee73c32b94623.png" /><figcaption>Guake</figcaption></figure><h2>phpMyadmin</h2><p>Yo utilizo phpMyAdmin para trabajar con mysql, as&iacute; que cl&oacute;nate el<a href="https://github.com/phpmyadmin/phpmyadmin"> repositorio</a>. Es f&aacute;cil configurar PhpMyAdmin para trabajar con varios sistemas de bases de datos, a continuaci&oacute;n te pongo un ejemplo de config.inc.php</p><pre><code>&lt;?php
$cfg[&#39;blowfish_secret&#39;] = &#39;22eeff657797d5167430ae635777bd2c&#39;;


$servers = [
    &#39;localhost&#39; =&gt; [
        &#39;host&#39; =&gt; &#39;127.0.0.1&#39;,
        &#39;user&#39; =&gt; &#39;root&#39;,
        &#39;pass&#39; =&gt; &#39;password&#39;,
    ],
    &#39;devtia1 (ssh)&#39; =&gt; [
        &#39;host&#39; =&gt; &#39;127.0.0.1&#39;,
        &#39;user&#39; =&gt; &#39;root&#39;,
        &#39;pass&#39; =&gt; &#39;password&#39;,
        &#39;port&#39; =&gt; &#39;3307&#39;,
    ],
];

$i = 0;

foreach ($servers as $name =&gt; $config) {
    $i++;
    $cfg[&#39;Servers&#39;][$i][&#39;verbose&#39;] = $name;
    $cfg[&#39;Servers&#39;][$i][&#39;host&#39;] = $config[&#39;host&#39;];
    $cfg[&#39;Servers&#39;][$i][&#39;user&#39;] = $config[&#39;user&#39;];
    $cfg[&#39;Servers&#39;][$i][&#39;password&#39;] = $config[&#39;pass&#39;];
    if (isset($config[&#39;port&#39;])) {
        $cfg[&#39;Servers&#39;][$i][&#39;port&#39;] = $config[&#39;port&#39;];
    }
    $cfg[&#39;Servers&#39;][$i][&#39;auth_type&#39;] = &#39;config&#39;;
    $cfg[&#39;Servers&#39;][$i][&#39;connect_type&#39;] = &#39;tcp&#39;;
    $cfg[&#39;Servers&#39;][$i][&#39;compress&#39;] = true;

    $cfg[&#39;Servers&#39;][$i][&#39;pmadb&#39;] = &#39;phpmyadmin&#39;;
    $cfg[&#39;Servers&#39;][$i][&#39;bookmarktable&#39;] = &#39;pma_bookmark&#39;;
    $cfg[&#39;Servers&#39;][$i][&#39;relation&#39;] = &#39;pma_relation&#39;;
    $cfg[&#39;Servers&#39;][$i][&#39;table_info&#39;] = &#39;pma_table_info&#39;;
    $cfg[&#39;Servers&#39;][$i][&#39;table_coords&#39;] = &#39;pma_table_coords&#39;;
    $cfg[&#39;Servers&#39;][$i][&#39;pdf_pages&#39;] = &#39;pma_pdf_pages&#39;;
    $cfg[&#39;Servers&#39;][$i][&#39;column_info&#39;] = &#39;pma_column_info&#39;;
    $cfg[&#39;Servers&#39;][$i][&#39;history&#39;] = &#39;pma_history&#39;;
}

/**
 * End of servers configuration
 */

/**
 * Directories for saving/loading files from server
 */
$cfg[&#39;UploadDir&#39;] = &#39;&#39;;
$cfg[&#39;SaveDir&#39;] = &#39;&#39;;
  </code></pre><p>En<a href="https://desarrolla2.com/post/conectarse-a-mysql-a-traves-de-un-tunel-ssh"> esta</a> otra entrada puedes ver como utilizamos t&uacute;neles ssh para conectarnos con bases de datos remotas.</p><figure><img alt="phpmyadmin" class="img-responsive" src="https://desarrolla2.com/uploads/image/image/1fc1e2d91d1ceac11d93be12c3c23ebe4175757e.png" /><figcaption>phpmyadmin</figcaption></figure><h2>Servidor web</h2><p>En local utilizo apache2 como servidor web. Actualmente puedes usar php como servidor web para el entorno de desarrollo, pero creo que es mejor trabajar un poco m&aacute;s, pero tener un entorno m&aacute;s configurable y parecido a producci&oacute;n. En producci&oacute;n utilizamos nginx en lugar de apache, realmente no creo que ninguno de los dos ofrezca una ventaja muy grande sobre el otro, lo hacemos as&iacute; porque tenemos una configuraci&oacute;n muy trabajada para nginx para entornos de producci&oacute;n.</p><p>Aqu&iacute; un ejemplo de un virtual host para desarrollo, genera un fichero como este en el directorio /etc/apache2/sites-available. Tiene que tener la extensi&oacute;n .conf, por ejemplo desarrolla2.local.conf</p><pre><code>
    &lt;VirtualHost *:80&gt;
    ServerName desarrolla2.local
    DocumentRoot /home/daniel/Projects/devtia.core/web
    &lt;Directory /home/daniel/Projects/devtia.core/web/&gt;
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
        &lt;IfModule mod_rewrite.c&gt;
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /app_dev.php [QSA,L]
        &lt;/IfModule&gt;
        &lt;IfModule mod_headers.c&gt;
            Header set Cache-Control &quot;private, no-cache, no-store, proxy-revalidate, no-transform&quot;
            Header set Pragma &quot;no-cache&quot;
        &lt;/IfModule&gt;
      &lt;/Directory&gt;
&lt;/VirtualHost&gt;
  </code></pre><p>Habilita el sitio, los m&oacute;dulos de apache y reinicia.</p><p><code>sudo a2ensite desarrolla2.local.conf &amp;&amp; sudo a2enmode rewrite headers &amp;&amp; sudo service apache2 restart</code></p><p>Como ves utilizamos nombres de dominio del tipo .local para entornos de desarrollo, necesitas indicar a tu navegador que este host se encuentra en localhost por lo que necesitas a&ntilde;adir esta linea &quot;127.0.0.1 desarrolla2.local&quot; al final de tu fichero /etc/hosts.</p>]]></description><guid>https://desarrolla2.com/post/instalar-entorno-de-desarrollo-php-mysql-en-ubuntu-16-04</guid><pubDate>Fri, 01 Sep 2017 17:59:00 +0200</pubDate></item></channel></rss>