AWS에서 Laravel 양식을 보낼 수 없습니다.

4288 단어 PHPDockerLaravelAWS
로컬에서 Laravel 애플리케이션을 Docker 환경으로 마이그레이션하여 AWS의 EC2에 직접 배포합니다.
EC2docker-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 세션
많이 배웠어요.감사합니다.

좋은 웹페이지 즐겨찾기