Publicar uma aplicação Laravel em um subdomínio com o LWS Panel

Procédure

No LWS Panel, a pasta de um subdomínio é imposta: /htdocs/app.exemple.com/ para app.exemple.com, e ela não pode apontar para a pasta public/ do Laravel. Para publicar a aplicação Laravel que você desenvolveu, coloque todo o projeto nessa pasta, adicione na sua raiz o arquivo .htaccess que envia os visitantes para public/, instale as dependências com o Composer no Terminal e, em seguida, ajuste o arquivo .env. Este guia detalha essas etapas e a busca pela causa de um erro 500.

Publicar sua aplicação no subdomínio

  1. Crie o subdomínio

    No painel da sua hospedagem, na seção «Gerenciamento do domínio», abra «Subdomínios». Em «Subdomínio a adicionar», digite apenas a parte que precede o domínio (por exemplo app) e depois clique em «+ adicionar». O certificado SSL do subdomínio é gerado em cerca de 3 minutos: uma contagem regressiva «Tempo restante» é exibida.

    A coluna «Diretório» indica a pasta do subdomínio: app.exemple.com, ou seja, /htdocs/app.exemple.com/. Nenhum campo permite escolher outra pasta. O detalhe desta tela está na ajuda Como criar subdomínios no LWS Panel?

    Publicar uma aplicação Laravel em um subdomínio com o LWS Panel

  2. Envie o projeto Laravel para a pasta do subdomínio

    Coloque o projeto completo (pastas app, bootstrap, config, public, routes, storage, arquivos artisan e composer.json…) diretamente em /htdocs/app.exemple.com/. O arquivo index.php do Laravel deve estar no local /htdocs/app.exemple.com/public/index.php.

    Com o Gerenciador de arquivos (seção «Arquivos»), envie um arquivo .zip do projeto por «Carregar» (até 1 125 Mo por arquivo), selecione-o e depois clique em «Extrair». Para um número muito grande de arquivos, um software FTP é mais adequado. Se o seu projeto estiver no Git, você também pode cloná-lo a partir do Terminal: veja Como usar o GIT com o terminal Web na minha hospedagem compartilhada LWS?

  3. Envie os visitantes para a pasta public/

    Como a pasta do subdomínio não pode apontar para public/, é um arquivo .htaccess colocado na raiz de /htdocs/app.exemple.com/ (ao lado da pasta public, não dentro dela) que redireciona os visitantes para public/. Seu conteúdo é fornecido na ajuda Instalar Laravel em uma hospedagem compartilhada LWS, parte «Como configurar corretamente seu site Laravel?».

    No Gerenciador de arquivos, abra a pasta do subdomínio, clique em «+ Arquivo» e nomeie-o .htaccess. Em seguida, clique no nome dele para abri-lo no «Editor de código», cole o conteúdo e depois clique em «Salvar alterações».

    Não modifique o arquivo .htaccess que já se encontra em public/: ele é fornecido com o Laravel e envia as requisições para index.php.

  4. Escolha a versão do PHP do subdomínio

    Na seção «Banco de dados & PHP», abra «Configuração php». Na aba «Instalação e seleção de PHP», verifique se a versão desejada está marcada (por exemplo, «PHP 8.5 + Ioncube (recommended)»). Na aba «Configuração PHP por sites», escolha então essa versão na linha do seu subdomínio e clique em «Salvar».

    Publicar uma aplicação Laravel em um subdomínio com o LWS Panel

    Se uma faixa indicar «Atenção, você declarou um/uns arquivo(s) .htaccess, o que se sobrepõe à versão PHP exibida na sua área de cliente», a versão de PHP dessa pasta vem de uma linha do arquivo .htaccess cujo caminho é exibido: é essa linha que deve ser modificada. Mais detalhes em Como configurar o PHP na minha hospedagem?

  5. Instale as dependências com o Composer

    Abra «Softwares» e depois «Terminal». O console inicia na pasta ~/htdocs. Vá para a pasta do subdomínio, exiba a versão do PHP do console e depois instale as dependências do projeto:

    ⌨ No servidor
    cd app.exemple.com
    php -v
    composer install

    A versão exibida por php -v deve ser compatível com a sua versão do Laravel. Caso contrário, altere a versão do PHP do Terminal seguindo Como alterar a versão do PHP do Terminal Web LWS Panel.

  6. Ajuste o arquivo .env

    O arquivo .env fica na raiz do projeto (/htdocs/app.exemple.com/.env), não em public/. Abra-o no Gerenciador de arquivos e ajuste ao menos estas linhas com os valores do seu site:

    📄 /htdocs/app.exemple.com/.env
    APP_DEBUG=false
    APP_URL=https://app.exemple.com
    DB_CONNECTION=mysql
    DB_HOST=203.0.113.10
    DB_DATABASE=nom_de_la_base
    DB_USERNAME=utilisateur_de_la_base
    DB_PASSWORD=mot_de_passe_de_la_base

    Os valores do banco são vistos em «Banco de dados & PHP» e depois em «MySql & Phpmyadmin», na linha do banco: coluna «Banco» para DB_DATABASE, «Usuário» para DB_USERNAME e «Ip do servidor» para DB_HOST (um endereço IP, não localhost). A senha não é exibida: ela foi enviada por e-mail na criação do banco. Se ela foi perdida, altere-a pelo menu «⋮» e depois «Alterar senha».

    No arquivo .env de um projeto Laravel 13 novo, a linha DB_CONNECTION vale sqlite e as outras linhas DB_ começam com um #: remova esses # e indique mysql. Para o envio de e-mails, as linhas MAIL_ são explicadas na ajuda Instalar Laravel em uma hospedagem compartilhada LWS.

    Se a linha APP_KEY= estiver vazia, gere a chave da aplicação no Terminal, sempre na pasta do subdomínio. Não a regenere se ela já estiver preenchida.

    ⌨ No servidor
    php artisan key:generate

    Em seguida, crie as tabelas do banco e depois coloque a configuração em cache:

    ⌨ No servidor
    php artisan migrate
    php artisan config:cache

    Após cada modificação do arquivo .env, execute novamente php artisan config:cache: uma vez em cache, o Laravel não relê mais o arquivo .env.

