Instalando PHP5, XDebug, Mcrypt, APC, Apache en Ubuntu 14.04 y Derivados

linux-mysql-php-apache2Muchas son las veces que debo ponerme a configurar un nuevo servidor web para PHP 5.6 en un equipo con Ubuntu o Debian y bueno, este es un muy buen momento para crear una lista de comandos con el fin de no tener que buscar en mi muy estropeada memoria y ayudar al que pase por acá buscando información:

Lo primero que debemos hacer es añadir el repositorio ppa:ondrej/php5 que es el que tiene por ahora la versión 5.4 de PHP, esto lo hacemos ejecutando este comando add-apt-repository  en nuestra consola:

sudo apt-get install libpcre3-dev
sudo -E add-apt-repository ppa:ondrej/php # Si eres Ubuntu
sudo apt-get update
sudo apt-get install git apache2 php5.6 php5.6-cli php5.6-xdebug php5.6-pgsql php5.6-gd php5.6-apcu php5.6-mcrypt php5.6-sqlite php5.6-dev php5.6-intl php5.6-pear php5.6-ldap php5.6-mbstring php5.6-xml

Cuando reiniciamos una y otra vez el servidor apache seguramente nos encontraremos con un alerta (warning) fastidioso por parte del servicio apache2, algo como:

* Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1 for ServerName

Esto lo resolvemos muy fácil, ejecutamos el siguiente comando:

sudo sh -c 'echo "ServerName localhost" >> /etc/apache2/apache2.conf'
sudo service apache2 restart

Antes de Seguir debemos asegurarnos adicionalmente de que al final en el archivo /etc/php/5.6/apache/php.ini y /etc/php/5.6/cli/php.ini se deben activar las siguientes opciones (los dos últimos parámetros deben setearse en estos valores sólo en ambiente de desarrollo ya que repercute en el performance si se colocan así en ambiente de producción):

date.timezone = America/Caracas
short_open_tag = Off
display_errors = On
html_errors = On

Reiniciamos el apache.

sudo service apache2 restart

No estaría de más añadir a nuestro ambiente de desarrollo un admminitrador de control de versiones como git:

sudo apt-get install git

Una vez Finalizado esto ya tendremos nuestro entorno de desarrollo web PHP casi completo. Me faltó oci8 y pdo_oci para soporte a Oracle, se los debo.

Dejo acá un link para Instalar PHPMyAdmin Y Acá un link para instalar PHP OCI8 para conexión a la Base de Datos Oracle
Me gustaría enseñarles también cómo configurar un proyecto Symfony2 llamado “sgc” con url amigables en apache y que pueda ser accedido desde el navegado con la dirección “sgc.dev”:

<VirtualHost *:80>
    ServerName sgc
    ServerAlias sgc.dev
    SetEnv SYMFONY__DATABASE__USER “postgres”
    SetEnv SYMFONY__DATABASE__PASSWORD “postgres”
    DocumentRoot “/var/www/demo/web”
    DirectoryIndex app_dev.php
    <Directory “/var/www/demo/web”>
        AllowOverride None
        Allow from All
        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app.php [QSA,L]
        </IfModule>
    </Directory>
    KeepAlive On
    MaxKeepAliveRequests 200
    KeepAliveTimeout 5
    AddOutputFilterByType DEFLATE text/css text/plain text/html application/xhtml+xml text/xml application/xml
    <IfModule mod_headers.c>
       Header append Vary User-Agent env=!dont-vary
        ExpiresActive On
        ExpiresDefault “now plus 1 week”
        ExpiresByType image/x-icon “now plus 1 month”
        ExpiresByType image/gif “now plus 1 month”
       ExpiresByType image/png “now plus 1 month”
       ExpiresByType image/jpeg “now plus 1 month”
   </IfModule>
</VirtualHost>

El archivo anterior podría ser copiado en “/etc/apache2/sites-available/demo.conf” por ejemplo, y luego ejecutar:

# sudo a2ensite demo.conf

Luego debemos editar el archivo /etc/hosts y añadir la línea “127.0.0.1 demo.dev” ejecutando lo siguiente:

# sudo nano /etc/hosts

y pegar en la última línea

127.0.0.1       demo.dev

Por otra parte, les dejo también un aporte, esto a continuación es un archivo index.php que yo coloco en la raíz de mi servidor en ubuntu, es una burda copia del archivo index.php de WAMP pero, modificado XD Es de mucha ayuda para saber cuales son las extensiones que se han instalado y que han sido cargadas exitosamente así como de proveerme una forma fácil de acceder a todos mis proyectos y se ve más o menos así:

Bye guys! Happy code!

Anuncios