programing

라라벨 블랭크화이트스크린

copyandpastes 2022. 10. 2. 22:08
반응형

라라벨 블랭크화이트스크린

이전에 Laravel 사이트가 작동했었는데, 최근에 Apache 2.4와 PHP 5.5.7로 업그레이드했습니다.

제가 '백지화면'으로 laravel.mydomain.exampleApache 에러 로그, 루트등의 어느 것도, 종래와 같이 정상적으로 동작하지 않습니다.

.htaccess 비활성 됩니다./var/sites/laravel/public/.htaccess.

있습니다..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]

가상 호스트 디렉티브는 다음과 같습니다.

DocumentRoot "/var/sites/laravel/public"
ServerName laravel.mydomain.example
<Directory "/var/sites/laravel/public">
    AllowOverride All
    allow from all
    Options +Indexes
    Require all granted
</Directory>

그리고 apachectl -S

$ /usr/local/apache2/bin/apachectl -S
VirtualHost configuration:
*:*                    is a NameVirtualHost
     default server mydomain.example (/usr/local/apache2/conf/extra/httpd-vhosts.conf:25)
     port * namevhost mydomain.example (/usr/local/apache2/conf/extra/httpd-vhosts.conf:25)
     port * namevhost laravel.mydomain.example (/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

아파치

답변이 당신의 상황을 설명하거나 도움이 됩니까?Apache 2.4로 업그레이드하려면 Apache 구성이 일부 변경됩니다.

라라벨

라라벨의 로그나 아파치의 로그 중 어느 쪽을 확인하나요?

Larabel 4.1로 업그레이드한 이후 응용 프로그램이 로그 위치에 쓸 수 없는 경우 WSOD(화이트 스크린 오류)가 발생하였습니다.Apache(서버 설정에 따라 "ww-data", "apache" 또는 "world-writable" 중 하나)에 의해 앱/스토리지 디렉토리를 쓰기 가능하게 함으로써 항상 이 문제를 해결했습니다.

웹 서버 사용자

Ubuntu/Debian 서버에서 PHP가 사용자 "www-data"로 실행되고 있을 수 있습니다.CentOS/RedHat/Fedora 서버에서는 PHP가 사용자 "apache"로 실행 중일 수 있습니다.

파일이 PHP를 실행하는 사용자가 소유하고 있는지 확인합니다.

# Debian/Ubuntu
$ sudo chown -R www-data /path/to/laravel/files

# CentOS/RedHat/Fedora
$ sudo chown -R apache /path/to/laravel/files

사용자 www-data 또는 apache로 실행되고 있지 않을 수 있습니다.호스팅 및 설정에 따라 달라집니다.

라라벨 4

# Group Writable (Group, User Writable)
$ sudo chmod -R gu+w app/storage

# World-writable (Group, User, Other Writable)
$ sudo chmod -R guo+w app/storage

Larabel 5+(6개 포함)

# Group Writable (Group, User Writable)
$ sudo chmod -R gu+w storage

# World-writable (Group, User, Other Writable)
$ sudo chmod -R guo+w storage

#####
# The bootstrap/cache directory may need writing to also
##

# Group Writable (Group, User Writable)
$ sudo chmod -R gu+w bootstrap/cache

# World-writable (Group, User, Other Writable)
$ sudo chmod -R guo+w bootstrap/cache

Larabel 5 및 새로운 파일 구조에 대한 fideloper의 답변 업데이트는 다음과 같습니다.

$ sudo chmod -R o+w storage/

public/index.php 페이지에서 시험해 보세요.

error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set("display_errors", 1);

다음 절차로 Larabel 5의 빈 화면 문제가 해결되었습니다.

  • Larabel 루트 폴더로 이동
  • 권한을 부여하다bootstrap/cache ★★★★★★★★★★★★★★★★★」storage

sudo chmod - R 777 부트스트랩/캐시 스토리지

  • " " " " ".env.example로로 합니다..env
  • Larabel root에서 terminal/command-prompt에서 다음 명령을 사용하여 응용 프로그램 키를 생성합니다.

php 장인 키: 생성

암호 키의 값이 됩니다.APP_KEY.env

이것으로 문제가 해결될 겁니다.

문제가 해결되지 않으면 하십시오.config/app.php위의 장인 키 생성 명령에서 생성된 새 키를 사용합니다.

'key' => env('APP_KEY', 'SomeRandomString'),

로.

'key' => env('APP_KEY', 'KEY_GENERATED_FROM_ABOVE_COMMAND'),

에러를 표시하기 위해서 스토리지에 액세스 할 수 있도록 한 후에도 공백 페이지가 표시되는 경우는, 이 2 행을 public/index.flash 의 선두 행에 입력해, 최소한 무슨 일이 일어나고 있는지를 확인해 주세요.이 에러는, 클래스 「PDO」를 /var/www/***/config/database에서 찾을 수 없습니다.16행의 php

error_reporting(E_ALL);
ini_set('display_errors', 1);

공백 페이지의 문제가 발생할 수 있는 다른 옵션도 있습니다.실제 가동 모드에 있고 php 장인(config:cache)에 의해 설정 파일을 캐시한 경우 다음 실행 중인 캐시 파일을 삭제해 보십시오.

php artisan config:clear

또는 수동으로 삭제합니다(bootstrap/cache/config.disples).

다음 명령을 실행하면 해결되었습니다.

php artisan view:clear

빈 오류 페이지가 캐시된 것 같습니다.캐시를 비워야 했어

Linux를 처음 접했을 때.저는 보통 이 오류를 라라벨 프로젝트에서 발견했습니다.흰색 오류는 오류를 의미하며, 일부 권한 문제 또는 오류가 있을 수 있습니다.

두 단계를 따르기만 하면 챔피언처럼 일할 수 있습니다.

(1) 허가한다.프로젝트의 루트 디렉터리에서 다음 명령 실행

(a) sudo chmod 777 -R storage
(b) sudo chmod bootstrap/cache

(2) 프로젝트를 복제하거나 github에서 꺼낸 경우 실행

composer install

(3) .env 파일을 올바르게 설정해 두면, 프로젝트가 동작합니다.

Larabel 5.8의 빈 화면과 마주보고 있습니다.777의 권한이 부여된 스토리지와 부트스트랩 폴더는 모두 정상인 것 같습니다.에서

php artisan cache:clear

.env 파일의 App Name공백이 있는 것이 문제임을 나타냅니다.

일반적으로 Laravel이 화이트 페이지를 오류 없이 보여 주는 경우, 먼저,.evn★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

는 .env 파일의 .APP_NAME

그냥 교체했어

APP_NAME=My Project Name 

로.

APP_NAME="My Project Name"

센트에서 비슷한 문제로 고민하고 있었습니다.OS 서버php 장인 serv를 사용하여 로컬 머신의 포트 8000을 통해 접속하면 정상적으로 동작했지만 리모트 머신이 특정 뷰를 로드할 수 없었습니다.현을 돌려줄 수 있었고, 몇 개의 뷰가 로드되고 있었습니다.SELinux의 문제라는 것을 깨닫기 전에 한동안 허가에 쫓기곤 했어요.그냥 강제에서 관용으로 설정했는데 효과가 있었어요같은 문제를 겪고 있는 다른 사람에게 도움이 되길 바랍니다.

setenforce permissive

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.laravel폴더 쓰기 권한이 올바르게 부여되었다고 확신합니다.

위의 대부분의 답변과 마찬가지로:

sudo chmod 777 -R storage bootstrap

이 오류는 제 nginx 설정이 공식 문서에서 나온 것입니다.

복사 후 도메인 이름만 수정하면 공백 페이지가 나타납니다..nginx ★★★★★★★★★★★★★★★★★」php-fpm하지만 내 일은 아니야

마지막으로 이 회선 설정을 추가하여 문제를 해결했습니다.

location ~ \.php$ {

    # same as documentation ...

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

내가 다른 사람들을 도울 수 있었으면 좋겠어.

.env 파일의 App Name에 공백이 있는 것이 문제임을 나타냅니다.

나는 이 문제를 푸는 데 거의 2시간이 걸렸다.답변에서는 다음과 같은 이유를 찾을 수 있습니다.

  • .env 파일에서 공간을 제거합니다.
  • .htaccess를 다시 씁니다.
  • chmod 777 스토리지 / 부트스트랩 폴더
  • 하다.vendor 및 run을 실행합니다.composer install 하다
  • apache/nginx 서버 재시작
  • php artisan view:clear
  • php artisan cache:clear
  • php artisan route:clear

다 해봤는데 아직도 안 되네.

80apache/nginx가 .Web 팩을 인스톨 했을 때에, Skype 또는 시스템 서비스에 의한 파손으로 인해, Web 팩이 변경되는 경우가 있습니다. "에 하는 대신 " "에 접속합니다.yoursite.testlocalhost , 을해야 합니다.yoursite.test:8585 apache/nginx / 85 85 。

Vagrant 머신에서 설정하는 데 몇 가지 문제가 있습니다.나에게 정말 효과가 있는 것은, 다음과 같은 실행이었습니다.

chmod -R o+w app/storage/

바그랑트 기계 안에서요

참고 자료: https://laracasts.com/lessons/vagrant-and-laravel

WSOD를 일으킬 수 있는 또 다른 원인은 다음과 같이 'return' 키워드가 누락되어 있다는 것입니다.

return View::make('yourview');

와는 반대로

View::make('yourview');

또한 Laravel 앱이 너무 많은 정보를 표시하려고 하고 PHP가 킥인을 제한할 때(예를 들어 한 페이지에 수만 개의 데이터베이스 레코드를 표시) 빈 화면이 발생합니다.가장 나쁜 점은 라라벨 로그에서 오류를 볼 수 없다는 것입니다.PHP FPM은 PHP FPM을 사용합니다.는 http 서버 "nginx"라는 오류가 있을 수 를 들어 "nginx"는 "http"라는 http "nginx"를 .FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of XXX bytes exhausted.

add () : 」->limit(1000)서 ''는1000쿼리 오브젝트에 대한 제한입니다.

때때로 larabel 5.1에는 PHP > = 5.5.9가 필요합니다.php를 업데이트하면 문제가 해결됩니다.

나한텐 이상하지만, 내 경우엔 문제를 해결하기 위해 라라벨의 캐시를 비워야 했어.

도 같은 요.composer update

★★★★★★★★★★★★★★★★★★★★★★를 인스톨 해 보았다.composer required monolog/monolog효과가 없었습니다.

다음 하고 /vendor를 실행했습니다.composer install이치노

하지 않는 composer update

의 /, 그 /vendor 폴더를 했습니다.classes「」의 /vendor/monolog/monolog/src/Handler이치노

.htaccess를 사용하여 해결합니다.

Options +ExecCGI
addhandler x-httpd-php5-cgi .php
Options -MultiViews
DirectoryIndex index.php
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteBase /
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^ index.php [L]
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

공백 화면에는 오류가 없는 여러 가지 이유가 있을 수 있습니다.공유 호스팅에서 대규모 프로젝트를 업로드하고 싶을 때마다 여러 번 이 문제에 직면했습니다.

이유: 잘못된 PHP 버전

제 경우 php 버전이 잘못되어 문제가 발생하였습니다.공유 호스팅 cpanel과 같이 php 5.6 버전이 있는 로컬 컴퓨터에서 php 7.1 버전을 가지고 있었습니다.5.6에서 7.1로 버전 전환이 가능했습니다.

cpanel 홈페이지에서 사용 가능한 multiphp manager에서 cpanel의 php 버전을 변경할 수 있습니다.

가끔 가는 길에.php가 있을 수 있습니다.

Route::get('/{id}', 'Controller@show'..

전에 쓴

Route::get('/add', 'Controller@add'..

빈 메서드일 수 있습니다.Controller::show()컨트롤러를 처음부터 개발하기 시작할 때.이 경우 요청 시 빈 페이지가 나타납니다./addurl.이 url에 합니다. 이 요청은 에 의해 처리되었기 때문에 발생합니다./{id}이 메서드는 아무것도 반환하지 않습니다.

/add을 가다/{id}

.env 파일에 오타가 없는지 확인합니다.이것이 나와 함께 빈 화면을 만든 원인이었다.

화면에 기록되는 로그 파일 또는 nginx 로그는 없습니다.그냥 빈 화면이에요.

같은 동작의 다른 문제는 Laravel 3을 PHP 5.5.x와 함께 사용하는 것입니다. 일부 laravel 함수의 이름은 php 5.5에서 예약된 단어이기 때문에 "yield()"를 변경해야 합니다.

로는 '다'를 들 수 있다.Middleware 경우handle

return $next($request);

larabel + Ubuntu 14.04에서 처음 시작할 때도 같은 오류가 발생하였습니다.부트스트랩과 스토리지 폴더를 우클릭하면 됩니다>> 속성 >>> 허가 >>> 기타 액세스 >>> 동봉된 파일의 권한을 변경합니다.

감사해요.

Laravel 포럼에서 입수했습니다만, 최근 Laravel 버전과 PHP 버전을 업그레이드하고 nginx를 실행하고 있는 경우는, 새로운 PHP 버전을 반영하도록 nginx 설정 파일을 변경해 주세요.예:

nginx 사이트 컨피규레이션파일(여기서 /etc/nginx/sites-available)에서 변경을 실시합니다.

fastcgi_pass unix:/var/run/php5-fpm.sock;

로.

fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;

저도 같은 문제가 있어요.chmod 폴더는 이미 Storage 폴더용으로 변경했습니다..env에서 데이터베이스 설정을 채웠지만 문제는 해결되지 않았습니다.Laravel 5.5를 사용하고 PHP 5.6을 사용하여 수정했습니다(cpanel-> PHP Selector). PHP 7.1로 변경했습니다.이 문제는 해결되었습니다.

통상적인 경우는, 다음의 경우를 제외하고, 에러가 로그에 기록됩니다.

스크립트가 로그 파일에 쓸 수 없습니다.

  • 진로를 확인하다
  • 권한

또는 Appache | Nginx와 같은 상위 레벨의 앱 서버 로그에서 오류가 발생했습니다.

또는 PHP ini 설정처럼 리소스 제한도 있습니다.

memory_limit
max_input_time
max_execution_time

또는 OS 제한 등

언급URL : https://stackoverflow.com/questions/20678360/laravel-blank-white-screen

반응형