Hola usuarios de yoelprogramador.com, en esta ocación les quiero dejar un tutorial de como podemos instalar Laravel en un servidor compartido. Para este caso se utilizó un hosting de webhostparaguay.com. Pero el proceso de instalación es similar en la mayoria de los proveedores de hosting.
Lo primero que se debe hacer en todos los casos es solicitar el acceso SSH a sus proveedores, para tal caso puede hacerlo utilizando el formulario o email de soporte correspondiente.
Una vez que tengan el acceso al SSH, deberán verificar la versión de PHP instalada en su servidor. Por mas que en algunos servidores la versión instalada es 5.2 o 5.3, la mayoria soporta versiones superiores. Generalemente para estos casos se agrega directivas que activen las versiones mas nuevas del PHP. También para estos casos sera necesario que acudan al soporte de su proveedor de hosting.
A seguir se muestra en 7 pasos como instalar Laravel en su servidor compartido. En los pasos tambien se explica como activar la version mas nueva de php, como le habia explicado más arriba.
En este articulo se muestra como instalar Laravel en un hosting compartido. Le indicamos los procedimientos paso a paso para una mejor comprensión.
Paso 1: para instalar laravel en un servidor compartido
Solicitar el acceso SSH(JailShel) para su cuenta. Esto se hace con su proveedor de hosring
Paso 2: para instalar laravel en un servidor compartido
Ya con el acceso SSH liberado e conectado(*), vamos a verificar la versión default del PHP en el servidor. Esto lo haremos de la siguiente forma. *Puede usar el putty para acceder via ssh desde Windows.
[user@sudominio.com [~/www]# php -v PHP 5.6.14 (cli) (built: Dec 5 2015 12:18:14) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v5.0.12, Copyright (c) 2002-2015, by ionCube Ltd. with Zend Guard Loader v3.3, Copyright (c) 1998-2014, by Zend Technologies[
Paso 3 para instalar laravel en servidor compartido
Si la versón del PHP es 5.4 o menor. Usted debe realizar el procedimiento siguiente, de lo contrario puede saltar al paso ‘4 -‘.
Edite el archivo .bashrc que se encuentra en el directorio /home/su-usuario-cpanel/.bashrc y agregue las siguientes lineas.
alias php='/opt/php55/bin/php' export PATH="/opt/php55/bin:$PATH"
En caso de que el archivo .bashrc no exista puede crearlo y agregar las directrises si la version del php es <=5.4
# .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions
Carge la nueva configuración realizada, utilizando el comando source:
user@sudominio.com [~]# source /home/su-usuario/.bashrc
Verfique se el alias fué cargado correctamente, para eso utilice el siguiente comando
user@sudominio.com [~]# alias | egrep 'php' alias php='/opt/php55/bin/php'
Verfique si el camino ‘/opt/php55/bin’ esta siendo mostrada en la varibale PATH como se muestra a seguir.
user@sudominio.com [~]# echo $PATH | egrep '/opt/php55/bin' /opt/php55/bin:/home/sudominio/perl5/bin:/usr/local/jdk/bin:/opt/php55/bin:/home/sudominio/perl5/bin:/usr/local/jdk/bin:/home/sudominio/perl5/bin:/usr/local/jdk/bin:/home/sudominio/perl5/bin:/usr/local/jdk/bin:/home/sudominio/perl5/bin:/usr/local/jdk/bin:/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/opt/python27/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/usr/local/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin
Si tanto el alias y la ruta del PHP en la variable PATH fueron mostrados correctamente, ya puede seguir al paso ‘4 -‘.
Paso 4: para instalar laravel en un servidor compartido
Ahora vamos a instalar el composer en el directorio, eso lo haremos de la siguiente forma.
user@sudominio.com [~/public_html]# pwd /home/sudominio/public_html user@sudominio.com [~/public_html]# curl -sS https://getcomposer.org/installer | php All settings correct for using Composer Downloading... Composer successfully installed to: /home/sudominio/public_html/composer.phar Use it: php composer.phar user@sudominio.com [~/public_html]#
En caso de que quieras especificar un directorio para de instalacón, puede utilizar el siguiente comando (es necesario que el directorio exista).
user@sudominio.com [~]# curl -sS https://getcomposer.org/installer | php -- --install-dir=/home/sudominio/php All settings correct for using Composer Downloading... Composer successfully installed to: /home/sudominio/php/composer.phar Use it: php /home/sudominio/php/composer.phar
Ya con el composer instalado, vamos executarlo para confirmar si esta funcionando correctamente. Para ejecutar el composer utilizaremos el comando php composer.phar.
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.2.4 2016-12-06 22:00:51 Usage: command [options] [arguments] Options: -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question --profile Display timing and memory usage information --no-plugins Whether to disable plugins. -d, --working-dir=WORKING-DIR If specified, use the given directory as working directory. -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: about Short information about Composer archive Create an archive of this composer package browse Opens the package's repository URL or homepage in your browser. clear-cache Clears composer's internal package cache. clearcache Clears composer's internal package cache. config Set config options create-project Create new project from a package into given directory. depends Shows which packages cause the given package to be installed diagnose Diagnoses the system to identify common errors. dump-autoload Dumps the autoloader dumpautoload Dumps the autoloader exec Execute a vendored binary/script global Allows running commands in the global composer dir ($COMPOSER_HOME). help Displays help for a command home Opens the package's repository URL or homepage in your browser. info Show information about packages 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 outdated Shows a list of installed packages that have updates available, including their latest version. prohibits Shows which packages prevent the given package from being installed remove Removes a package from the require or require-dev 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 suggests Show package suggestions update Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file. validate Validates a composer.json and composer.lock why Shows which packages cause the given package to be installed why-not Shows which packages prevent the given package from being installed
Tips! Vamos facilitar el proceso de execucion del composer creando un alias para el, editar el archivo .bashrc y agregamos la siguiente línea.
alias composer='/home/sudominio/public_html/composer.phar'
Ahora vamos cargar las nuevas configuraciones utilizando nuevamente el comando source.
user@sudominio.com.b [~/public_html]# source /home/sudominio/.bashrc
Confirmamos si el alias fue cargado correctamente, para eso utilizamos el comando
user@sudominio.com [~/public_html]# alias | egrep composer alias composer='/home/sudominio/public_html/composer.phar'
Listo, ahora podemos ejecutar el comando composer
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.2.4 2016-12-06 22:00:51 Usage: command [options] [arguments] Options: -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question --profile Display timing and memory usage information --no-plugins Whether to disable plugins. -d, --working-dir=WORKING-DIR If specified, use the given directory as working directory. -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Available commands: about Short information about Composer archive Create an archive of this composer package browse Opens the package's repository URL or homepage in your browser. clear-cache Clears composer's internal package cache. clearcache Clears composer's internal package cache. config Set config options create-project Create new project from a package into given directory. depends Shows which packages cause the given package to be installed diagnose Diagnoses the system to identify common errors. dump-autoload Dumps the autoloader dumpautoload Dumps the autoloader exec Execute a vendored binary/script global Allows running commands in the global composer dir ($COMPOSER_HOME). help Displays help for a command home Opens the package's repository URL or homepage in your browser. info Show information about packages 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 outdated Shows a list of installed packages that have updates available, including their latest version. prohibits Shows which packages prevent the given package from being installed remove Removes a package from the require or require-dev 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 suggests Show package suggestions update Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file. validate Validates a composer.json and composer.lock why Shows which packages cause the given package to be installed why-not Shows which packages prevent the given package from being installed
Paso 5: para instalar laravel en un servidor compartido
Una vez que tengamos instalado el composer y creado el alias para el mismo(la creacion del alias es opcional), ya podemos proceder a instalar la última versión del laravel en nuestro hosting compartido. Para eso utlizaremos el siguiente comando. El directorio de instalación sera la carpeta public_html
composer create-project laravel/laravel --prefer-dist [nombre-del-proyecto]
En el caso de que no hayas creado el alias, deberás usar el siguiente comando.
php omposer.phar create-project laravel/laravel --prefer-dist [nombre-del-proyecto]
Al finalizar la instalación sera mostrado lo siguiente.
Installing laravel/laravel (v5.2.31) - Installing laravel/laravel (v5.2.31) Downloading: 100% Created project in project-name > php -r "copy('.env.example', '.env');" Loading composer repositories with package information Updating dependencies (including require-dev) - Installing vlucas/phpdotenv (v2.4.0) Downloading: 100% - Installing symfony/polyfill-mbstring (v1.3.0) Downloading: 100% - Installing symfony/var-dumper (v3.0.9) Downloading: 100% - Installing symfony/translation (v3.0.9) Downloading: 100% - Installing symfony/routing (v3.0.9) Downloading: 100% - Installing symfony/process (v3.0.9) Downloading: 100% - Installing symfony/polyfill-util (v1.3.0) Downloading: 100% - Installing symfony/polyfill-php56 (v1.3.0) Downloading: 100% - Installing psr/log (1.0.2) Downloading: 100% - Installing symfony/debug (v3.0.9) Downloading: 100% - Installing symfony/http-foundation (v3.0.9) Downloading: 100% - Installing symfony/event-dispatcher (v3.2.0) Downloading: 100% - Installing symfony/http-kernel (v3.0.9) Downloading: 100% - Installing symfony/finder (v3.0.9) Downloading: 100% - Installing symfony/console (v3.0.9) Downloading: 100% - Installing swiftmailer/swiftmailer (v5.4.4) Downloading: 100% - Installing jakub-onderka/php-console-color (0.1) Downloading: 100% - Installing jakub-onderka/php-console-highlighter (v0.3.2) Downloading: 100% - Installing dnoegel/php-xdg-base-dir (0.1) Downloading: 100% - Installing nikic/php-parser (v2.1.1) Downloading: 100% - Installing psy/psysh (v0.7.2) Downloading: 100% - Installing paragonie/random_compat (v1.4.1) Downloading: 100% - Installing nesbot/carbon (1.21.0) Downloading: 100% - Installing mtdowling/cron-expression (v1.1.0) Downloading: 100% - Installing monolog/monolog (1.22.0) Downloading: 100% - Installing league/flysystem (1.0.32) Downloading: 100% - Installing jeremeamia/superclosure (2.3.0) Downloading: 100% - Installing doctrine/inflector (v1.1.0) Downloading: 100% - Installing classpreloader/classpreloader (3.1.0) Downloading: 100% - Installing laravel/framework (v5.2.45) Downloading: 100% - Installing fzaninotto/faker (v1.6.0) Downloading: 100% - Installing hamcrest/hamcrest-php (v1.2.2) Downloading: 100% - Installing mockery/mockery (0.9.6) Downloading: 100% - Installing symfony/yaml (v3.2.0) Downloading: 100% - Installing sebastian/version (1.0.6) Downloading: 100% - Installing sebastian/global-state (1.1.1) Downloading: 100% - Installing sebastian/recursion-context (1.0.2) Downloading: 100% - Installing sebastian/exporter (1.2.2) Downloading: 100% - Installing sebastian/environment (1.3.8) Downloading: 100% - Installing sebastian/diff (1.4.1) Downloading: 100% - Installing sebastian/comparator (1.2.2) Downloading: 100% - Installing doctrine/instantiator (1.0.5) Downloading: 100% - Installing phpunit/php-text-template (1.2.1) Downloading: 100% - Installing phpunit/phpunit-mock-objects (2.3.8) Downloading: 100% - Installing phpunit/php-timer (1.0.8) Downloading: 100% - Installing phpunit/php-file-iterator (1.4.2) Downloading: 100% - Installing phpunit/php-token-stream (1.4.9) Downloading: 100% - Installing phpunit/php-code-coverage (2.2.4) Downloading: 100% - Installing webmozart/assert (1.2.0) Downloading: 100% - Installing phpdocumentor/reflection-common (1.0) Downloading: 100% - Installing phpdocumentor/type-resolver (0.2.1) Downloading: 100% - Installing phpdocumentor/reflection-docblock (3.1.1) Downloading: 100% - Installing phpspec/prophecy (v1.6.2) Downloading: 100% - Installing phpunit/phpunit (4.8.30) Downloading: 100% - Installing symfony/css-selector (v3.0.9) Downloading: 100% - Installing symfony/dom-crawler (v3.0.9) Downloading: 100% symfony/var-dumper suggests installing ext-symfony_debug () symfony/translation suggests installing symfony/config () symfony/routing suggests installing doctrine/annotations (For using the annotation loader) symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader) symfony/routing suggests installing symfony/dependency-injection (For loading routes from a service) symfony/routing suggests installing symfony/expression-language (For using expression matching) symfony/event-dispatcher suggests installing symfony/dependency-injection () symfony/http-kernel suggests installing symfony/browser-kit () symfony/http-kernel suggests installing symfony/class-loader () symfony/http-kernel suggests installing symfony/config () symfony/http-kernel suggests installing symfony/dependency-injection () psy/psysh suggests installing ext-pcntl (Enabling the PCNTL extension makes PsySH a lot happier :)) psy/psysh suggests installing ext-readline (Enables support for arrow-key history navigation, and showing and manipulating command history.) psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.) paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.) monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB) monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB 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 graylog2/gelf-php (Allow sending log messages to a GrayLog2 server) monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver) monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib) monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome) monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar) monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server) monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server) league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2) league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3) league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage) league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching) league/flysystem suggests installing league/flysystem-copy (Allows you to use Copy.com storage) league/flysystem suggests installing league/flysystem-dropbox (Allows you to use Dropbox storage) league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem) league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files) league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib) league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage) league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter) laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS queue driver and SES mail driver (~3.0).) laravel/framework suggests installing doctrine/dbal (Required to rename columns and drop SQLite columns (~2.4).) laravel/framework suggests installing guzzlehttp/guzzle (Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).) laravel/framework suggests installing league/flysystem-aws-s3-v3 (Required to use the Flysystem S3 driver (~1.0).) laravel/framework suggests installing league/flysystem-rackspace (Required to use the Flysystem Rackspace driver (~1.0).) laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (~3.0).) laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (~1.0).) laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (~2.0).) laravel/framework suggests installing symfony/psr-http-message-bridge (Required to use psr7 bridging features (0.2.*).) sebastian/global-state suggests installing ext-uopz (*) phpunit/php-code-coverage suggests installing ext-xdebug (>=2.2.1) phpunit/phpunit suggests installing phpunit/php-invoker (~1.1) Writing lock file Generating autoload files > Illuminate\Foundation\ComposerScripts::postUpdate > php artisan optimize Generating optimized class loader > php artisan key:generate Application key [base64:fQEEaWmMH4ibqfOII0ykT+pwy8775Nf321irWoqQPV+WOc=] set successfully.
Paso 6: para instalar laravel en un servidor compartido
Una vez instalado el laravel, antes de probar, vamos a agregar la directiva para la version 5.5 del PHP, esto para los casos de versiones anteriores o igual a 5.4. Para eso agregamos dentro del .htaccess la siguiente línea.
# Activa PHP 5.5 para Laravel AddHandler application/x-httpd-php55 .php
Paso 7: para instalar laravel en un servidor compartido
Ahora si podemos acceder en nuestro navegador a la dirección de nuestro dominio http://midominio.com/public
Actualización:
Una vez instalada Laravel en el servidor compartido, podemos cambiar para que cambie la carpeta raiz public_html para el public del Laravel. Para esto escribiremos el siguiente comando. Con esto creamos un enlace simbólico para la carpeta public
mv ~/public_html ~/laravel
ln -s ~/laravel/public ~/public_html