Verificar se tudo funciona

Abra https://app.exemple.com no seu navegador: a página inicial da sua aplicação é exibida, com o cadeado do certificado SSL. Navegue por algumas páginas e verifique se a formatação e as imagens são exibidas.

Verifique também se os arquivos do projeto não podem ser lidos pela Internet: o endereço https://app.exemple.com/composer.json deve exibir uma página de erro da sua aplicação, e não o conteúdo do arquivo. Se o conteúdo for exibido, o arquivo .htaccess da etapa 3 está ausente ou mal posicionado: corrija-o imediatamente.

Minha aplicação exibe um erro 500

Siga os pontos na ordem e pare assim que o erro desaparecer.

Leia o erro exato nos registros do LWS Panel

Na seção «Banco de dados & PHP», clique em «Logs Apache PHP ModSecurity»: a ferramenta LWS Log Analyzer é aberta. Abra a aba «Erros PHP», escolha o seu subdomínio na lista de domínios e o período, depois o filtro «Fatal». As colunas «ARQUIVO PHP», «LINHA» e «MENSAGEM» indicam a causa, e o botão «✨ Diagnóstico IA» a explica em linguagem simples.

Publicar uma aplicação Laravel em um subdomínio com o LWS Panel

Leia o log do Laravel

O Laravel escreve seus próprios erros no arquivo storage/logs/laravel.log do projeto. Abra-o no Gerenciador de arquivos e veja as últimas linhas, no horário do erro. Se não houver nada nesse horário, confie na aba «Erros PHP» do ponto anterior.

Corrija as causas mais comuns

  • Chave da aplicação ausente (linha APP_KEY= vazia): execute php artisan key:generate no Terminal, na pasta do subdomínio.
  • Pastas storage e bootstrap/cache sem permissão de escrita: o Laravel precisa conseguir gravar nelas. Verifique as permissões com o botão «Permissões» do Gerenciador de arquivos.
  • Pasta vendor ausente: execute composer install na pasta do subdomínio (etapa 5).
  • Versão do PHP antiga demais para a sua versão do Laravel: altere-a (etapa 4).
  • Erro apareceu logo após adicionar ou modificar o arquivo .htaccess: restaure a cópia que você guardou e compare seu arquivo com o da ajuda Instalar Laravel em uma hospedagem compartilhada LWS.
  • Conexão com o banco recusada: compare DB_HOST, DB_DATABASE, DB_USERNAME e DB_PASSWORD com a linha do banco em «MySql & Phpmyadmin» e depois execute novamente php artisan config:cache.

Para outras causas de erro 500, consulte Como corrigir um erro 500 no seu site com o LWS Panel.

Perguntas frequentes

Posso fazer meu subdomínio apontar diretamente para a pasta public/?

Não. No LWS Panel, a pasta de um subdomínio leva seu nome completo (/htdocs/app.exemple.com/) e a tela «Subdomínios» não permite escolher outra. É por isso que o arquivo .htaccess da etapa 3 envia os visitantes para public/.

O meu plano permite usar Composer e php artisan?

Esses comandos são executados no Terminal do LWS Panel («Softwares» e depois «Terminal»), ou em SSH a partir do seu computador, a partir do plano Starter. Se o Terminal exibir «Para beneficiar desta ferramenta é necessário mudar para um plano superior», ele não está incluído no seu plano. O plano Domínio não tem nem PHP nem banco de dados: o Laravel não funciona nele.

Minhas alterações no arquivo .env não estão sendo levadas em conta

A configuração está em cache: execute novamente php artisan config:cache na pasta do subdomínio, ou limpe esse cache com php artisan config:clear.

Como atualizar minha aplicação a partir do Git?

Recupere as modificações pelo Terminal, como explicado em Como usar o GIT com o terminal Web na minha hospedagem compartilhada LWS?, e depois execute novamente composer install, php artisan migrate e php artisan config:cache na pasta do subdomínio.

Artigos relacionados

Links úteis

help.lws.net/a/7993
Este artigo foi útil?

Sim

Não

Lido 2 vezes

Obrigado! Não hesite em colocar questões sobre a nossa documentação se pretender mais informações e ajudar-nos a melhorá-la.

Artigos semelhantes

Uma pergunta sobre este artigo?

Coloque-a à equipa LWS e à comunidade. A resposta é publicada após moderação.

Fazer uma pergunta à equipa do LWS e à sua comunidade

RGPD: Responsável: LWS-Ligne Web Services. Finalidade: moderação e publicação pública da sua pergunta, eventual notificação de uma resposta. Base legal: consentimento (art. 6.º, n.º 1, al. a) RGPD). Conservação dos e-mails: 90 dias após a notificação, 12 meses no máximo sem resposta. Para exercer os seus direitos, consulte a secção RGPD das nossas condições gerais.