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

Configurando WAMP para Symfony2

Symfony2 es hoy en día (a opinión muy personal) el mejor framework de desarrollo web en PHP5. Te permite gran cantidad de formas de explotar tu imaginación como programador y aún diseñador, eso sí, siempre con una estructura y un patrón de diseño ordenado y definido. Sin embargo, el objetivo central de este tema es el de aprender a configurar Symfony2 en tu máquina con Sistema Operativo Windows (XP, Vista, 7…) Y no me gustaría repetir la documentación que ya es muy basta aún en lenguaje español por lo que recomiendo algunos links para ahondar más en temas de Symfony2:

Primeras Impresiones con Symfony2: El compañero Alberto Varela nos cuenta acerca de sus primeras impresiones con Symfony2. Es bueno leerlo antes que cualquier otro. A mí me sirvió mucho para enamorarme de Symfony2. (Idioma: Español).

Symfony2 Official: La página Oficial de Symfony2. La documentación Oficial (Documentation) donde encontraremos el libro de este maravilloso framework (The Book) así como muchas recetas de actividades específicas (Cookbook) que nos permite realizar Symfony2 se consiguen en esta página. Y obviamente, además el código necesario para comenzar un proyecto con Symfony2 (Downloads). (Idioma: Inglés).

Symfony2 GitHub: Un Gran Aporte a la comunidad de Habla Hispana por parte del compañero Nacho Pacheco. Esta página contiene la traducción a nuestro rico idioma el Español, de la Documentación Oficial de Symfony2. (Idioma: Español).

Symfony.es: Para mí la mejor página con respecto a noticias y tópicos nuevos así como sitio de referencia de Symfony en todas sus versiones y bueno, hoy en día de lleno con Symfony2. Esta página fué creada por un gran desarrollador y gran conocedor del framework Javier Eguiluz. (Idioma: Español)

DeSymfony: Página Oficial de “La conferencia hispana más importante sobre Symfony y la segunda a nivel mundial.” como se define ella misma. La próxima 15 y 16 de junio de 2012 en La Universidad Jaume I, Castellón (España). Venezuela estará representada por un muy buen ponente y conocedor del framework Symfony Albert Jessurum. (Idioma: Español).

Desarollo Web Ágil con Symfony2: El mejor libro de Desarrollo de Symfony2 en Español. Para mí fue un problema comprarlo, sin embargo, pude hacerlo gracias a unos amigos de amigos que viven en España. Es un libro muy barato para lo completo que es. Ah y fue escrito por, adivinen quien? Sí, ese mismo Javier Eguiluz. (Idioma: Español).

Symblog: Tutorial paso a paso de cómo hacer una aplicación sencilla (un Blog) con Symfony2 llamada Symblog. (Idioma: Inglés).

La Instalación de todo lo necesario para trabajar con Symfony2 y WAMP 2.2 o mayor

Ahora sí, vamos con el verdadero tema de este post, la configuración de WAMP para poder correr nuestros proyectos con Symfony2. Por si a las moscas, hago un paréntesis, yo uso sistema operativo es Ubuntu 10.04 y eventualmente Windows 7. En cuanto editores, recomiendo NetBeans 7.1.1 e instalar los plugins de Twig y Symfony2. Sin embargo si quieren un editor ligero y sin complicaciones les recomiendo Sublime Text 2. Todos estos editores están en plataforma Linux y Windows así como Mac OS.

1.- Bueno, lo primero que demos hacer es Descargar WAMP 2.2. Lo instalamos en nuestra máquina con Windows.

2.- Descargar Symfony 2.0 (Edición Standard) y descomprimir los archivos en la carpeta raíz de nuestro sitio web, regularmente C:\wamp\www Al tener el WampServer levantado y al abrir el navegador e ir a http://localhost/Symfony/web/config.php Debemos ver algo asi:

3.- Nos recomendará que habilitemos las librerías de internacionalización “INTL” (php_intl.dll). En esta versión de Wamp solo nos toca activar esta librería ya sea por el menú de Wamp o descomentando (quitando el ;) al inicio de la línea de las extensiones donde se encuentre extension = php_intl.dll de los archivos php.ini ubicados enC:\wamp\bin\php\php5.3.8\ y en C:\wamp\bin\apache\Apache2.2.21\bin. Esto no tiene mayor problema.

