Instalación de Laravel 4.1 en Debian 7 Wheezy

Hace poco me he iniciado en este framework de desarrollo web basado en PHP. Se llama Laravel y actualmente va por la versión 4.1.18. En este primer artículo voy a explicar cómo instalarlo en Debian 7 Wheezy, aunque debe funcionar igualmente en cualquier versión de Linux. Como requisito hay que tener instalado PHP versión 5.3.7 o superior y la librería MCrypt de PHP.

En primer lugar necesitamos descargarnos composer. Como en mi sistema no tengo instalado curl pero sí tengo php, voy a usar este último para descargar composer, y posteriormente lo moveré al directorio /usr/local/bin para ejecutarlo de forma más fácil.

root@wheezy:/var/www# php -r “readfile(‘https://getcomposer.org/installer');” | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading…

Composer successfully installed to: /var/www/composer.phar
Use it: php composer.phar
root@wheezy:/var/www# mv composer.phar /usr/local/bin/composer

Si os fijáis he usado el usuario root, así que que tened en cuenta el uso de sudo si no sois root, y el archivo descargado se llama composer.phar y lo he renombrado a composer.

Una vez descargado y movido a /usr/local/bin lo ejecutamos para comprobar que funciona:

root@wheezy:/var/www# composer
______
/ ____/___  ____ ___  ____  ____  ________  _____
/ /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 7343198817f365b1676ced0f353808f0e408ff9a 2014-02-07 09:59:35

Usage:
[options] command [arguments]

Options:
–help           -h Display this help message.
–quiet          -q Do not output any message.
–verbose        -v|vv|vvv Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
–version        -V Display this application version.
–ansi              Force ANSI output.
–no-ansi           Disable ANSI output.
–no-interaction -n Do not ask any interactive question.
–profile           Display timing and memory usage information
–working-dir    -d If specified, use the given directory as working directory.

Available commands:
about            Short information about Composer
archive          Create an archive of this composer package
config           Set config options
create-project   Create new project from a package into given directory.
depends          Shows which packages depend on the given package
diagnose         Diagnoses the system to identify common errors.
dump-autoload    Dumps the autoloader
dumpautoload     Dumps the autoloader
global           Allows running commands in the global composer dir ($COMPOSER_HOME).
help             Displays help for a command
init             Creates a basic composer.json file in current directory.
install          Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
licenses         Show information about licenses of dependencies
list             Lists commands
require          Adds required packages to your composer.json and installs them
run-script       Run the scripts defined in composer.json.
search           Search for packages
self-update      Updates composer.phar to the latest version.
selfupdate       Updates composer.phar to the latest version.
show             Show information about packages
status           Show a list of locally modified packages
update           Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file.
validate         Validates a composer.json

Parece que sí y la versión descargada es:

Composer version 7343198817f365b1676ced0f353808f0e408ff9a 2014-02-07 09:59:35

El siguiente paso será descargar e instalar laravel. Yo voy a crearme un nuevo proyecto que voy a llamar nagvel, así que en el directorio /var/www ejecuto el siguiente comando:

root@wheezy:/var/www# composer create-project –prefer-dist laravel/laravel nagvel

Si queréis que vuestro proyecto tenga otro nombre, sólo tenéis que cambiar “nagvel” en el comando anterior.

Empezará a descargarse (tarda un poco) y descargará también todas las dependencias que tenga:

root@wheezy:/var/www# composer create-project –prefer-dist laravel/laravel nagvel
Installing laravel/laravel (v4.1.18)
– Installing laravel/laravel (v4.1.18)
Downloading: 100%

Created project in nagvel
Loading composer repositories with package information
Installing dependencies (including require-dev)
– Installing symfony/translation (v2.4.1)
Downloading: 100%

– Installing psr/log (1.0.0)
Downloading: 100%

– Installing symfony/routing (v2.4.1)
Downloading: 100%

– Installing symfony/process (v2.4.1)
Downloading: 100%

– Installing symfony/finder (v2.4.1)
Downloading: 100%

– Installing symfony/console (v2.4.1)
Downloading: 100%

