Larabel 5 show ErrorException file_put_contents가 스트림을 열지 못했습니다.해당 파일 또는 디렉터리가 없습니다.
저는 Larabel 5에 대한 프로젝트가 있고 사무실과 집에서 함께 일하고 있습니다.정상적으로 동작하고 있습니다만, 최근에는 자택에서도 동작하지 않게 되었습니다.Larabel이 2개의 Error Exception을 표시하다
file_put_contents(G:\project\storage\framework\views/751d8a0fd8a7d4138c09ceb6a34bb377aa2d6265.php):
failed to open stream: No such file or directory
그리고.
file_put_contents(G:\project\storage\framework/sessions/aIXycR4LIAUBVIqZu0T590paOMIpV8vfZGIroEp0):
failed to open stream: No such file or directory
Google에서 문제 결정을 검색하여 올바른 권한에 대한 정보를 찾고 있습니다.모든 조언은 Linux에 관한 것이지만, 저는 사무실과 집에서도 Windows에서 일하고 있습니다.
애플리케이션 캐시를 클리어하고 캐시를 표시하려고 하면 기술자가 말을 걸어옵니다.그러나 캐시 데이터와 뷰는 스토리지에 있습니다.
어떻게 하면 이 문제를 해결할 수 있을까요?
하는 가장 좋은 은 디렉토리 에 하는 것입니다.laravel/bootstrap/cache
를 삭제합니다.config.php
을 바꿀 수도 .config.php.old
이치노
'실행하다'를 실행해야 .php artisan config:cache
명령어를 사용할 수 있습니다.이 문제에 대한 해결책으로 캐시 파일을 다시 생성하여 구성 로드를 가속화할 것을 권장합니다.
이를 수행하려면 명령줄에서 다음 Artisan 명령을 실행합니다.
php artisan cache:clear
php artisan config:cache
다음 명령을 루트에 추가하여 프로그래밍 방식으로 실행할 수 있습니다.
Route::get('/clear-cache', function() {
$exitCode = Artisan::call('cache:clear');
$exitCode = Artisan::call('config:cache');
return 'DONE'; //Return anything
});
나서 하세요.clear-cache
라우트를 지정합니다.
루트 , 사른른른른른른른른른른른른 in, in in른 in in in in in in in in in in in in in in in in in in in, in in in in in in in after after after after after after after after after in in in에 캐시되어 있습니다./bootstrap/cache
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
사실 저는 프로젝트를 서버에서 로컬로 옮겼을 때 이 문제에 직면했습니다.
에
저장소/저장소
필요한 캐시, 세션, 테스트, 뷰의 4가지 기본 폴더
My case missed sessions는 gitignore로 되어 있을 수 있습니다.
그래서 수동으로 세션 폴더를 만들고 브라우저를 새로 고쳤더니 작동했어요.
따라서 이 문제를 삭제하면 누락된 폴더는 모두 해결될 수 있습니다.
는 이 를 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★storage\framework\sessions
더입니니다다
Apache + WSL (Windows 상)
이것은 바보 같은 실수이고 다른 사람들과는 다른 대답이지만, 그것은 나에게 일어났기 때문에 덧붙인다.
WSL(Windows 상에서 Linux bash)을 사용하여 larabel 어플리케이션을 관리하고 Windows apache를 사용하여 서버를 실행하는 경우 wsl에서 캐싱 명령을 실행하면 세션 및 기타 폴더에 대한 Windows 경로가 아닌 Linux 경로가 저장됩니다.
솔루션
캐쉬 클리어 명령어는 WSL이 아닌 powershell에서 실행하기만 하면 됩니다.
$ php artisan optimize
나한테는 충분했어.
이러한 유형의 문제는 일반적으로 서버를 다른 서버로, 폴더를 다른 폴더로 마이그레이션할 때 발생합니다.Laravel은 캐시와 설정(파일명)을 보관합니다.폴더가 다르면 이 문제가 발생합니다.
솔루션 다음 명령 실행:
php artisan config:cache
https://laravel.com/docs/5.6/configuration#configuration-caching
이러한 오류에 도움이 되는 명령어를 사용해 보십시오.
path\project\스토리지\syslog\syslog...
php artisan view:clear
path\project\스토리지\syslog/syslog...
php artisan config:cache
했습니다./public_html/bootstrap/cache/config.php
뛰었습니다.php artisan config:cache
명령줄 에 만 하면 .laravel/bootstrap/cache
및 삭제 이름 변경)config.php
.
이 문제는 웹 사이트를 로컬 서버에서 라이브 서버로 이동하거나 그 반대로 이동할 때 발생합니다.
에간 to 로 가면 돼요.bootstrap/cache
config.disclete 。
이유는 캐시 또는 권한과 관련이 있습니다.
먼저 디렉토리 larabel/bootstrap/cache로 이동하여 캐시에서 모든 파일을 삭제합니다.
- php 장인 캐시: 클리어
- php 장인 설정: 클리어
- php 장인 설정: 캐시
에러가 아직 발생할 경우권한과 관련이 있을 수 있습니다.아래 명령어를 사용해 봅시다(내 경우 user & group of larabel은 nginx입니다).
sudo chgrp -R nginx storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache
도커 내부에서 라벨을 실행하고 있는 경우는, 그 파일 시스템에 액세스 합니다.
$ docker exec -it name-of-laravel-container /bin/bash
다음으로 larabel projects 루트 디렉토리로 이동합니다.스토리지/프레임워크 폴더 내에 다음 폴더가 있는지 확인합니다.
- 캐시
- 세션
- 테스트
- 뷰
읽기 쉽고 쓰기 가능해야 합니다.
정상적으로 동작하지 않는 경우는, 실가동 환경에서 다음의 조작을 실시해 주세요.
1-
composer install --optimize-autoloader --no-dev
2-
php artisan cache:clear
3-
php artisan config:clear
4-
php artisan view:clear
5-
php artisan config:cache
6-
php artisan route:cache
효과가 있다
「 」의 /bootstrap/cache/config.php
로로 합니다.config.php.old
클리어도
- php 장인 설정: 클리어
- php 장인 캐시: 클리어
- php 장인 설정: 캐시
또, 이상한 이유로, 디렉토리의 소유자의 권한을 변경할 수 없기 때문에, 관리자로서 IDE(Visual Studio Code)를 실행하고, 모든 것이 동작합니다.
내 프로젝트는 다른 디스크의 F:/ 경로에 있습니다.
이 문제의 원인은 localhost의 캐시 파일입니다.따라서 저는 프로젝트의 캐시를 클리어하기 위해 다음과 같이 몇 가지 시도를 했지만 매번 실패하였습니다.
- web.php 파일을 변경하여 cahe 명령어를 클리어하려고 했다(기술자 코드 포함).
- (PUTTY를 통해) SSH에 접속하여 캐시 클리어 시도
- 새 공용 디렉토리를 만드는 동안 하위 도메인에서 프로젝트를 호스트하려고 했습니다.
그래서 저는 위의 단계 하나하나가 실패한 후에 이 문제에 대한 해결책을 찾아냈고, 제게는 완벽하게 작동했습니다.host_route/bootstrap/cache 디렉토리의 cache.php 파일을 삭제했습니다.
당신의 작곡가 파일에 문제가 있는 것 같습니다.다음을 시도해 보십시오.
- composer는 composer.lock에 따라 벤더 패키지를 설치합니다(존재하지 않는 경우 composer.lock을 생성합니다).
Composer 업데이트는 항상 composer.lock을 재생성하고 composer.json을 기반으로 사용 가능한 패키지의 최신 버전을 설치합니다.
작곡가 덤프 자동 로드는 아무것도 다운로드하지 않습니다.프로젝트에 포함해야 하는 모든 클래스 목록만 재생성합니다(autoload_classmap.php).프로젝트 내에 새로운 클래스가 있는 경우에 적합합니다.웹 페이지를 빠르게 로드하려면 composer dump-autoload -o 를 실행하는 것이 이상적입니다.디폴트가 아닌 유일한 이유는 생성에 다소 시간이 걸리기 때문입니다(단, 눈에 띄는 것은 조금뿐입니다).
제 경우 php 장인 명령어로 수정할 수 있는 것은 없었습니다.이 문제는 /storage 폴더에 대한 폴더 권한입니다.이 에러에서는, 그것이 명확하지 않습니다.
저에게 효과가 있었던 솔루션은 관리자 역할을 하는 앱을 제공하는 것이었습니다.
- 온
mac
또는linux
사용하다sudo php artisan serve
- Windows에서 열기 시도
CMD
로서adminstrator
프로젝트 디렉토리로 이동하여php artisan serve
저도 비슷한 문제가 있었어요.gitignore 때문에/storage
첫 번째 시스템의 폴더, 두 번째 시스템의 복제된 저장소 및 larabel은 세션 캐시를 기록하도록 수정되었습니다.
그래서 수동으로 폴더를 만듭니다./storage/sessions
해결책이 될 수 있을 것 같아요
이것은 나에게 마법을 부렸습니다.chmod - Rf 0777 스토리지
저 같은 경우에는APP_DEBUG=false
프로덕션 서버이기 때문에 다시 설정하기로 했습니다.true
그리고 나서 보여줬어Missing BC Math or GMP extension
그게 내가 내 문제를 해결한 방법이야APP_DEBUG=true
모두에게 효과가 없을 수도 있어요
Laravel 8을 사용했는데, 이게 제 해결책입니다.
고토:
스토리지/하드웨어/캐시/데이터
set permission 디렉토리 데이터는 777 입니다.
내용 지우기storage/framework/cache
날 위해 묘기를 부렸지
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
의 이름을 입니다.storage/framework/
로로 합니다.cache1
제를를해해해해해
다음 내용을 삭제하여 해결했습니다.
/laravel/스토리지/장착/장착
그런 다음 모든 보기가 해당 폴더에 다시 작성되었습니다.
내 경우 다음 명령으로 수정되지 않았습니다.
php artisan view:cache
php artisan route:cache
php artisan config:cache
저는 Laravel 8을 사용하고 있는데, 제 경우 허가에 문제가 있었던 것 같습니다.
언급URL : https://stackoverflow.com/questions/46959985/laravel-5-show-errorexception-file-put-contents-failed-to-open-stream-no-such-f
'programing' 카테고리의 다른 글
mysql의 감소 값이지만 음수는 아닙니다. (0) | 2023.02.04 |
---|---|
brew install mysql on macOS (0) | 2023.02.04 |
Java FileReader 인코딩 문제 (0) | 2023.02.04 |
mariadb 서버:mysql.server stop'을 사용하여 서버를 중지할 수 없습니다. (0) | 2023.02.04 |
Python의 stdlib를 사용하여 로컬 IP 주소 찾기 (0) | 2023.02.04 |