질문을 삭제하지 말아주세요.!
 
1
0
-1

예전에 구글에서 찾아보고 사용했던게


php artisan config:cache; 
php artisan config:clear;


2가지 커맨드 입니다.

1달정도 .NET 만지게 되서 오랜만에 라라벨 작업하고 ENV파일을 갱신하려고 했더니

왠지는 잘 모르겠지만 갱신이 안 되더라구요?


갱신만 안됐다면 그나마 다행이었을 텐데

갑자기 같은 서버에 있던(라라벨로 만들었던) 모든 웹사이트에서 에러가 발생했습니다.

Fatal error: Invalid handle returned

아~~ 당황했습니다. DEBUG:TRUE로 해봐도 별 내용은 안 나오고

바꾼거라고는 ENV파일에서 데이터베이스 만 바꿔주고 위에 커맨드 2개만 입력했을 뿐인데 말이죠.

새로 올린 프로젝트가 문제인가 싶어서 지우고 다시 돌려봐도 나아질 기미는 안보이고.

식은 땀 뻘뻘 흘리다가 sql서버랑 IIS 끄고 재기동이나 해보자 하면서 자포자기로 10초 정도 정지시켰다가 

다시 돌리니 문제는 해결이 됬습니다.


에러 발생하고 고치기 까지 30분.

아직까지는 아무런 전화도 없습니다만, 클라이언트 쪽에서 항의 전화도 올지도 모르겠고.

금요일인데 . 기분 좋게 마무리 작업에서 터지다니. 참 착잡 합니다;

-------------------------------------------------------------------------------------------------------------------------


위는 그냥 하도 착잡해서 한번 적어본 겁니다.(애교로 봐주세요 선배님)

이제 질문 들어갑니다.

  1. 여러분들은 ENV파일 수정 후에 갱신은 어떤 방식으로 하시나요?
  2. artisan커맨드가 하나의 프로젝트가 아니라 서버 단위로 작동 하는 건가요?
  3. 캐시때문에 환장하겠습니다, 아예 못쓰게는 못 만드나요?



    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      런타임을 온전히 컨트롤할 수 있는 경지까지 도달하기는 험난하죠^^.

      1. env 파일을 읽어서 운영체제의 환경변수로 심어주는 dotenv 라이브러리 코드를 보지는 못했습니다. 저희 팀은 Elastic Beanstalk(==EB)를 사용합니다. EB에서는 Application외 Config 배포라는 기능이 있고, 웹/쉘 콘솔에서 환경변수를 배포하면 웹 서버를 재기동하도록 스크립팅되어 있습니다.
      2. 이해 못했습니다. Shared Resource(RDS, Elastic Cache, S3)에 스케일링되는 여러 대의 애플리케이션(WebServer+fcgi+PHP+Laravel) 인스턴스가 있다면, Shared Resource를 제외한 나머지 런타임은 각 인스턴스별로 다릅니다.
      3. .env와 라라벨 config:cache는 별개입니다. .env 는 웹 서버 기동 시점에 로드되며, config:cache는 굉장히 길고 큰 라라벨 설정을 하나의 Key-value 쌍으로 미리 만들어 놓는 것입니다. .env는 변경되면 반드시 웹 서버를 재기동해 줘야 합니다.
      1. 땅콩

        감사합니다, 선배님.

        env수정후 재기동은 반듯이 필요하다는게 포인트네요

      CommentAdd your comment...