AWS에서 Laravel 양식을 보낼 수 없습니다.
EC2
docker-compose up -d
에서 시작하여 웹 사이트를 방문한 후표시되지만 로그인 폼과 로그인 폼을 보내면 이렇게 됩니다.

처리하기가 상당히 힘들기 때문에 기록해야 한다.
환경
Mac OS Catalina 10.15.4
PHP: 7.2.24
Laravel: 5.5.48
Docker: 19.3.6
Docker-compose: 1.16.1
AWS: AMI: Amazon Linux2
EC2: t2.micro(무료 파일)
무슨 뜻이야?
그림 문자의 뜻은 "이 페이지가 이미 기한이 지났으니 업데이트해 주십시오."이다.
이게 나올 때 CSRF 영패가 만료되는 경우가 많다고 합니다.
어?회의가 끝날 때까지 놔두지 않았지만...
시도해 본 일
세션의 유효 시간을 확인합니다.
Laravel
.env
파일에서SESSION_LIFETIME=120
문서 레지스트리에 항목을 추가합니다.(분)session.php
에도 설명이 있고, .env
파일에 대한 설명이 우선인 것 같습니다.하지만 내 상황은 그렇게 내버려두지 않았다.
ssh로 로그인하여 EC2 시간대를 확인합니다.
[ec2-user@ ... ]$ date
2020年 6月 6日 土曜日 xx:xx:xx UTC
그렇구나.UTC죠?그러니까 시간 차이가 나서 세션이 끊겼다는 거야?
참조이 문장 시간대 변경.
[ec2-user@ ... ]$ date
2020年 6月 6日 土曜日 xx:xx:xx JST
JST가 되었습니다.동작을 재확인하다.
...변하지 않다.
컨테이너 안에서도 시간대를 확인해 보세요.
$ docker exec -it [コンテナ名] bash
/var/www# date
Sat Jun 6 xx:xx:xx UTC 2020
아이고, UTC네.그게 이유인가요?이 문장
참고로
docker-compose.yml
내력 기술로 시간대에 비틀어 넣으세요.docker-compose.yml
...
environment:
TZ: 'Asia/Tokyo'
...
다시 확인해 볼게요./var/www# date
Sat Jun 6 xx:xx:xx JST 2020
변했네.이렇게 해도 돼요?안돼.
CSRF 토큰에 대한 설명이 누락되었는지 확인합니다.
이거 패턴으로 많이 나온 것 같은데.표에 이 기술 누락이 있는지 확인하세요.
Laravel 5.5 以前
{{ csrf_field() }}
Laravel 5.6 から
@csrf
작업 공간의 가장자리에 있다.잘 썼어요.스스로 할 수 없다.하지만 그것도 이유가 아니다.
세션 드라이버를 쿠키로 설정하십시오.
“The page has expired due to inactivity” - Laravel 5.5
stackoverflow에 이런 보도가 있습니다.
여기 댓글에 의하면.
"세션 드라이버를 파일로 설정하면 storage_path 파티션에 표시되는 경우가 있습니다."
그런 것 같습니다.
세션 드라이버
세션 드라이버는 각 요청된 세션 데이터를 어디에 저장할지 결정합니다.
예.
.env
SESSION_DRIVER=file
권한을 변경했으면 좋겠다고 생각했는데 기타 문장 많은 분들이 말씀하셨잖아요. 확실히 그렇게 생각해요. 참고하면서 공식 일본어 번역 페이지SESSION_DRIVER=cookie
에서 설명한 대로 해당 매개변수의 값을 수정합니다.이렇게 되면 드디어 움직인다.
그러나 현지에서 오류가 발생하지 않았습니다. 왜요?
AWS로 옮기면 변경되나요?
이유를 아는 사람이 있으면 꼭 알려주세요.
참고문
[Linux] 시간대(Timezone) 변경 사항
Docker 컨테이너의 시간대 변경 방법
“The page has expired due to inactivity” - Laravel 5.5
Laravel 5.3 - TokenMismatchException in VerifyCsrfToken.php line 68:
Laravel5.5HTTP 세션
많이 배웠어요.감사합니다.
Reference
이 문제에 관하여(AWS에서 Laravel 양식을 보낼 수 없습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ama_keshi/items/f76793379b1016434720텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)