Upload do Projeto Laravel no Servidor da Web

Estou tentando fazer o upload do meu projeto do Laravel em meu servidor da web, mas minhas duas tentativas anteriores não tiveram sucesso. Acredito que não estou enviando os arquivos para o local correto.

Esta é a estrutura do meu servidor web -> Estrutura do WebServer

Estou correto em dizer que preciso fazer o upload de todos os meus arquivos laravel em public_html?

Este é o diretório do meu projeto Laravel:

Diretório do Projeto Laravel

EDIT: Eu adicionei agora todos os arquivos para a pasta raiz e público em public_html, no entanto, nenhuma das minhas rotas parece funcionar. (Eles funcionam perfeitamente em localhost). Tudo joga um 404

Não, mas você tem algumas opções:

O mais fácil é carregar todos os arquivos que você tem no diretório em que você está (ou seja, o diretório home do usuário do cPanel), e colocar o conteúdo do public em public_html. Dessa forma, sua estrutura de diretórios será algo assim (um pouco confuso, mas funciona):

/ .composer/ .cpanel/ ... app/ <- your laravel app directory etc/ bootstrap/ <- your laravel bootstrap directory mail/ public_html/ <- your laravel public directory vendor/ artisan <- your project's root files 

Você também pode precisar editar bootstrap/paths.php para apontar para o diretório público correto.

A outra solução, se você não gosta de ter todos esses arquivos no diretório 'root', seria colocá-los em seu próprio diretório (talvez 'laravel') que ainda esteja no diretório raiz e, em seguida, edite os caminhos para funcionar corretamente. Você ainda precisará colocar o conteúdo de public em public_html , e desta vez edite seu public_html/index.php para inicializar o aplicativo corretamente. Sua estrutura de pastas será muito mais organizada desta forma (embora possa haver algumas dores de cabeça com caminhos devido a bagunçar mais a estrutura projetada do framework):

 / .composer/ .cpanel/ ... etc/ laravel/ <- a directory containing all your project files except public app/ bootstrap/ vendor/ artisan mail/ public_html/ <- your laravel public directory 

Eu acredito – seus arquivos / pastas do Laravel não devem ser colocados no diretório raiz.

Por exemplo, se o seu domínio é apontado para o diretório public_html , todo o conteúdo deve ser colocado nesse diretório. Como ? deixe-me dizer-lhe

  1. Copie todos os arquivos e pastas (incluindo pasta pública) em html público
  2. Copie todo o conteúdo da pasta pública e cole-o no documento raiz (ou seja, public_html)
  3. Remova a pasta pública
  4. Abra seu bootstrap / paths.php e depois mude 'public' => __DIR__.'/../public', para 'public' => __DIR__.'/..',

  5. e finalmente no index.php,

    mudança

 require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/start.php'; 

para dentro

 require __DIR__.'/bootstrap/autoload.php'; $app = require_once __DIR__.'/bootstrap/start.php'; 

Seu aplicativo Laravel deve funcionar agora.

Se você está tentando hospedar seu aplicativo Laravel em uma hospedagem compartilhada, isso pode ajudá-lo.

Hospedando o Laravel na hospedagem compartilhada # 1

Hospedando o Laravel na hospedagem compartilhada # 2

Se você quer que o PHP 5.4 adicione esta linha ao seu arquivo .htaccess ou ligue para seu provedor de hospedagem.

AddType application/x-httpd-php54 .php

Todos os seus arquivos do Laravel devem estar em um único local. O Laravel está expondo sua pasta pública ao servidor. Essa pasta representa algum tipo de front-controller para o aplicativo inteiro. Dependendo da configuração do servidor, você precisa apontar o caminho do servidor para essa pasta. Como eu posso ver, há o site www na sua foto. www é o diretório raiz padrão em máquinas Unix / Linux. É melhor dar uma olhada dentro da configuração do seu servidor e procurar a localização do diretório raiz. Como você pode ver, o Laravel já possui um arquivo chamado .htaccess , com alguma configuração pronta do Apache.

Também teve esse problema e descobriu que a maneira mais fácil é apontar seu domínio para a pasta pública e deixar todo o resto do jeito que está.

POR FAVOR, GARANTIR USAR A VERSÃO CORRETA DO PHP. Poupe algum stress 🙂

No Laravel 5.x não há paths.php

então você deve editar public/index.php e alterar essas linhas para pintar em seu diretório de bootstrap :

 require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php'; 

Para mais informações você pode ler este artigo.

    Intereting Posts