Meu site laravel estava funcionando antes, recentemente atualizei para Apache 2.4 e PHP 5.5.7.
Agora estou recebendo uma tela branca em branco quando vou para laravel.mydomain.com, nada nos logs de erros do apache, rotas e etc. deve estar bem como funcionava antes.
.htaccess está carregando, pois recebo 500 quando insiro uma linha inválida em /var/sites/laravel/public/.htaccess.
Aqui está meu .htaccess:
$ cat /var/sites/laravel/public/.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Aqui está minha diretiva de host virtual:
DocumentRoot "/var/sites/laravel/public"
ServerName laravel.mydomain.com
<Directory "/var/sites/laravel/public">
AllowOverride All
allow from all
Options +Indexes
Require all granted
</Directory>
E apachectl -S
$ /usr/local/apache2/bin/apachectl -S
VirtualHost configuration:
*:* is a NameVirtualHost
default server mydomain.com (/usr/local/apache2/conf/extra/httpd-vhosts.conf:25)
port * namevhost mydomain.com (/usr/local/apache2/conf/extra/httpd-vhosts.conf:25)
port * namevhost laravel.mydomain.com (/usr/local/apache2/conf/extra/httpd- vhosts.conf:34)
ServerRoot: "/usr/local/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/usr/local/apache2/logs/error_log"
Mutex rewrite-map: using_defaults
Mutex default: dir="/usr/local/apache2/logs/" mechanism=default
PidFile: "/usr/local/apache2/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="daemon" id=1 not_used
Group: name="daemon" id=1 not_used
Respostas:
Apache
Esta resposta descreve ou ajuda sua situação? A atualização para o Apache 2.4 vem com algumas mudanças na configuração do Apache.
Laravel
Você está verificando os logs do Laravel ou do Apache?
Desde a atualização para o Laravel 4.1, tive "erros" de tela branca (WSOD) quando o aplicativo não pôde gravar no local do log. Eu sempre resolvi isso tornando o diretório app / storage gravável pelo Apache (qualquer grupo gravável em "www-data", "apache" ou gravável mundialmente - isso depende da configuração do seu servidor.
Usuário do servidor web
Em servidores Ubuntu / Debian, seu PHP pode estar rodando como usuário "www-data". Em servidores CentOS / RedHat / Fedora, seu PHP pode estar rodando como usuário "apache".
Certifique-se de que seus arquivos sejam propriedade do usuário que está executando o PHP:
Laravel 4
Laravel 5+ (incluindo 6)
fonte
Uma atualização da resposta do fideloper para o Laravel 5 e sua nova estrutura de arquivo é:
fonte
Tente isso, na página public / index.php
fonte
As etapas a seguir resolveram o problema da tela branca em meu Laravel 5.
bootstrap/cache
estorage
.env.example
para.env
Isso irá gerar a chave de criptografia e atualizar o valor de
APP_KEY
em.env
arquivoIsso deve resolver o problema.
Se o problema persistir, atualize
config/app.php
com a nova chave gerada a partir do comando artisan key generate acima:fonte
para qualquer um que obtiver uma página em branco, mesmo depois de tornar o armazenamento acessível para exibição de erros, coloque essas duas linhas nas primeiras linhas de public / index.php para ver, pelo menos, o que está acontecendo. para mim, esse erro estava lá: Classe 'PDO' não encontrada em /var/www/***/config/database.php na linha 16
fonte
Quando eu era novo no Linux, geralmente encontrava esse erro no meu projeto Laravel. Erros brancos significam erro, pode haver algum problema de permissão ou erro.
Você só tem que seguir dois passos, e vai funcionar como campeão :)
(1) Dê a permissão. Execute estes comandos do diretório raiz do seu projeto
(2) Se você clonou o projeto ou puxou do github, execute
(3) Configure seu arquivo .env adequadamente e seu projeto funcionará.
fonte
Eu estava lutando com um problema semelhante em um servidor CentOS. Usar php artisan serv e acessá-lo através da porta 8000 na máquina local funcionou bem, mas não consegui fazer com que minhas máquinas remotas carregassem uma determinada visualização. Eu poderia retornar strings sem problemas e algumas visualizações estavam sendo carregadas. Persegui minhas permissões por um tempo antes de finalmente perceber que era um problema do SELinux. Acabei de definir de obrigatória para permissiva e funcionou. Espero que ajude alguém que possa estar enfrentando o mesmo problema.
fonte
Também tenho mais uma opção de por que pode ocorrer o problema de página em branco. Se você estiver no modo de produção e se armazenou em cache seus arquivos de configuração por php artisan (config: cache), tente excluir o arquivo de cache executando:
ou exclua-o manualmente (bootstrap / cache / config.php)
fonte
Executar este comando resolveu para mim:
Acho que uma página de erro em branco foi de alguma forma armazenada em cache. Tive que limpar os caches.
fonte
No meu caso, instalei
laravel
várias vezes e tenho certeza de que a permissão de gravação da pasta foi concedida corretamente.Como a maioria das respostas acima:
O erro é que minha configuração nginx vem da documentação oficial .
Só modifiquei o nome de domínio após a cópia, então recebi uma página em branco. Tentei reiniciar
nginx
ephp-fpm
, mas não funciona para mim.Finalmente, adicionei esta configuração de linha para resolver o problema.
Espero poder ajudar outras pessoas.
fonte
Enfrentando a tela em branco no Laravel 5.8. Tudo parece bem com a pasta de armazenamento e bootstrap com 777 direitos. Em
Isso mostra que o problema eram os espaços em branco no nome do aplicativo do arquivo .env
fonte
Eu tenho alguns problemas para configurá-lo em uma máquina Vagrant. O que realmente funciona para mim foi executar um:
chmod -R o+w app/storage/
de dentro da máquina Vagrant.
Referência: https://laracasts.com/lessons/vagrant-and-laravel
fonte
Outra coisa que pode fazer com que o WSOD falte a palavra-chave 'return', como em:
return View::make('yourview');
em oposição a
View::make('yourview');
fonte
Às vezes é porque o laravel 5.1 requer PHP> = 5.5.9. Atualizar o php resolverá o problema.
fonte
Estranho para mim, mas no meu caso tive que limpar o cache do laravel para resolver o problema.
fonte
Eu também enfrentei o mesmo problema depois de fazer
composer update
Eu tentei instalar
composer required monolog/monolog
mas não funcionou.Em seguida, removi o diretório / vendor e executei
composer install
e trabalhei normalmente.basicamente, ele deve ter revertido minha versão do monólogo e de outros pacotes estáveis para a anterior. então é melhor não
composer update
o que eu percebi comparando as pastas / vendor e descobri que esses
classes
arquivos/vendor/monolog/monolog/src/Handler
estavam faltando após a atualização do composer.fonte
Pode haver uma série de razões por trás da tela em branco sem erros. Já enfrentei esse problema muitas vezes sempre que quero fazer upload de um projeto laravel em hospedagem compartilhada.
Razão: Versão PHP incorreta
No meu caso, o problema era devido à versão incorreta do php. Eu tinha a versão do php 7.1 no computador local onde, como no cpanel de hospedagem compartilhada, havia a versão do php 5.6. Mudar a versão 5.6 para 7.1 funcionou para mim.
Você pode alterar a versão do php no cpanel do gerenciador multiphp disponível na página inicial do cpanel.
fonte
Às vezes, em route.php, você pode ter
escrito antes
Pode ser um método vazio
Controller::show()
quando você começa a desenvolver seu controlador do zero. Neste caso, você obterá uma página em branco vazia ao solicitar o/add
url. Isso acontece porque a solicitação foi tratada por/{id}
rota e seu método não retorna nada.Apenas tente colocar a
/add
rota antes/{id}
fonte
Outro problema com o mesmo comportamento é o uso do Laravel 3 com PHP 5.5.x. Você tem que mudar o nome de alguma função laravel "yield () porque é uma palavra reservada no php 5.5
fonte
O motivo pode ser
Middleware
se você esquecer de colocar o código a seguir no final dahandle
funçãofonte
Eu também estava recebendo o mesmo erro quando iniciei o laravel + Ubuntu 14.04 pela primeira vez. Apenas cliquei com o botão direito do mouse na pasta de bootstrap e armazenamento >>> propriedades >>> permissão >> Outros acessem >>> altere para "Criar e excluir arquivos" Alterar permissão para arquivos incluídos
Obrigado
fonte
Peguei isso nos fóruns do Laravel, mas se você atualizou recentemente as versões do Laravel E as versões do PHP E está executando o nginx, certifique-se de ter alterado o arquivo de configuração do nginx para refletir a nova versão do PHP. Por exemplo:
No arquivo de configuração do seu site nginx (aqui: / etc / nginx / sites-available), mude
fastcgi_pass unix:/var/run/php5-fpm.sock;
para
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
fonte
Eu tenho o mesmo problema. Já mudei a pasta chmod para a pasta Armazenamento. preencha as configurações do banco de dados em .env, mas não corrigiu o problema. Usei o Laravel 5.5 e usei o PHP 5.6, para consertar fui ao (cpanel-> PHP Selector) e mudei para o PHP 7.1 E o problema está resolvido.
fonte
Em casos normais, os erros devem ser registrados, a menos que
O script não pode gravar no arquivo de log
Ou ocorreu um erro em logs de servidor de aplicativos de verificação de nível superior, como Appache || Nginx
Ou são os limites de recursos como as configurações do PHP ini
Ou limite do sistema operacional e assim por diante
fonte
Além de problemas de permissão no armazenamento e pasta de cache e problemas de versão php, pode haver outros motivos para exibir a página em branco sem qualquer mensagem de erro.
Por exemplo, recebi uma mensagem de erro de redeclaração sem nenhum log e com página em branco em branco. Houve um conflito entre minha função de auxiliar e uma função de fornecedor.
Eu sugiro como ponto de partida ,
artisan
comandos de execução . por exemplo:Se houver um problema, será solicitado no terminal e você tem uma pista e pode procurar a solução no Google.
fonte
A tela em branco também acontece quando seu aplicativo Laravel tenta exibir muitas informações e os limites do PHP aparecem (por exemplo, exibindo dezenas de milhares de registros de banco de dados em uma única página). A pior parte é que você não verá nenhum erro nos logs do Laravel. Você provavelmente não verá erros nos logs do PHP FPM também. Você pode encontrar erros nos logs do seu servidor http, por exemplo, nginx lança algo como
FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of XXX bytes exhausted
.Dica curta: adicione
->limit(1000)
onde1000
está o seu limite, no seu objeto de consulta.fonte
Eu encontrei esse problema quando tentei rodar um aplicativo Laravel 5.8 no meu servidor, fazendo o upload do desenvolvimento local usando o Vagrant Homestead. Depois de um tempo, descobri que o subdomínio dev no servidor ativo que estava executando estava de alguma forma configurado para PHP 5.6.
cPanel> Gerenciador MultiPHP> Definir como PHP 7.2
consertou isso para mim. Espero que isso possa ajudar alguém.
fonte
use este .htaccess para resolver
fonte
no meu caso, o problema da TELA BRANCA EM BRANCO era tão simples quanto um erro de digitação ou caractere incorreto no arquivo env. Eu estava implementando o socialite, então quando estava configurando as credenciais .env para o Google+ assim:
Mas, o arquivo .env não pode usar o sinal '+', então tenho que fazer esta correção:
Espero que isso ajude você a encontrar um erro idiota ...
fonte
No meu caso, reiniciar o apache corrigiu o problema. para Ubuntu / Debian:
fonte