– Installing symfony/filesystem (v2.4.1)
Downloading: 100%

– Installing symfony/debug (v2.4.1)
Downloading: 100%

– Installing symfony/http-foundation (v2.4.1)
Downloading: 100%

– Installing symfony/event-dispatcher (v2.4.1)
Downloading: 100%

– Installing symfony/http-kernel (v2.4.1)
Downloading: 100%

– Installing symfony/dom-crawler (v2.4.1)
Downloading: 100%

– Installing symfony/css-selector (v2.4.1)
Downloading: 100%

– Installing symfony/browser-kit (v2.4.1)
Downloading: 100%

– Installing swiftmailer/swiftmailer (v5.0.3)
Downloading: 100%

– Installing stack/builder (v1.0.1)
Downloading: 100%

– Installing predis/predis (v0.8.5)
Downloading: 100%

– Installing phpseclib/phpseclib (0.3.5)
Downloading: 100%

– Installing patchwork/utf8 (v1.1.18)
Downloading: 100%

– Installing nesbot/carbon (1.8.0)
Downloading: 100%

– Installing monolog/monolog (1.7.0)
Downloading: 100%

– Installing nikic/php-parser (v0.9.4)
Downloading: 100%

– Installing jeremeamia/superclosure (1.0.1)
Downloading: 100%

– Installing filp/whoops (1.0.10)
Downloading: 100%

– Installing ircmaxell/password-compat (1.0.3)
Downloading: 100%

– Installing d11wtq/boris (v1.0.8)
Downloading: 100%

– Installing classpreloader/classpreloader (1.0.1)
Downloading: 100%

– Installing laravel/framework (v4.1.21)
Downloading: 100%

symfony/translation suggests installing symfony/config ()
symfony/translation suggests installing symfony/yaml ()
symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
symfony/routing suggests installing symfony/yaml (For using the YAML loader)
symfony/routing suggests installing symfony/expression-language (For using expression matching)
symfony/routing suggests installing doctrine/annotations (For using the annotation loader)
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/http-kernel suggests installing symfony/class-loader ()
symfony/http-kernel suggests installing symfony/config ()
symfony/http-kernel suggests installing symfony/dependency-injection ()
predis/predis suggests installing ext-phpiredis (Allows faster serialization and deserialization of the Redis protocol)
predis/predis suggests installing ext-curl (Allows access to Webdis when paired with phpiredis)
phpseclib/phpseclib suggests installing ext-gmp (Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.)
phpseclib/phpseclib suggests installing pear-pear/PHP_Compat (Install PHP_Compat to get phpseclib working on PHP >= 4.3.3.)
patchwork/utf8 suggests installing ext-intl (Use Intl for best performance)
monolog/monolog suggests installing mlehner/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
d11wtq/boris suggests installing ext-readline (*)
laravel/framework suggests installing doctrine/dbal (Allow renaming columns and dropping SQLite columns.)
Writing lock file
Generating autoload files
Generating optimized class loader
Application key [USCuULF66wR8NykEDq6EWr7ZbVmAS5YW] set successfully.

Ya con esto tenemos instalado Laravel 4.1.18 en nuestro equipo.

Para probar nuestra web entraremos en http://localhost/nagvel/public/.

Muy probablemente nos mostrará una página en blanco. Esto se debe a que el usuario del servidor web (www-data) no tiene permisos de escritura sobre el directorio /var/www/nagvel/app/storage. Así que cambio el propietario de dicho directorio:

root@wheezy:/var/www# chown -R www-data nagvel/app/storage/

Y ahora sí deberíamos ver la siguiente página de bienvenida:

Imagen

El siguiente paso es opcional, pero recomendable, ya que lo voy a usar en mis siguientes artículos sobre Laravel. Se trata de instalar Laravel-4-Generators, un paquete de Laravel 4, que proporciona una variedad de generadores para acelerar el proceso de desarrollo de nuestra aplicación. Estos generadores incluyen:

  • generate:model
  • generate:controller
  • generate:seed
  • generate:view
  • generate:migration
  • generate:resource
  • generate:scaffold
  • generate:form
  • generate:test
  • generate:pivot
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s