[php] Laravel 빈 흰색 화면

내 laravel 사이트는 이전에 작동했지만 최근에 Apache 2.4 및 PHP 5.5.7로 업그레이드했습니다.

이제 laravel.mydomain.com으로 이동할 때 흰색 빈 화면이 나타납니다. 아파치 오류 로그, 경로 등의 내용은 이전처럼 정상이어야합니다.

.htaccess가 /var/sites/laravel/public/.htaccess에 잘못된 줄을 삽입 할 때 500을 받으면서로드됩니다.

내 .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.com
<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.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



답변

Apache

이 답변이 귀하의 상황을 설명하거나 도움 됩니까 ? Apache 2.4로 업그레이드하면 Apache 구성이 약간 변경됩니다.

라 라벨

Laravel의 로그 또는 Apache의 로그를 확인하고 있습니까?

Laravel 4.1로 업그레이드 한 이후로 애플리케이션이 로그 위치에 쓸 수 없을 때 흰색 화면 “오류”(WSOD)가 발생했습니다. 나는 항상 아파치 ( “www-data”, “apache”또는 세계에서 쓸 수있는 그룹 중 하나에 쓸 수있는 앱 / 스토리지 디렉토리를 서버 설정에 따라)로 만들어서 해결했다.

웹 서버 사용자

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

Laravel 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


답변

Laravel 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);


답변

다음 단계는 Laravel 5에서 빈 흰색 화면 문제를 해결했습니다.

  • Laravel 루트 폴더로 이동하십시오.
  • bootstrap/cachestorage디렉토리에 대한 쓰기 권한 부여

sudo chmod -R 777 부트 스트랩 / 캐시 저장소

  • 이름 바꾸기 .env.example.env
  • Laravel 루트의 터미널 / 명령 프롬프트에서 다음 명령으로 애플리케이션 키를 생성합니다.

PHP 장인 키 : 생성

그러면 암호화 키가 생성 APP_KEY되고 .env파일 의 값이 업데이트 됩니다.

이렇게하면 문제가 해결됩니다.

문제가 계속 config/app.php되면 위의 artisan key generate 명령에서 생성 된 새 키로 업데이트 하십시오.

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

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


답변

오류를 표시하기 위해 저장소에 액세스 할 수 있도록 한 후에도 빈 페이지가 표시되는 사람은이 두 줄을 public / index.php의 첫 번째 줄에 넣어 적어도 무슨 일이 일어나고 있는지 확인하십시오. 나를 위해이 오류가있었습니다 : 16 줄의 /var/www/***/config/database.php에서 클래스 ‘PDO’를 찾을 수 없습니다.

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


답변

Linux를 처음 사용했을 때 일반적으로 Laravel Project에서이 오류를 발견했습니다. 흰색 오류는 오류를 의미하며 일부 권한 문제 또는 오류가있을 수 있습니다.

두 단계 만 수행하면 챔피언처럼 작동합니다. 🙂

(1) 허가를주십시오. 프로젝트의 루트 디렉토리에서 다음 명령을 실행하십시오.

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

(2) 프로젝트를 복제했거나 github에서 가져온 경우 다음을 실행하십시오.

composer install

(3) .env 파일을 올바르게 구성하면 프로젝트가 작동합니다.


답변

CentOS 서버에서 비슷한 문제로 고생했습니다. php artisan serv를 사용하고 로컬 컴퓨터에서 포트 8000을 통해 액세스하면 제대로 작동했지만 원격 컴퓨터에서 특정보기를로드하지 못했습니다. 문자열을 잘 반환 할 수 있었고 일부 뷰가로드되었습니다. 마침내 SELinux 문제라는 것을 깨닫기 전에 잠시 동안 권한에 대한 꼬리를 쫓았습니다. 나는 그것을 강제에서 허용으로 설정하고 작동했습니다. 같은 문제가 발생할 수있는 다른 사람에게 도움이되기를 바랍니다.

setenforce permissive