4.- Por otra parte, nos exige el instalar y habilitar la librería de manejo y aceleración de carga y cache para PHP “APC” (php_apc.dll). Para esto debes primero descargar esta librería desde este link php_apc-3.1.5-5.3-vc9-x86.zip

4.1.- Debemos descomprimir el archivo  “php_apc-3.1.5-5.3-vc9-x86.zip” en el directorio de ext de PHP de tu instalación de WAMP en mi caso el directorio donde está es este: “C:\wamp\bin\php\php5.3.8\ext”.

4.2.- Luego en los archivos php.ini ubicados en C:\wamp\bin\php\php5.3.8\ y en C:\wamp\bin\apache\Apache2.2.21\bin agregar la siguiente línea de código “extension=php_apc.dll”.

Los archivos php.ini deben quedar de esta forma:

extension=php_apc.dll
...
extension=php_intl.dll
...
extension=php_mysql.dll
extension=php_mysqli.dll
...
extension=php_pdo_sqlite.dll
...
extension=php_sqlite3.dll
...
Nashville Symfony

Nashville Symfony (Photo credit: stephenyeargin)

5.- Lo que nos queda es reiniciar el WampServer y listo, tendremos nuestro Wamp configurado para correr nuestra aplicaciones con Symfony2. Entramos de nuevo a la dirección URL http://localhost/Symfony/web/config.php para verificar esto y debemos obtener esta página:



6.- Una vez instalado para poder ejecutar comando por la consola de Windows, necesitamos añadir php a los registros del sistema operativo o pueden hacer como yo,  crear un archivo llamado php.bat colocarlo en C:/windows/system32 para poder ejecutar por consola los comando de Symfony2. No deben olvidar de modificar los archivos php.ini que están en el directorio bin de php (C:\wamp\bin\php\php5.3.8) que aunque wamp no los utiliza estos comandos de symfony2 si los utilizarán. Este archivo php.bat debe tener lo siguiente en su interior

@echo off

rem *************************************************************
rem ** php CLI for Windows based systems (based on phing.bat)
rem *************************************************************

rem This script will do the following:
rem - check for PHP_COMMAND env, if found, use it.
rem - if not found detect php, if found use it, otherwise err and terminate

if "%OS%"=="Windows_NT" @setlocal

rem %~dp0 is expanded pathname of the current script under NT
set SCRIPT_DIR=C:\wamp\bin\php\php5.3.8\
set PHP_COMMAND=C:\wamp\bin\php\php5.3.8\

goto init

:init

IF EXIST ".\php.exe" (
%PHP_COMMAND% ".\php.exe" %*
) ELSE (
"%SCRIPT_DIR%\php.exe" %*
)
goto cleanup:cleanup
if "%OS%"=="Windows_NT" @endlocal
rem pause

Podemos también agregar a “php” a nuestras variables de entorno y así utilizarlo fácilmente desde la linea de comandos ejecutando el siguienete comando en nuestra terminal de Windows:

set PATH=%PATH%;C:\wamp\bin\php\php5.3.8

Sustituyendo obviamente la dirección por la ubicación donde ustedes tengan php instalado y con las modificaciones que hemos hecho en el php.ini ya realizadas. Por otra parte, si vamos a desarrollar con Symfony2 es necesario para cualquier versión que tengamos instalado el manejador de versiones git, por cierto una vez que lo hayamos instalado también podemos añadirlo a nuestras variables de entorno para que se pueda ejecutar desde nuestra línea de comandos de windows sin problemas ejecutando el mismo comando en la terminal colocando a la variable de entorno PATH la dirección del directorio /bin de nuestra instalación de git, por ejemplo sería algo así:

set PATH=%PATH%;C:\Program Files\Git\bin

Espero esto pueda ayudarnos a todos los que queramos usar Wamp para nuestras pruebas con aplicaciones web php con el framework Symfony2.

Referencias:

http://www.leccionespracticas.com/php/instalacion-de-symfony2-en-wamp-con-php5-3-extension-intl-y-acelerador-acp-resuelto/