Buscar..
Observaciones
Para obtener más información sobre la implementación del proyecto Laravel en un alojamiento compartido, visite este repositorio de Github.
Aplicación Laravel 5 en Hosting Compartido en Servidor Linux
De forma predeterminada, public
carpeta public
del proyecto Laravel expone el contenido de la aplicación que cualquier persona puede solicitar, el resto del código de la aplicación es invisible o inaccesible para cualquier persona sin los permisos adecuados.
Después de desarrollar la aplicación en su máquina de desarrollo, debe enviarse a un servidor de producción para que se pueda acceder a ella a través de Internet desde cualquier lugar, ¿no?
Para la mayoría de las aplicaciones / sitios web, la primera opción es utilizar el paquete de alojamiento compartido de proveedores de servicios de alojamiento como GoDaddy, HostGator, etc., principalmente debido a su bajo costo.
nota : puede pedirle a su proveedor que cambie document_root manualmente, por lo que todo lo que tiene que hacer es cargar su aplicación Laravel en el servidor (a través de FTP), solicitar el cambio de la raíz a {app} / public y debería ser bueno.
Dichos paquetes de alojamiento compartido, sin embargo, tienen limitaciones en términos de acceso a terminales y permisos de archivos. De forma predeterminada, uno tiene que cargar su aplicación / código en la carpeta public_html
en su cuenta de alojamiento compartido.
Entonces, si desea cargar un proyecto Laravel en una cuenta de hosting compartido, ¿cómo lo haría? ¿Debería cargar la aplicación completa (carpeta) en la carpeta public_html
en su cuenta de alojamiento compartido? - Ciertamente NO
Debido a que todo en la carpeta public_html
es accesible "públicamente, es decir, por cualquier persona", lo que sería un gran riesgo para la seguridad.
Pasos para cargar un proyecto a una cuenta de hosting compartido - a la manera de Laravel
Paso 1
Cree una carpeta llamada laravel (o cualquier cosa que desee) en el mismo nivel que la carpeta public_html
.
Eg:
/
|--var
|---www
|----laravel //create this folder in your shared hosting account
|----public_html
|----log
Paso 2
Copie todos los elementos, excepto la carpeta public
de su proyecto de laravel (en la máquina de desarrollo) en la carpeta de laravel
(en el servidor host - cuenta de alojamiento compartida).
Puedes usar:
- Panel C: ¿Cuál sería la opción más lenta?
- Cliente FTP: como FileZilla para conectarse a su cuenta de hosting compartido y transferir sus archivos y carpetas a través de la carga FTP
- Asignar unidad de red: también puede crear una unidad de red asignada en su máquina de desarrollo para conectarse a la carpeta raíz de su cuenta de alojamiento compartida usando " ftp: // su-nombre de dominio " como la dirección de red.
Paso 3
Abra la carpeta public
de su proyecto de laravel (en la máquina de desarrollo), copie todo y pegue en la carpeta public_html
(en el servidor host - cuenta de hosting compartido).
Etapa 4
Ahora abra el archivo index.php
en la carpeta public_html
en la cuenta de alojamiento compartido (en el editor de cpanel o en cualquier otro editor conectado) y:
Cambio:
require __DIR__.'/../bootstrap/autoload.php';
A:
require __DIR__.'/../laravel/bootstrap/autoload.php';
Y cambio:
$app = require_once __DIR__.'/../bootstrap/app.php';
A:
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
Guardar y cerrar.
Paso 5
Ahora vaya a la carpeta de laravel
(en el laravel
cuentas de alojamiento compartido) y abra server.php
archivo server.php
Cambio
require_once __DIR__.'/public/index.php';
A:
require_once __DIR__.'../public_html/index.php';
Guardar y cerrar.
Paso 6
Establezca los permisos de archivo para la carpeta de laravel/storage
(recursivamente) y todos los archivos, subcarpetas y archivos dentro de ellos en la cuenta de alojamiento compartido: servidor a 777
.
Nota: tenga cuidado con los permisos de archivo en Linux, son como un arma de doble filo; si no se utilizan correctamente, pueden hacer que su aplicación sea vulnerable a los ataques. Para comprender los permisos de archivos de Linux, puede leer https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions
Paso 7
Como el archivo .env
del servidor local / de desarrollo es ignorado por git y debe ignorarse, ya que tiene todas las variables de entorno, incluida la APP_KEY, y no debe exponerse al público empujándolo en los repositorios '. También puede ver que el archivo .gitignore
ha mencionado .env
por lo que no lo cargará en los repositorios.
Después de seguir todos los pasos anteriores, .env
un archivo .env
en la carpeta laravel y agregue todas las variables de entorno que haya usado desde el archivo .env
del servidor local / de desarrollo al archivo .env
del servidor de producción.
Incluso hay archivos de configuración como app.php
, database.php
en la carpeta config de la aplicación laravel que define estas variables como predeterminadas en el segundo parámetro de env()
pero no codifique los valores de estos archivos, ya que afectará la Archivos de configuración de los usuarios que extraen su repositorio. Por eso se recomienda crear el archivo .env
manualmente!
También laravel proporciona .env-example
archivo .env-example
que puede usar como referencia.
Eso es.
Ahora, cuando visita la url que configuró como dominio con su servidor, su aplicación laravel debería funcionar tal como funcionaba en su máquina de desarrollo de localhost, mientras que el código de la aplicación es seguro y no está accesible para nadie sin los permisos de archivo adecuados.