이전에 Laravel 사이트가 작동했었는데, 최근에 Apache 2.4와 PHP 5.5.7로 업그레이드했습니다.
이제 다음 작업 시 흰색 공백 화면이 나타납니다.laravel.mydomain.example
Apache 에러 로그, 루트등의 어느 것도, 종래와 같이 정상적으로 동작하지 않습니다.
.htaccess
에 비활성 행을 삽입하면 500이 표시되므로 로딩 중입니다./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);