박주니 개발 정리

laravel storage/log 생성시 cors 이슈 해결 방법 본문

라라벨

laravel storage/log 생성시 cors 이슈 해결 방법

박주니 2024. 1. 11. 17:40
728x90
반응형

설명 전)

처음에는 정상적으로 운영이 되다가 갑자기 front에서 cors 에러가 발생되었다면 먼저 디버깅을 해보고 원인이 확인이 안되신다면 laravel storage/log 권한 문제 확률이 높습니다. 

 

1. storage 소유자와 권한을 확인합니다. 

설명)

이건 예시이고 현재 laravel 권한자가 누구인지 확인하고 현재 storage 소유자와 동일한지 확인하시면 됩니다. 

그리고 좌측에 권한을 확인해서 rwx 즉 읽기, 쓰기, 실행권한이 다 있는지 확인합니다. 

읽기 권한만 있으면 cors 에러가 발생될 수 있습니다. 

 

2-1. 소유권이 동일하지 않을 경우 

- 소유권 변경 방법 

sudo chown -R vagrant:vagrant ~/code/crypto-admin-backend/storage

설명)

여기서 vagrant 부분은 현재 소유권 name으로 변경하시고 위치는 현재 storage 위치를 넣으시면 됩니다. 

 

2-2. 권한이 제한되어있을경우 

- storage/log는 상황에 따라 다르겠지만 log를 주로 확인하는 목적으로 사용하신다면 개방적인 권한 설정을 한 것인데 우선 이해를 돕는 과정이니 추후에 권한을 변경해서 맞추시길 바랍니다. 

sudo chmod -R 777 vagrant:vagrant ~/code/crypto-admin-backend/storage

 

3. config 기록이 남아있어서 변경된 것에 영향을 줄 수 있으므로 clear을 진행합니다. 

php artisan config clear

 

4. config/logging.php custom 추가해서 RotatingFileHandler를 사용하여 로그 파일 관리하고 permission 옵션을 통해 파일 권한을 설정합니다. 

'channels' => [
    'stack' => [
        'driver' => 'stack',
        // 다른 채널 추가...
    ],

    'custom' => [
        'driver' => 'monolog',
        'handler' => Monolog\Handler\RotatingFileHandler::class,
        'with' => [
            'filename' => storage_path('logs/laravel.log'),
            'maxFiles' => 5,
            'level' => Monolog\Logger::DEBUG,
            'permission' => 0644,
        ],
    ],
    // 다른 채널 설정...
],

 

설명)

Monolog는 composer 셋팅시 기본적으로 라이브러리가 셋팅이 됩니다. composer.json에 확인해보시면 "require":{ "monolog/monolog": ...} 설정된 것을 확인하실 수 있습니다. 

 

5. 현재 문제가 발생되었던 log를 지우시고 다시 생성할 때 적용한대로 소유자 및 권한이 적용되어 있는지 cors에러가 발생되는 지 확인하시면 됩니다. 

728x90
반응형
Comments